软件测试课后答案 下载本文

内容发布更新时间 : 2024/5/2 19:47:40星期一 下面是文章的全部内容请认真阅读。

.

第一章 引论

3、软件测试与开发的关系是怎样的?为什么这么说?

答:软件测试和软件开发构成一个全过程的交互、协作之关系,两者自始至终一起工作,共同致力于同一个目标:按时、高质量的完成项目。 【补充题】

补1、软件测试要在编程完成后才能开始,这种观点对吗?说明原因。 答:P11

补2、V模型,测试阶段与开发阶段的对应关系。 答:P11

第二章 软件测试的基本概念

2、如何理解软件质量和软件缺陷的对立统一关系? 答:P14

缺陷是质量的对立面,要了解什么是缺陷(defect),就必须清楚“质量

(Quality)”概念,因为缺陷是相对质量而存在的,违背了质量、违背了客户的意愿,不能满足客户的要求,就会引起缺陷或产生缺陷。

5、需求分析、系统设计所存在的问题在软件缺陷中占有较大比例,对软件开发和测试工作有何启发? 答:P21

要尽早发现需求工程、软件设计等各个方面的问题,减少大量的后期返工,将质量成本从昂贵的后期返工转化为前期的缺陷发现。 【补充题】

补1、根据统计数据,缺陷发现越早,修复缺陷的代价越小,这种现象对于软件测试有什么启示?(P20) 第三章 软件测试方法

3、针对国内18位身份证号验证,通过等价类划分法设计测试用例。 解:

(1)等价类划分表 输入检查项 有效等价类 无效等价类 格式检查 (1)18位数字 (3)少于18位 (2)17位数字加X (4)多于18位 (5)前17位中有字母 (6)最后1位有X之外字母 区域代码检查 (7)有效区域代码 (8)无效区域代码(全0) 生日代码检查 (9)有效生日 (10)不存在的日期 (小于当前日期且存在) (11)大于当前日期 校验码检查 (12)正确校验码 (13)不正确校验码 (2)测试用例: 1)输入410203198808080088,覆盖(1)(7)(9)(12); 2)输入41020319880808009X,覆盖(2)(7)(9)(12); 3)输入41020319880808009,覆盖(3); 4)输入4102031988080800999,覆盖(4);

..

.

5)输入AB020319880808009C,覆盖(5)(6); 6)输入000000198808080099,覆盖(8); 7)输入410203198818080099,覆盖(10); 8)输入410203201208080099,覆盖(11); 9)输入410203198808080099,覆盖(13)。

6、针对程序流程图(图略),用最少的测试用例完成各种逻辑覆盖和路径覆盖的

测试设计。 解题要点:

分别回答语句覆盖、判定覆盖、条件覆盖、路径覆盖。

其中:前三种逻辑覆盖可以用同样的两个测试用例覆盖(假设图中向右分支为

True分支;如果标注向右分支为False分支,语句覆盖可以用一个用例); 路径覆盖需要三个用例(两个判定均为True的路径不可能覆盖)。 用例应给出预期输出。

8、结合等价类划分和边界值分析法,设计个人所得税计算程序的测试用例。(税

率表略) 解题要点:

一般基于等价类划分的用例取中间值,边界值分析需要对每一个边界值取:边界值

-1、边界值、边界值+1三种情况。 用例应给出预期输出。

9、用判定表法设计测试NextDate(Y,M,D)函数的测试用例。 解题要点:

判定表的条件设置一定要单一,其不同组合直接能对应测试用例设计。 应至少写出部分用例,给出预期输出。

【补充题】1、针对Test函数按照基本路径测试方法设计测试用例。 int Test(int i_count, int i_flag) {

int i_temp = 0; while (i_count>0) {

if (0 == i_flag) {

i_temp = i_count + 100; break; } else {

if (1 == i_flag) {

i_temp = i_temp + 10; } else

..

.

{

i_temp = i_temp + 20; } }

i_count--; }

return i_temp; }

解:

int Test(int i_count, int i_flag) {

1 int i_temp=0; 2 while (i_count>0) {

3 If (0==i_flag) {

4 i_temp=i_count+100; 5 break; } 6 else {

7 If (1==i_flag) {

8 i_temp=i_temp+10; } 9 else {

10 i_temp=i_temp+20; } }

11 i_count--; }

12 return i_temp;

..

.

}程序控制流图:

1 2 3 4,5 8 6,7 9,10 11

12 程序环路复杂度:CC=4

基本路径集:

Path1 1-2-3-6-7-8-11-2-12 Path2 1-2-12

Path3 1-2-3-4-5-12

Path4 1-2-3-6-7-9-10-11-2-12 设计测试用例: 用例ID i_count i_flag test1 1 1 test2 0 2 test3 2 0 test4 1 3 预期输出 10 0 102 20

补2、试用等价分类法测试学生管理系统中出生日期的输入设计是否符合要求,假设出生年月格式为yyyymmdd,有效出生日期范围为1950年1月1日至1995年12月31日。 解:

等价类划分 输入条件 格式正确 有效等价类 8位数字字符(1) 无效等价类 有非数字字符 (8) 少于8个数字符 (9) 多于8个数字符 (10) <19500101 (11) >19951231 (12) 等于\(13) 数值范围(隐含年份范围) 月份数值范在19500101-19951231之间 (2) 在1-12之间 (3) ..

.

围 日期数值范围 1,3,5,7,8,10,12月在1-31之间(4) 4,6,9,11月在1-30之间(5) 闰年2月在1-29之间(6) 非闰年2月在1-28之间(7) >12 (14) 等于\(15) >31 (16) 2,4,6,9,11月等于\(17) 2月等于\(18) 非闰年2月等于\(19)

测试用例 序号 输入数据 覆盖等价类 1. 19800307 (1)(2)(3)(4) 2. 19890604 (1)(2)(3)(5) 3. 19880222 (1)(2)(3)(6) 4. 19790214 (1)(2)(3)(7) 5. 1966011a (8) 6. 1976021 (9) 7. 197602144 (10) 8. 19460214 (11) 9. 19960214 (12) 10. 19760014 (13) 11. 19761314 (14) 12. 19760200 (15) 13. 19760132 (16) 14. 19760431 (17) 15. 19760230 (18) 16. 19790229 (19)

补3、结合等价类划分法和边界值分析法,针对成绩转换程序设计测试用例。转换规则为:大于等于90小于等于100为优;大于75小于90为良;大于等于60小于等于75为及格;大于等于0小于60为不及格。 解:

等价类划分 输入条件 百分制成绩 有效等价类 [90,100](1) (75,<90)(2) 无效等价类 <0 (5) >100 (6) ..