阅读下列说明,回答问题,将解答填入答题纸的对应栏内。 【说明】 在某嵌入式智能服务机器人的软件设计中,为了更好地记录机器人的个体信息和机器人的工作信息,为智能服务机器人设计了信息数据库。数据库主要完成收集智能服务机器人反馈信息的作用,记录所有机器人的所有工

admin2021-03-19  42

问题 阅读下列说明,回答问题,将解答填入答题纸的对应栏内。
【说明】
在某嵌入式智能服务机器人的软件设计中,为了更好地记录机器人的个体信息和机器人的工作信息,为智能服务机器人设计了信息数据库。数据库主要完成收集智能服务机器人反馈信息的作用,记录所有机器人的所有工作记录,以方便使用者对机器人的管理和对机器人状态的掌握,并且在机器人发生运行故障时,可以根据数据库存储的信息分析产生故障的原因。数据库收集智能服务机器人反馈信息的流程如下:
服务器端接收反馈信息。
(1)第一次解析判断反馈信息类型是否正确,若正确执行(2),否则执行(3);
(2)第二次解析判断反馈信息内容是否正确,若正确执行(4),否则执行(3):
(3)调用错误信息处理函数后执行(4);
(4)将反馈信息存入数据库。
软件的结构覆盖率是度量测试完整性的一种手段,也是度量测试有效性的一种手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。
在实现题目说明中第(1)、(2)条功能时,设计人员采用了下列算法:
if((信息有效==TRUE)&&(信息类型正确==TRUE))
[解包信息内容;
if((信息内容正确==TRUE))
(信息存入数据库;}
else
{错误信息处理;
信息存入数据库;
)
)
else
{错误信息处理;
信息存入数据库;
}
请指出对上述算法达到1000/0语句覆盖、100%分支覆盖和1000%MC/DC覆盖所需的最少测试用例数目。

选项

答案[*]

解析 本问题主要考查对语句覆盖、分支覆盖和MC/DC覆盖概念的掌握以及实际应用。
语句覆盖要求设计适当数量的测试用例,运行被测程序,使得程序中每一条语句至少被运行一遍,语句覆盖在测试中主要发现错误语句。
分支覆盖要求设计适当数量的测试用例,运行被测程序,使得程序中每个真值分支和假值分支至少执行一次,分支覆盖也称判定覆盖。
修正判定条件覆盖(MC/Dc)要求设计适当数量的测试用例,保证在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每个判断中的每个条件必须能够独立影响一个判断的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判断结果改变。
按照上述语句覆盖要求,语句覆盖就要使得问题2中的所有语句执行一次,问题2中有三个语句块,如下所示。
故为了使问题2中的三个语句块各执行一次,最少需要3个测试用例来覆盖。
按照上述分支覆盖要求,分支覆盖要使得程序中每个真值分支和假值分支至少执行一次。对问题2中的判断条件进行分析,有两个判断条件,需要分别取每个判断的真值分支和假值分支,即从理论上需要4个测试用例来满足覆盖要求。但是,由于第一个判断的真分支中包含了第二个判断条件的真假分支,当满足第一个判断的真分支时,同时可满足第二个判断条件的真或假分支,可减少一个测试用例,故问题2最少需要3个测试用例来满足分支覆盖要求。

按照上述MC/DC覆盖要求,即每个判断中的每个条件必须能够独立影响一个判断的输出。对问题1中的两个判断条件进行分析,第一个判断有两个条件,两个条件共有四种组合,即TT(TRUE和TRUE)、TF(TRUE和FALSE)、FT(FALSE和TRUE)和FF(FALSE和FALSE);第二个判断只有一个条件,不需要考虑MC/DC覆盖要求。由于第一个判断中的两个条件为逻辑与条件,当前一个条件为FALSE时,其整个判断值为FALSE,后一个条件的真或假均不能独立影响整个判断的输出,所以只需要TT、TF和FX(X表示后一个条件为TRUE或FALSE都可以)三种情况就可以,故这个判断至少需要3个测试用例满足MC/DC覆盖要求。
转载请注明原文地址:https://jikaoti.com/ti/QeB7FFFM
0

最新回复(0)