【说明】
在智能家居系统软件设计中,家庭内网节点软件设计包括协调器软件、现场采集/ 执行器(室内温湿度采集节点、模拟台灯控制节点、模拟雨水窗户监控节点、模拟空调控制节点和火灾检测节点)的软件设计。软件功能组成如图3-1所示。
图3-1 软件功能组成图
整个系统中,协调器是整个家庭内网的核心,负责管理各个节点设备与PC网关的信息和控制指令的传输。温湿度采集终端将传感器的数据以点播的形式发送给协调器,其他采集/控制节点以广播的形式与协调器进行数据的交换,协调器和PC采用串口通信协议。协调器软件主要完成以下功能:
(1) 创建信道,组建网络;如果失败,则继续创建;
(2) 组建网络成功,则进行各层事件扫描;
(3) 如果检测到应用层有事件,则转第(4)步,否则反复扫描各层事件;
(4) 判断数据类型,如果是室内环境数据,则经串口发送到网关:如果是控制指令,则叫控制节点发送控制指令;如果前面两者均不是,则不处理;
(5) 继续扫描各层事件。
在本软件开发过程中,开发人员使用了基于模型的嵌入式代码生成技术,目前对模型验证最主要的方法是(1)通过此方法验证后,利用此验证结果可对模型的覆盖率进行分析,模型的覆盖率类型一般包括(2) (至少写出两种类型)。
(1) 白盒测试
(2) 语句覆盖、判定覆盖、条件覆盖、条件判定覆盖、 修正的条件判定覆盖、条件组合覆盖、路径覆盖。
MC/DC是Modified Condition/Decision Coverage(MC/DC)的缩写,含义是修正条件判定覆盖。
MCDC:条件表示不含有布尔操作符号的布尔表达式;判定表示由条件和零或者很多布尔操作符号所组成的一个布尔表达式;而修正条件判定覆盖方法要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值而使判定结果改变。
比如: IF( AIBIIC )
II为或即ABC只要一个为真就能判定为真因为判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变。
例如为:ABC为TFF
改变BC的值并不影响判定结果,但你改变A的值会影响判定结果。
同理FTF ,FFT FFF都符合要求。
为了测试此软件功能,测试人员设计了表3-1所示的测试用例,请填写该表中的空(1)〜(3)。
表3-1 测试用例
序号 | 前置条件 | 输入 | 输出(预期结果) |
1 | 无 | 不能创建信道 | 组网失败,软件一直在组网状态 |
2 | 无 | 创建信道成功 | 组网成功,___(1)___ |
3 | 组网成功 | 数据类型无效 | 各层事件扫描 |
4 | 组网成功 | 数据类型有效且为__(2)___ | 经串口将室内温湿度数据发送到网关 |
6 | 组网成功 | 数据类型有效且为台灯控制指令 | 向___(3)___控制节点发送控制指令 |
8 | 组网成功 | 数据类型有效,但既不是室内环境数据也不是控制指令 | 各层事件扫描 |
(1)进行各层事件扫描
(2)室内环境数据
(3)模拟台灯
MC/DC是Modified Condition/Decision Coverage(MC/DC)的缩写,含义是修正条件判定覆盖。
MCDC:条件表示不含有布尔操作符号的布尔表达式;判定表示由条件和零或者很多布尔操作符号所组成的一个布尔表达式;而修正条件判定覆盖方法要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值而使判定结果改变。
比如: IF( AIBIIC )
II为或即ABC只要一个为真就能判定为真因为判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变。
例如为:ABC为TFF
改变BC的值并不影响判定结果,但你改变A的值会影响判定结果。
同理FTF ,FFT FFF都符合要求。
覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、条件覆盖率和MC/DC覆盖率作为度量指标。
在实现第4条功能时,设计人员采用了下列算法:
if ((数据有效==TRUE) && (数据类型==室内环境数据))
{数据经串口发送到网关;}
if ((数据有效=TRUE) && (数据类型==控制指令))
{向控制节点发送控制指令;}
请指出对上述算法达到100%语句覆盖、100%条件覆盖和100%MC/DC覆盖所需的最少测试用例数目,填写在表3-2的空(1)〜(3)中。
表3-2 测试覆盖用例统计表
覆盖率类型 | 所需的最少用例数 |
100%语句覆盖 | (1) |
100%条件覆盖 | (2) |
100%MC/DC覆盖 | (3) |
(1)2
(2)2
(3)4
MC/DC是Modified Condition/Decision Coverage(MC/DC)的缩写,含义是修正条件判定覆盖。
MCDC:条件表示不含有布尔操作符号的布尔表达式;判定表示由条件和零或者很多布尔操作符号所组成的一个布尔表达式;而修正条件判定覆盖方法要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值而使判定结果改变。
比如: IF( AIBIIC )
II为或即ABC只要一个为真就能判定为真因为判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变。
例如为:ABC为TFF
改变BC的值并不影响判定结果,但你改变A的值会影响判定结果。
同理FTF ,FFT FFF都符合要求。