一、[材料型]问答题
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)

1、【问题1】请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。 (4分)
参考答案:请看解析
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)

2、【问题2】请画出上述程序的控制流图,并计算其控制流图的环路复杂度V(G)。(8分)
参考答案:请看解析
阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)

3、【问题3】请给出问题2中控制流图的线性无关路径。(8分)
参考答案:请看解析
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(15分)
【说明】某航空公司考虑到在今年特殊形势下,很多会员无法通过搭乘航班延续之前的会员等级,特推出了“回望升级”活动。对2017年1月1日至2019年12月31日三个自然年度任意连续12/24/36个月机票消费达到一定金额时,奖励会员相应等级。
活动规则为:任意连续12/24/36个月机票消费金额达到人民币2.5/4.75/6.75万元及以上,给予银卡会员等级;任意连续12/24/36个月机票消费金额达到人民币5/9.5/13.5万元及以上,给予金卡会员等级;任意连续12/24/36个月机票消费金额达到人民币15/28.5/40.5万元及以上,给予白金卡会员等级。活动规则详见表2-1。
此外,为了鼓励在官网和官方App购票,针对不同的购票渠道,有不同的奖惩系数。官网购票不奖励不惩罚,官方App购票消费金额按1.2倍计算,第三方购票消费金额按0.8倍计算,详见表2-2。航空公司开发了一个程序来计算会员在该活动后的奖励等级,程序的输入包括会员在2017年1月1日至2019年12月31日中任意连续12个月最大消费金额A (单位:万元),任意连续24个月最大消费金额B (单位:万元),36个月消费金额C (单位:万元),购票渠道代码D,程序的输出为本次活动奖励等级L。其中,A、B、C为非负浮点数最多保留4位小数,D为正整数且取值为1、2、3之一,L为字母M、S、G、P中之一。

4、【问题1】采用等价类划分法对该程序进行测试(同时对输入输出进行等价类划分),等价类表如表2-3所示,请补充表2-3中的空(1)~(4)。(4分)
参考答案:
参考答案如下:
(1)最多4位小数的非负浮点数
(2)多于4位小数的非负浮点数
(3)非正整数
(4)1,2,3以外的正整数
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(15分)
【说明】某航空公司考虑到在今年特殊形势下,很多会员无法通过搭乘航班延续之前的会员等级,特推出了“回望升级”活动。对2017年1月1日至2019年12月31日三个自然年度任意连续12/24/36个月机票消费达到一定金额时,奖励会员相应等级。
活动规则为:任意连续12/24/36个月机票消费金额达到人民币2.5/4.75/6.75万元及以上,给予银卡会员等级;任意连续12/24/36个月机票消费金额达到人民币5/9.5/13.5万元及以上,给予金卡会员等级;任意连续12/24/36个月机票消费金额达到人民币15/28.5/40.5万元及以上,给予白金卡会员等级。活动规则详见表2-1。
此外,为了鼓励在官网和官方App购票,针对不同的购票渠道,有不同的奖惩系数。官网购票不奖励不惩罚,官方App购票消费金额按1.2倍计算,第三方购票消费金额按0.8倍计算,详见表2-2。航空公司开发了一个程序来计算会员在该活动后的奖励等级,程序的输入包括会员在2017年1月1日至2019年12月31日中任意连续12个月最大消费金额A (单位:万元),任意连续24个月最大消费金额B (单位:万元),36个月消费金额C (单位:万元),购票渠道代码D,程序的输出为本次活动奖励等级L。其中,A、B、C为非负浮点数最多保留4位小数,D为正整数且取值为1、2、3之一,L为字母M、S、G、P中之一。

5、【问题2】根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空(1) ~ (9)。 (9分)
参考答案:
参考答案如下:
(1)1,2,3
(2)M
(3)N/A
(4)7,2,3
(5)-1(任意负浮点数)
(6)0.12345(任意多于4位小数的非负浮点数)
(7)0.1(任意非整数)
(8)-1(任意非正整数)
(9)4(1,2,3以外的正整数)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(15分)
【说明】某航空公司考虑到在今年特殊形势下,很多会员无法通过搭乘航班延续之前的会员等级,特推出了“回望升级”活动。对2017年1月1日至2019年12月31日三个自然年度任意连续12/24/36个月机票消费达到一定金额时,奖励会员相应等级。
活动规则为:任意连续12/24/36个月机票消费金额达到人民币2.5/4.75/6.75万元及以上,给予银卡会员等级;任意连续12/24/36个月机票消费金额达到人民币5/9.5/13.5万元及以上,给予金卡会员等级;任意连续12/24/36个月机票消费金额达到人民币15/28.5/40.5万元及以上,给予白金卡会员等级。活动规则详见表2-1。
此外,为了鼓励在官网和官方App购票,针对不同的购票渠道,有不同的奖惩系数。官网购票不奖励不惩罚,官方App购票消费金额按1.2倍计算,第三方购票消费金额按0.8倍计算,详见表2-2。航空公司开发了一个程序来计算会员在该活动后的奖励等级,程序的输入包括会员在2017年1月1日至2019年12月31日中任意连续12个月最大消费金额A (单位:万元),任意连续24个月最大消费金额B (单位:万元),36个月消费金额C (单位:万元),购票渠道代码D,程序的输出为本次活动奖励等级L。其中,A、B、C为非负浮点数最多保留4位小数,D为正整数且取值为1、2、3之一,L为字母M、S、G、P中之一。

6、【问题3】对于本案例的黑盒测试来说,以上测试方法有哪些不足?(2分)
参考答案:
(1)没有考虑边界值的设计;
(2)没有考虑对输出进行等价类划分;(输出的等级L的所有取值没有覆盖)
(3)A、B、C的取值设计不充分,覆盖度不够。
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】为了应对疫情防控下的学生返校管理,某高校管理平台新开发紧急疫情管控系统,以有效管理师生员工的活动及身体情况。该系统提供Web和微信小程序两种不同的访问途径。
系统主要功能是:
(1)专职管理人员对基础信息管理和设置。
(2)师生员工每日信息申报,返校、离校活动申报,所在位置通过定位实时获取。
(3)对各类人员的活动申请进行审批。
(4)根据相关审批结果进行门禁控制。
(5)各级管理人员可对所辖部门的人员申报情况进行查询和统计。
7、【问题1】(1)信息申报采用表单进行实现,输入测试需要测试哪几个方面?
(2)什么情况下表单中输入的内容可能会传到后台引起安全问题?如何设计测试用例进行输入测试?(7分)
参考答案:
(1)①每个字段的验证;②字段的缺省值;③表单中的输入;④提交操作的完整性。
(2)①若输入的内容中输入某些功能符号可能会传到后台引起安全问题。
②在测试设计时,在输入域包含HTML,如: HTML,或脚本,如: SCRIPT,或SQL功能符号,如:2020'OR'1'='1等,以测试是否存在XSS脚本和SQL注入等安全问题。
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】为了应对疫情防控下的学生返校管理,某高校管理平台新开发紧急疫情管控系统,以有效管理师生员工的活动及身体情况。该系统提供Web和微信小程序两种不同的访问途径。
系统主要功能是:
(1)专职管理人员对基础信息管理和设置。
(2)师生员工每日信息申报,返校、离校活动申报,所在位置通过定位实时获取。
(3)对各类人员的活动申请进行审批。
(4)根据相关审批结果进行门禁控制。
(5)各级管理人员可对所辖部门的人员申报情况进行查询和统计。
8、【问题2】系统前端采用HTML5实现,以使用户可以通过电脑和不同移动设备的浏览器进行访问。设计兼容性测试矩阵,对系统兼容性进行测试(不考虑机型)。(6分)
参考答案:
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】为了应对疫情防控下的学生返校管理,某高校管理平台新开发紧急疫情管控系统,以有效管理师生员工的活动及身体情况。该系统提供Web和微信小程序两种不同的访问途径。
系统主要功能是:
(1)专职管理人员对基础信息管理和设置。
(2)师生员工每日信息申报,返校、离校活动申报,所在位置通过定位实时获取。
(3)对各类人员的活动申请进行审批。
(4)根据相关审批结果进行门禁控制。
(5)各级管理人员可对所辖部门的人员申报情况进行查询和统计。
9、【问题3】(7分)申报审批有时间段约束,性能测试时,采用Apdex (应用性能指数)对用户使用该系统的性能满意度进行度量,系统的Apdex指数需要满足基本要求为0.7以上,满足期望要求为0.85以上。Apdex量化时,对应用户满意度分为三个区间,通过响应时间阈值(Threshold) T来划分,Apdex的用户满意度区间如下:
满意:(0,T],让用户感到很愉快;
容忍:(T, 4T],慢了一点,但还可以接受,继续这一应用过程;
失望:高于4T,太慢了,受不了,用户决定放弃这个应用;
Apdex的计算如下:Apdex =(满意的样本数+容忍的样本数/2)/总样本数
请计算本系统的Apdex指数,并说明本系统是否达到要求。

参考答案:
Apdex=(满意的样本数+容忍的样本数/2)/总样本数=(150+40/2)/(150+40+30)=0.77。
由于0.77大于0.7,但是小于0.85,所以满足基本要求,但是不满足期望要求。
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】为了有效控制疫情,需要记录所有人最后一次出行的信息。其中:
(1)类Travel记录了一次旅行的基本信息,包括出发地(Source)、 目的地(Des)、 15日内是否有境外旅行史(OverSeas) 和15日内是否去过高风险疫区(HighDanArea)。
(2)类HighTrain和AirPlane分别表示高铁旅行和飞机旅行,这两个类继承了类Travel的属性和方法。HighTrain 定义了自己的属性车厢号(CaseNo)和座位号(SeatNo)。AirPlane定义了自己的属性座位号( SeatNo)。
(3)函数checkIso调用Travel的相关方法读取旅行者的出发地、目的地以及15日内是否有境外和高风险区域的信息,判断该旅行者是否需要被隔离。
现拟采用面向对象的方法进行测试。
10、【问题1】 (9分)
(1)面向对象的测试分为哪几个阶段?
(2)类Person和Travel之间是什么关系?
(3)该关系是否影响测试?
参考答案:
(1)面向对象分析的测试;面向对象设计的测试;面向对象编程的测试;面向对象单元测试;面向对象集成测试,面向对象系统测试(也可以写成面向对象确认和系统测试)。
(2)关联关系。
(3)影响测试。
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】为了有效控制疫情,需要记录所有人最后一次出行的信息。其中:
(1)类Travel记录了一次旅行的基本信息,包括出发地(Source)、 目的地(Des)、 15日内是否有境外旅行史(OverSeas) 和15日内是否去过高风险疫区(HighDanArea)。
(2)类HighTrain和AirPlane分别表示高铁旅行和飞机旅行,这两个类继承了类Travel的属性和方法。HighTrain 定义了自己的属性车厢号(CaseNo)和座位号(SeatNo)。AirPlane定义了自己的属性座位号( SeatNo)。
(3)函数checkIso调用Travel的相关方法读取旅行者的出发地、目的地以及15日内是否有境外和高风险区域的信息,判断该旅行者是否需要被隔离。
现拟采用面向对象的方法进行测试。
11、【问题2】 (6分) 为了更方便函数checkIso的实现,程序员在Person类中增加了属性IsIso和方法checkDan,具体实现如下:
方法checkDan中判断该旅行者是否需要被隔离,并且把结果写入IsIso,在checkIso中直接读取旅行者的IsIso属性值就可以得出结论。
(1)这种实现方法破坏了面向对象的哪种机制?
(2)这种问题的测试需要在面向对象测试的哪个阶段实施?
参考答案:(1)破坏了面向对象的封装机制。
(2)在面向对象编程的测试阶段进行。
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】为了有效控制疫情,需要记录所有人最后一次出行的信息。其中:
(1)类Travel记录了一次旅行的基本信息,包括出发地(Source)、 目的地(Des)、 15日内是否有境外旅行史(OverSeas) 和15日内是否去过高风险疫区(HighDanArea)。
(2)类HighTrain和AirPlane分别表示高铁旅行和飞机旅行,这两个类继承了类Travel的属性和方法。HighTrain 定义了自己的属性车厢号(CaseNo)和座位号(SeatNo)。AirPlane定义了自己的属性座位号( SeatNo)。
(3)函数checkIso调用Travel的相关方法读取旅行者的出发地、目的地以及15日内是否有境外和高风险区域的信息,判断该旅行者是否需要被隔离。
现拟采用面向对象的方法进行测试。
12、【问题3】 (5分)请给出各个类的测试顺序。
参考答案:Travel-HighTrain-AirPlane-Person-main(类HighTrain和AirPlane顺序不分前后,main是函数,没有写到一个类里面,所以可写可不写)
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】某测湿仪用于测量目标物体的相对湿度。该仪器中软件主要完成AD数据采集,并通过数学运算将数据转换为湿度值,在显示终端显示。软件主要包括主程序模块、测湿程序模块、显示程序模块、报警程序模块等。程序的主要功能说明如下:
1、主程序模块判断是否存在按键按下的情况,如果没有按键按下,继续执行1;否则执行2。
2、如果按下键为“设置键”,则通过“+ ”键每次增加1或通过“-”键每次减少1,设置最高湿度报警值(默认值为70),再次按下“设置键” 进行确认,并通过“+ ”键或“-”键设置最低湿度报警值(默认值为40),再次按下“设置键”进行确认后执行1。
3、如果按下键为“测湿键” ,则读取测湿程序模块送回的目标湿度信息。
4、将读取的湿度信息与设定的最大值与最小值比较,如果大于等于最大值或小于等于最小值,则执行5,否则向显示程序模块发送显示的湿度信息,并执行6。
5、调用报警处理程序,并向显示程序模块发送报警信息。
6、显示程序模块显示湿度过高报警或湿度过低报警或者湿度信息。
13、【问题1】 (8分)为了测试软件功能,测试人员设计了表5-1所示的测试用例。假定开始执行测试用例时,最高湿度和最低湿度报警值为默认值,请填写该表中的空白(1)~ (8),将答案填写在答题纸的对应栏中。
参考答案:
(1)63
(2)50
(3)55
(4)被测目标容器湿度为52
(5)湿度过高报警信息
(6)51
(7)湿度过低报警信息
(8)50
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】某测湿仪用于测量目标物体的相对湿度。该仪器中软件主要完成AD数据采集,并通过数学运算将数据转换为湿度值,在显示终端显示。软件主要包括主程序模块、测湿程序模块、显示程序模块、报警程序模块等。程序的主要功能说明如下:
1、主程序模块判断是否存在按键按下的情况,如果没有按键按下,继续执行1;否则执行2。
2、如果按下键为“设置键”,则通过“+ ”键每次增加1或通过“-”键每次减少1,设置最高湿度报警值(默认值为70),再次按下“设置键” 进行确认,并通过“+ ”键或“-”键设置最低湿度报警值(默认值为40),再次按下“设置键”进行确认后执行1。
3、如果按下键为“测湿键” ,则读取测湿程序模块送回的目标湿度信息。
4、将读取的湿度信息与设定的最大值与最小值比较,如果大于等于最大值或小于等于最小值,则执行5,否则向显示程序模块发送显示的湿度信息,并执行6。
5、调用报警处理程序,并向显示程序模块发送报警信息。
6、显示程序模块显示湿度过高报警或湿度过低报警或者湿度信息。
14、【问题2】(6分) 软件的结构覆盖率是度量测试充分性的一种手段,也是度量测试有效性的一种手段。 在嵌入式软件白盒测试过程中,通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。在实现题目说明的第4条判断湿度是否在正常范围”的功能时,设计人员采用了下列算法:
请完成表5-2中的(1)~ (3)空白,指出对上述算法达到100%语句覆盖、100%分支覆盖和100%MC/DC覆盖所需的最少测试用例数目。请将答案填写在答题纸的对应栏中。
参考答案:
(1)3
(2)3
(3)3
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。(20分)
【说明】某测湿仪用于测量目标物体的相对湿度。该仪器中软件主要完成AD数据采集,并通过数学运算将数据转换为湿度值,在显示终端显示。软件主要包括主程序模块、测湿程序模块、显示程序模块、报警程序模块等。程序的主要功能说明如下:
1、主程序模块判断是否存在按键按下的情况,如果没有按键按下,继续执行1;否则执行2。
2、如果按下键为“设置键”,则通过“+ ”键每次增加1或通过“-”键每次减少1,设置最高湿度报警值(默认值为70),再次按下“设置键” 进行确认,并通过“+ ”键或“-”键设置最低湿度报警值(默认值为40),再次按下“设置键”进行确认后执行1。
3、如果按下键为“测湿键” ,则读取测湿程序模块送回的目标湿度信息。
4、将读取的湿度信息与设定的最大值与最小值比较,如果大于等于最大值或小于等于最小值,则执行5,否则向显示程序模块发送显示的湿度信息,并执行6。
5、调用报警处理程序,并向显示程序模块发送报警信息。
6、显示程序模块显示湿度过高报警或湿度过低报警或者湿度信息。
15、【问题3】 (6分)嵌入式软件中通常使用注释率来衡量程序的可维护性,嵌入式软件的注释率一般要求不小于(1)。
本项目在开发过程中通过测试发现了11个缺陷,在实际使用中用户反馈了1个缺陷,缺陷探测率(DDP)为(2)(结果保留小数点后1位)。
参考答案:
(1)20%(或者写1/5也行)
(2)DDP=测试者发现的缺陷/(测试者发现的缺陷+用户发现的缺陷)=11/(11+1)=91.7%
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!