阅读下列说明,回答下列问题。
【说明】
在某嵌入式智能服务机器人的软件设计中,为了更好地记录机器人的个体信息和机器人的工作信息,为智能服务机器人设计了信息数据库。数据库主要完成收集智能服务机器人反馈信息的作用,记录所有机器人的所有工作记录,以方便使用者对机器人的管理和对机器人状态的掌握,并且在机器人发生运行故障时,可以根据数据库存储的信息分析产生故障的原因。数据库收集智能服务机器人反馈信息的流程如下:
服务器端接收反馈信息。
(1)第一次解析判断反馈信息类型是否正确,若正确执行(2),否则执行(3);
(2)第二次解析判断反馈信息内容是否正确,若正确执行(4),否则执行(3);
(3)调用错误信息处理函数后执行(4) ;
(4)将反馈信息存入数据库。
在本软件测试过程中,测试人员为了设计测试用例,根据题目中的说明,画出了机器人反馈信息收集软件流程图,如图5.1所示
(1)D
(2)B
(3)C
依据题干说明(1)(2)(3)(4)的描述,(1)处应该为:判定反馈内容是否正确;(2)处应该为:执行错误信息处理函数;(3)信息存入数据库
软件的结构覆盖率是度量测试完整性的一种手段。也是度量测试有效性的一种手段,在嵌入式软件白盒测试过程中。通常以语句覆盖率、分支覆盖率和MC/DC覆盖率作为度量指标。
在实现题目说明中第(1) 、(2) 条功能时,设计人员采用了下列算法:
(1)3
(2)3
(3)4
语句覆盖(SC):设计足够的测试用例,使得使被测试程序中每条语句至少执行一次。
判定覆盖(DC):设计足够的测试用例,使得使程序中的每个判定至少都获得一次“真值”或“假值”;又称分支覆盖:使程序中的每一个取“真”分支和取“假”分支至少经历一次。
修正判定条件覆盖(MCDC):设计足够的测试用例,使得每一程序模块的入口和出口点都要考虑至少被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;程序的判定被分解为通过逻辑操作符(and or)连接的bool条件,每个条件判定的结果值是独立的。
本题中是两个if…else…的嵌套结构,
语句覆盖和判定覆盖:当第1层if为真时就不会覆盖假,所以假部分需要一个测试用例覆盖,当第1层if判定为真时可以覆盖第2层if判定为真的结构或者第2层if判定为假的结构,所以当要覆盖第2层判定,需要2个测试用例,所以综合起来至少需要3个测试用例来达到语句覆盖的要求和判定覆盖的要求。
MC/DC覆盖:
由于是嵌套结构,满足第一个判定的测试用例为:(TT)(FT)(TF);第2个判定为T,F,由于第一个判定为T后会涉及到第2个判定,所以综合起来需要4个测试用例,如下图:
| 信息有效 | 信息类型正确 | 信息内容正确 | 第一个判断 | 第二个判断 |
| T | T | T | T | T |
| F | T | - | F | - |
| T | F | - | F | - |
| T | T | T | T | F |
为了测试软件功能,测试人员设计了表5- -2所示的测试用例,请填写该表中的空(1) ~ (4)。
表5-2测试用例
| 序号 | 输入 | 输出(预测结果) |
| 1 | 反馈类型不同 | (1),错误信息存入数据库 |
| 2 | 反馈类型和内容均不正确 | |
| 3 | 反馈类型正确,反馈内容不正确 | (2),错误信息存入数据库 |
| 4 | 反馈类型正确,反馈内容正确 | 信息存入数据库 |
| 5 | 内容正确的典型类型1信息 | 典型类型1信息存入数据库 |
| 6 | 内容(3)典型类型2信息 | 报告典型类型2信息内容错误,错误信息存入数据库 |
| 7 | 内容正确的典型类型3佑息 | (4),信息存入数据库 |
(1)报告反馈类型不同
(2)报告信息内容不正确
(3)错误的
(4)典型类型3信息