资源描述
第1章 软件测试概述
1、 简述软件缺点含义。
答: 软件缺点是软件开发过程中潜在缺点, 这些缺点可能在软件运行后出现, 所以使软件性能和可靠性等方面与系统设计需求不符。
2、 说明软件缺点、 软件错误和软件失败关系。
答: 缺点、 缺点、 偏差统称为缺点, 是软件故障根源; 错误、 谬误、 问题、 异常、 矛盾等统称为错误, 软件错误出现原因是软件缺点所致; 失败、 事故、 灾难统称失败, 失败直接原因是软件系统存在软件错误。
14、 “软件测试是有风险工作”, 试解释这种说法含义。
答: 软件不测试, 就会有风险; 软件测试, 一样也会有风险。因为, 软件是个复杂系统, 其复杂性表现在软件实现内容复杂性、 开发过程复杂性和组织工作复杂性等方面。而软件测试目是为了发觉故障, 并加以排除。对一个复杂软件系统来说, 故障排除往往可能又带来新软件缺点。所以, 软件测试又会带来一定风险。
第2章 软件测试基础
2、 条件覆盖是否高于判定覆盖逻辑覆盖程度?假如不是, 请给出反例加以说明。
答: 条件覆盖是高于判定覆盖逻辑覆盖程度。
a、 用条件覆盖所设计测试用例可使得程序中每一个判定每一个条件可能取值最少实施一次。
b、 用判定覆盖所设计测试用例可使被测程序中每个判定真分支和假分支最少经历一次。
每个判定语句可能包含多个条件(比如, if(A>3 && B<7)……)。条件覆盖针对判定语句每一个条件全部可能取值编写测试用例; 判定覆盖只针对每一个判定语句整体全部可能取值编写测试用例。所以, 条件覆盖逻辑覆盖程度高于判定覆盖。
4、 已知某种计算机程序设计语言标识符语法规则要求“标示符是由非数字开头, 有效字符数为32个, 最大字符数为128个任意符号串”。试用等价类划分法设计测试用例。
答: (1)等价类划分
输入条件
有效等价类
无效等价类
标识符字符数
1-32个(1)
0个(2)
>32个(3)
>128个(4)
标识符组成
任意符号串(5)
保留字(6)
非符号串//不需要分出这一项
第1个字符
非数字(7)
数字(8)
(2)测试用例
① VAR abc7*ef: REAL;
BEGIN abc7*ef:=10.11; // 覆盖等价类(1)(5)(7)
② VAR : REAL; // 覆盖等价类(2)
③ VAR a56789012: REAL; // 覆盖等价类(3)
④ VAR T12345……: REAL; // 覆盖等价类(4)
⑤ VAR GOTO: REAL; // 覆盖等价类(6)
⑥ VAR 2A: REAL; // 覆盖等价类(8)
5、 已知一个变量类型为double, 它取值范围为“-0.2-2.2”。试给出边界值法测试用例。
答: 测试用例-0.201, -0.199, 2.199, 2.201
6、 已知程序框图以下图所表示, 试分别给出: (a)语句覆盖, (b)条件覆盖, (c)判定覆盖, 最小测试用例和路径。
(X>1)
(A>1)
(A=2)
X=X/A
X=X+1
a
F
g
F
b
T f
T d
图2-12 分解为基础判定例子
(B=0)
T c
F e
T h
F
k
答: 共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个条件取值: T1, T2, T3, T4, ∼T1, ∼T2, ∼T3, ∼T4
5条路径: (L1)acdbgk (L2)acebgk (L3)acdbfk (L4)acdbghk (L5)abgk
(a)语句覆盖
测试用例: A=2, B=0, X=5, 覆盖路径L4, 覆盖全部语句X=X/A和X=X+1。
(b)判定覆盖
①覆盖路径: acdfk(T1T2T3T4)
测试用例: A=2, B=0, X=4
期望结果: A=2, B=0, X=3
②覆盖路径: acegk(T1∼T2∼T3∼T4)
测试用例: A=3, B=1, X=6
期望结果: A=3, B=1, X=6
③覆盖路径: abgk(∼T1∼T2∼T3∼T4)
测试用例: A=0, B=1, X=6
期望结果: A=0, B=1, X=6
以上测试用例覆盖每个判定真分支假分支最少一次。
(c)条件覆盖
测试用例: 1)A=3, B=0, X=5, 覆盖路径L4;
2)A=3, B=1, X=1, 覆盖路径L2;
3)A=2, B=1, X=1, 覆盖路径L5;
4)A=2, B=0, X=5, 覆盖路径L3;
以上测试用例覆盖每一个判定每一个条件可能取值最少一次。
7、 下面给出一个计算3个数中最大数程序, 试完成下列工作:
(a)给出对应流图;
(b)计算环形复杂性V(G);
(c)求独立路径组成基础集合(num1,num2,num3各取一次最大值);
(d)给出每条路径实施期望结果;
(e)给出每一条路径测试用例。
main() // a c code about finding out the small one in tree input number
{int num1,num2,num3,max;
printf("Please input three numbers:");
scanf("%d,%d,%d",&num1,&num2,&num3);
if (num1>num2)
max=num1;
else
max=num2;
if (num3>max)
max=num3;
printf("The three numbers are:%d,%d,%d\n",num1,num2,num3);
printf("max=%d\n",max);
}
图2-3 一个计算三个数中最大数程序
①
②
③
④
⑤
⑥
⑦
1
2
4
3
5
7
6
解:
(b)环形复杂性: 3
(c)基础路径集: (不唯一)
123567
12457
12357
(d)期望结果:
123567结果: num3是最大值
12457 结果: num2是最大值
12357 结果: num1是最大值
(e)测试用例: (不唯一)
123567测试用例: num1=5; num2=3; num3=8
12457 测试用例: num1=3; num2=9; num3=5
12357 测试用例: num1=9; num2=4; num3=5
展开阅读全文