软件测试与质量保证 习题答案 .docx
教材习题参考答案
PAGE
PAGE1
习题一
选择题
1
2
3
4
5
6
7
8
9
10
D
C
D
A
A
D
C
A
D
B
填空题
运行、测定
预防成本、评价成本、失败成本
软件缺陷、满足用户的需求
被测试程序、测试用例
开发、测试
判断题
1
2
3
4
5
6
7
8
9
10
X
X
X
X
X
√
X
X
√
X
解答题
答:软件测试工作者应从这一案例获得以下警示:
(1)应有社会责任感,因为有的软件如果出现问题,可能会危害社会。
(2)应有质量意识,自觉保证和提高软件质量,防止软件出现问题。
(3)应对软件进行严格、充分的测试,尽可能发现软件中的缺陷和问题。
(4)软件测试工作要周到细致,不仅要考虑一般情况,还要考虑到各种可能发生的特殊情况。
(5)对于复杂的系统,测试工作是有难度的,需要积极创新,提高测试水平,才能达到好的测试效果。
针对以下代码,请分析代码中存在的问题和缺陷。
如果成绩数组为空或者长度为0,应给出具体的提示信息。
循环控制变量i的初值应为0。
这段代码没有注释,规范的代码应当有良好的注释。
有程序段如下:
试分析该程序段有何逻辑错误;
程序的逻辑错误在于,z只与x进行了比较,而没有与y进行比较。当z与x进行比较,且zx时,程序就会让max=z,但此时如果zy,就出错了。
设计1个测试数据,使得执行该测试时会执行到fault但不会触发error;
x=9,y=8,z=7(zx即可)
设计1个测试数据,使得执行该测试时会执行到fault并触发error,但不会引起Failure;
x=9,y=8,z=10(z最大即可)
设计1个测试数据,使得执行该测试时会执行到fault,触发error,并引起Failure。
x=9,y=11,z=10(xy,且zx即可)
习题二
选择题
1
2
3
C
B
A
填空题
数据流分析
静态
编程规范、编码规则
注释
判断题
1
2
3
√
√
X
解答题
1.代码中存在的问题有:
①这段代码没有注释,规范的代码应当有良好的注释。
②变量Weight在接口和内部实现的数据类型不一致。
③reada[i]执行可能出错,但没有出错处理代码。
④循环控制变量i的初值应为0。
⑤特殊情况时a.length=0,此时执行Weight=S/a.length会出错,应在此行代码之前判断a.length是否等于0,只有不等于0时才能作为除数。
2.处理逻辑问题:Fun1函数中没有考虑80=score90的情况;
边界条件问题:Fun1函数中score=60的情况没考虑;
模块接口问题:main函数调用Fun1函数形参为char型,而Fun1函数形参变量定义为int型。
代码修改
voidFun1(intscore)
{if(score=90)printf(“优秀\n”);
if((score90)(score=80))printf(“良好\n”);
if((score80)(score=70))printf(“中等\n”);
if((score70)(score=60))printf(“及格\n”);
if(score60)printf(“不及格\n”);}
voidmain()
{Intnumber;
scanf(“%c”,number);
Fun1(number);}
习题三
选择题
1
2
3
4
5
6
A
A
B
D
A
C
填空题
导致的错误重现
误差
条件组合覆盖
判断题
1
2
3
4
5
6
√
X
√
X
X
√
解答题
答
语句覆盖:
测试用例
(A4)(B9)
A==5B28
A=5,B=3
T
A=5,B=30
T
判定覆盖:
测试用例
(A4)(B9)
A==5B28
A=5,B=3
T
F
A=5,B=30
F
T
条件覆盖:
测试用例
(A4)
(B9)
A==5
B28
A=5,B=3
T
T
T
F
A=3,B=30
F
F
F
T
条件/判定覆盖:
测试用例
(A4)
(B9)
A==5
B28
(A4)(B9)
A==5B28
A=5,B=3
T
T
T
F
T
F
A=3,B=30
F
F
F
T
F
F
A=5,B=30