软件测试技术习题参考答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章软件测试概述
1、简述软件缺陷的含义。
答:软件缺陷是软件开发过程中潜在的缺陷,这些缺陷可能在软件运行后出现,因而使软件的性能和可靠性等方面与系统的设计需求不符。
2、说明软件缺陷、软件错误和软件失败的关系。
答:缺陷、缺点、偏差统称为缺陷,是软件故障的根源;错误、谬误、问题、异常、矛盾等统称为错误,软件错误出现的原因是软件缺陷所致;失败、事故、灾难统称失败,失败的直接原因是软件系统存在软件错误。
14、“软件测试是有风险的工作”,试解释这种说法的含义。
答:软件不测试,就会有风险;软件测试,同样也会有风险。因为,软件是个复杂的系统,其复杂性体现在软件实现的内容复杂性、开发过程的复杂性和组织工作的复杂性等方面。而软件测试的目的是为了发现故障,并加以排除。对一个复杂的软件系统来说,故障的排除往往可能又带来新的软件缺陷。所以,软件测试又会带来一定的风险。
第2章软件测试基础
2、条件覆盖是否高于判断覆盖的逻辑覆盖程度如果不是,请给出反例加以说明。答:条件覆盖是高于判断覆盖的逻辑覆盖程度。
a、用条件覆盖所设计的测试用例可使得程序中的每一个判断的每一个条件的可能取值至少执行一次。
b、用判断覆盖所设计的测试用例可使被测程序中的每个判断的真分支和假分支至少经历一次。
每个判断语句可能包含多个条件(比如,if(A>3 && B<7)……)。条件覆盖针对判断语句的每一个条件的所有可能取值编写测试用例;判断覆盖只针对每一个判断语句整体的所有可能取值编写测试用例。所以,条件覆盖的逻辑覆盖程度高于判断覆盖。
4、已知某种计算机程序设计语言的标识符语法规则规定“标示符是由非数字开头的,有效字符数为32个,最大字符数为128个的任意符号串”。试用等价类划分法设计测试用例。
答:(1)等价类划分
(2)测试用例
① VAR abc7*ef: REAL;
BEGIN abc7*ef:=; // 覆盖等价类(1)(5)(7)
② VAR : REAL; // 覆盖等价类(2)
③ VAR a4567890:REAL; // 覆盖等价类(3)
④ VAR T12345……: REAL; // 覆盖等价类(4)
⑤ VAR GOTO: REAL; // 覆盖等价类(6)
⑥ VAR 2A: REAL; // 覆盖等价类(8)
5、已知一个变量的类型为double,它的取值范围为“-2.2”。试给出边界值法的测试用例。
答:测试用例,,,
6、已知程序框图如下图所示,试分别给出:(a)语句覆盖,(b)条件覆盖,(c)判断覆盖,的最小测试用例和路径。
图2-12 分解为基本判断的例
答:共2个语句:X=X/A和X=X+1。
2个判断,4个判断语句:A>1,B=0,A=2,X>1。 4个条件:A>1,B=0,A=2,X>1。
8个条件取值:T
1,T
2
,T
3
,T
4
,∼T
1
,∼T
2
,∼T
3
,∼T
4
5条路径:(L
1)acdbgk (L
2
)acebgk (L
3
)acdbfk (L
4
)acdbghk (L
5
)abgk
(a)语句覆盖
测试用例:A=2,B=0,X=5,覆盖路径L
4
,覆盖所有语句X=X/A和X=X+1。(b)判断覆盖
①覆盖路径:acdfk(T
1T
2
T
3
T
4
)
测试用例:A=2,B=0,X=4期望结果:A=2,B=0,X=3
②覆盖路径:acegk(T
1∼T
2
∼T
3
∼T
4
)
测试用例:A=3,B=1,X=6期望结果:A=3,B=1,X=6
③覆盖路径:abgk(∼T
1∼T
2
∼T
3
∼T
4
)
测试用例:A=0,B=1,X=6
期望结果:A=0,B=1,X=6
以上测试用例覆盖每个判断的真分支假分支至少一次。
(c)条件覆盖
测试用例:1)A=3,B=0,X=5,覆盖路径L
4
;
2)A=3,B=1,X=1,覆盖路径L
2
;
3)A=2,B=1,X=1,覆盖路径L
5
;
4)A=2,B=0,X=5,覆盖路径L
3
;
以上测试用例覆盖每一个判断的每一个条件的可能取值至少一次。
7、下面给出一个计算3个数中最大数的程序,试完成下列工作:
(a)给出对应的流图;
(b)计算环形复杂性V(G);
(c)求独立路径构成的基本集合(num
1,num
2
,num
3
各取一次最大值);
(d)给出每条路径执行的期望结果;
(e)给出每一条路径的测试用例。
①
②
③
④
⑤
⑥ ⑦
123567 12457
12357
123567的结果:num3是最大值
12457 的结果:num2是最大值 12357 的结果:num1是最大值
123567的测试用例:num1=5;num2=3;num3=8 12457 的测试用例:num1=3;num2=9;num3=5
12357 的测试用例:num1=9;num2=4;num3=5