阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某测湿仪用于测量目标物体的相对湿度。该仪器中软件主要完成AD数据采集,并通过数学的运算将数据转换为湿度值,在显示终端显示。软件主要包括主程序模块、测湿程序模块、显示程序模块、报警程序模块等。
程序的主要功能说明如下:
1.主程序模块判断是否存在按键按下的情况,如果没有按键按下,继续执行1;否则执行2。
2.如果按下键为“设置键”,则通过“+”键每次增加1或通过“_”键每次减少1,设置最高湿度报警值(默认值为70), 再次按下“设置”键进行确认,并通过“+”键或“_”键设置最低湿度报警值(默认值为40),再次按下“设置”键进行确认后执行1。
3.如果按下键为“测湿”键,则读取测湿程序模块送回的目标湿度信息。
4.将读取的湿度信息与设定的最大值与最小值比较,如果大于等于最大值或小于等于最小值,则执行5;否则向显示程序模块发送显示的湿度信息,并执行6。
5.调用报警处理程序,并向显示程序模块发送报警信息。
6.显示程序模块显示湿度过高报警或湿度过低报警或者湿度信息。
【问题1】(8 分)
为了测试软件功能,测试人员设计了表5-1所示的测试用例。假定开始执行测试用例时,最高湿度和最低湿度报警值为默认值,请填写该表中的空白(1) ~ (8), 将答案填写在答题纸的对应栏中。
【问题2】(6分)
软件的结构覆盖率是度量测试充分性的一种手段,也是度量测试有效性的一-种手段。在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。在实现题目说明的第4条“判断湿度是否在正常范围”的功能时,设计人员采用了下列算法:
if ((目标物体湿度<高湿报警值)&&(目标物体湿度>低湿报警值))
{
显示目标物体湿度值;
}
else
{
if(目标物体湿度≥高湿报警值)
{
显示高湿报警信息;
}
else
{
显示低湿报警信息;
}
}
请完成表5-2中的(1) ~ (3)空白,指出对上述算法达到100%语句覆盖、100%分支覆盖和100%MC/DC覆盖所需的最少测试用例数目。请将答案填写在答题纸的对应栏中。
【问题3】(6分)
嵌入式软件中通常使用注释率来衡量程序的可维护性,嵌入式软件的注释率一般要求不小于(1)。
本项目在开发过程中通过测试发现了11个缺陷,在实际使用中用户反馈了1个缺陷,缺陷探测率(DDP)为(2)( 结果保留小数点后1位)。
【问题1】
(1) 63
(2) 50
(3) 55
(4)被测目标容器湿度为52
(5)湿度过高报警信息
(6) 51
(7)湿度过低报警信息
(8) 50
【问题2】
(1) 3
(2) 3
(3) 3
【问题3】
(1) 20%或1/5 或等效解答
(2) 91.7%
【问题1】
(1)依据题干描述,默认最高湿度为70,每次按下 - 少1,共计按了7次,所以最高湿度设置值为70-7=63。
(2)依据题干描述,在表序号1之后,按下设置变为设置最低湿度值,默认最低湿度为40,连续按10次+(每次按+增加1)所以这时最低湿度应该为40+10=50。
(3)依据题干描述,按下测湿键,则读取测湿模块送回目标湿度信息;结合题干输出值为55,在前面设置的合理范围,应该是将测湿仪置湿度为55的目标容器。
(4)依据题干描述,再结合表序号3的信息可以得出输出为:屏幕显示被测目标容器湿度为52。
(5)依据题干描述,再结合表序号1设置的最高湿度为63,题干中达到了63,因此应按说明4、5综合处理,即触发边界值报警处理,再集合表中表序号6的信息提示,应输出:屏幕显示湿度过高报警信息。
(6)依据题干描述,51属于正常范围,再结合表序号3,应该将测湿仪置入湿度为51的目标容器。
(7)依据题干描述,结合表序号2的设置,最低值为50,50已经达到了最低边界,再结合表序号8的信息,因此应输出:屏幕显示湿度过低报警信息。
(8)依据题干描述,结合表序号2、7的信息,应该设置的值小于、等于50,就触发最低边界报警。
【问题2】
语句覆盖(SC):使被测试程序中每条语句至少执行一次。
判定覆盖(DC):使程序中的每个判定至少都获得一次“真值”或“假值”。
修正条件判定覆盖要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件必须能够独 立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变,其测试用例数一般为条件数+1~条件数*2的范围内。
本题的程序控制图为:
从上述控制流程图,可以看出语句覆盖需要3个测试用例分别走不同的路径。
从上述控制流程图,由于第一个判断为假时,会覆盖第二个判断,所以综合起来所以3个测试用例,1个使判断1为真,1个使判断1为假,判断2为真;1个使判断1为假,判断2为假。
MCDC判断1有两个条件目标物体湿度<高湿报警值、目标物体湿度>低湿报警值;判断2只有一个条件目标物体湿度>=高湿报警值;综合分析如下表。
因此需要3个测试用例。
【问题3】
嵌入式软件的注释率一般不小于代码行数的20%。
缺陷探测率(DDP)=测试发现的软件问题/软件总的发现问题。
11/(11+1)=91.7%