阅读下列说明和图,回答问题,将解答填入答题纸的对应栏内。 【说明】 在智能家居系统软件设计中,家庭内网节点软件设计包括协调器软件、现场采集/执行器(室内温湿度采集节点、模拟台灯控制节点、模拟雨水窗户监控节点、模拟空调控制节点和火灾检测节点)的软件设

admin2020-05-31  5

问题 阅读下列说明和图,回答问题,将解答填入答题纸的对应栏内。
【说明】
    在智能家居系统软件设计中,家庭内网节点软件设计包括协调器软件、现场采集/执行器(室内温湿度采集节点、模拟台灯控制节点、模拟雨水窗户监控节点、模拟空调控制节点和火灾检测节点)的软件设计。软件功能组成如图3-1所示。

    整个系统中,协调器是整个家庭内网的核心,负责管理各个节点设备与PC网关的信息和控制指令的传输。温湿度采集终端将传感器的数据以点播的形式发送给协调器,其他采集/控制节点以广播的形式与协调器进行数据的交换,协调器和PC采用串口通信协议。协调器软件主要完成以下功能;
(1)创建信道,组建网络:如果失败,则继续创建;
(2)组建网络成功,则进行各层事件扫描;
(3)如果检测到应用层有事件,则转第(4)步,否则反复扫描各层事件;
(4)判断数据类型,如果是室内环境数据,则经串口发送到网关:如果是控制指令,则向控制节点发送控制指令:如果前面两者均不是,则不处理:
(5)继续扫描各层事件。
覆盖率是度量测试完整性的一个手段,也是度量测试有效性的一个手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、条件覆盖率和MC/DC覆盖率作为度量指标。
在实现第4条功能时,设计人员采用了下列算法:
if((数据有效=TRUE)&&(数据类型=室内环境数据))
  {数据经串口发送到网关;}
if((数据有效=TRUE)&&(数据类型=控制指令))
  {向控制节点发送控制指令;}
请指出对上述算法达到100%语句覆盖、100%条件覆盖和100%MC/DC覆盖所需的最少测试用例数目,填写在表3-2的空(1)~(3)中。

选项

答案(1)2 (2)2 (3)4

解析 此题目主要考查对语句覆盖、条件覆盖和MC/DC覆盖概念的掌握以及应用。
    语句覆盖要求设计适当数量的测试用例,运行被测程序,使得程序中每一条语句至少被运行一遍,语句覆盖在测试中主要发现错误语句。
    条件覆盖要求设计适当数量的测试用例,运行被测程序,使得程序中每个判断中的每个条件的真值分支和假值分支至少执行一次,但未必能覆盖全部分支。
    修正判定条件覆盖(MC/DC)要求设计适当数量的测试用例,保证在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判断中的每个条件必须能够独立影响一个判断的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判断结果改变。
    按照上述语句覆盖要求,语句覆盖就要使得问题3中的所有语句执行一次,问题3中有两个语句块。由于数据有效时,数据类型不可能既是室内环境数据,又是控制指令,二者只能为其一,故为了使问题3中的两个语句块执行一次,至少需要2个测试用例来覆盖。
    按照上述条件覆盖要求,条件覆盖要使得程序中每个判断中的每个条件的真值分支和假值分支至少执行一次。对问题3中的判断语句进行分析:有两个判断语句,每个判断语句有两个判断条件,需要覆盖两个判断语句中的四个条件,取第一个判断语句的TT(TRUE和TRUE)和第二个判断语句FT(FALSE和TRUE)即可满足。因为这两个判断中的第一个条件相同,并且第二个条件互斥(即一个为真时,另一个一定为假)。所以当取第一个判断语句的TT时,同时满足了第二个判断语句的TF;当取第二个判断语句的FT时,同时满足了第一个判断语句的。FF条件。这样两个判断语句中的条件的所有值都被覆盖到,故最少需要2个测试用例来满足条件覆盖要求。但是这两个条件覆盖并未满足分支覆盖。
    按照上述MC/DC覆盖要求,即每个判断中的每个条件必须能够独立影响一个判断的输出。对问题3中的两个判断进行分析:每个判断有两个条件,两个条件共有四种组合,即TT(TRUE和TRUE)、TF(TRUE和FALSE)、FT(FALSE和TRUE)和FF(FALSE和FALSE)。但是由于这两个判断均为逻辑与条件,当前一个条件为FALSE时,其整个判断值为FALSE,后一个条件的真或假均不能独立影响整个判断的输出,所以对每个判断只需要TT、TF和FX(X表示后一个条件为TRUE或FALSE都可以)三种情况就可以。同时由于这两个判断中的第一个条件相同,并且第二个条件互斥(即一个为真时,另一个一定为假)。所以第一个判断的FX与第二个判断的FX相同,可共用一个测试用例覆盖,故对两个判断的FX仅需要1个用例即可:同时当执行第一个判断的TT用例时,也一定执行了第二个判断的TF用例,但是当执行第一个判断的TF用例时,未必能执行第二个判断的TT。所以为了问题3的MC/DC覆盖,最少需要执行第一个判断的TT、TF和FT,以及第二个判断的TT,故总共需要4个测试用例即可满足MC/DC覆盖要求。
转载请注明原文地址:https://kaotiyun.com/show/mLWZ777K
0

相关试题推荐
最新回复(0)