练习3(第7章)编码和测试
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1设计下列伪码程序的语句覆盖和路径覆盖测试用例:
START
INPUT(A,B,C)
IF A>5
THEN X=10
ELSE X=1
END IF
IF B>10
THEN Y=20
ELSE Y=2
END IF
IF C>15
THEN Z=30
ELSE Z=3
END IF
PRINT(X,Y,Z)
STOP
答:(1)语句覆盖的测试用例
因为每个判定表达式为真或为假时均有赋值语句,为了使每个语句都至少执行一次,总共需要两组测试数据,以便使得每个判定表达式取值为真或为假各一次。下面是实现语句覆盖的典型测试用例:
l使3个判定表达式之值全为假
输入:A=1,B=1,C=1
预期的输出:X=1,Y=2,Z=3
l使3个判定表达式之值全为真
输入:A=20,B=40,C=60
预期的输出:X=10,Y=20,Z=30
(2)路径覆盖的测试用例
本程序共有8条可能的执行通路,为做到路径覆盖总共需要8组测试数据。下面是实现路径覆盖的典型测试用例:
l3个判定表达式之值全为假
输入:A=1,B=1,C=1
预期的输出:X=1,Y=2,Z=3
l3个判定表达式依次为假、假、真
输入:A=1,B=1,C=60
预期的输出:X=1,Y=2,Z=30
l3个判定表达式依次为假、真、假
输入:A=1,B=40,C=1
预期的输出:X=1,Y=20,Z=3
l3个判定表达式依次为假、真、真
输入:A=1,B=40,C=60
预期的输出:X=1,Y=20,Z=30
l3个判定表达式依次为真、假、假输入:A=20,B=1,C=1
预期的输出:X=10,Y=2,Z=3
l3个判定表达式依次为真、假、真输入:A=20,B=1,C=60
预期的输出:X=10,Y=2,Z=30
l3个判定表达式依次为真、真、假输入:A=20,B=40,C=1
预期的输出:X=10,Y=20,Z=3
l3个判定表达式全为真
输入:A=20,B=40,C=60
预期的输出:X=10,Y=20,Z=30
2设计下列伪码程序的分支覆盖和条件组合覆盖测试用例:START
INPUT(A,B,C,D)
IF (A>0) AND (B>0)
THEN X=A+B
ELSE X=A-B
END IF
IF (C>A) OR (D
THEN Y=C-D
ELSE Y=C+D
END IF
PRINT(X,Y)
STOP
答:(1)分支覆盖(即判定覆盖)标准为,不仅使每个语句至少执行一次,而且使每个判定表达式的每个分支都至少执行一次。
下面是测试用例:
l使2个判定表达式之值全为假
输入:A=-1,B=-2,C=-3,D=1
预期的输出:X=1,Y=-2
l使2个判定表达式之值全为真
输入:A=1,B=2,C=3,D=1
预期的输出:X=3,Y=2
(2)条件组合覆盖标准为,使每个判定表达式中条件的各种可能组合都至少出现一次。
本题有两个判定表达式,每个判定表达式中有两个简单条件,总共有8种可能的组合条件:
①A>0,B>0
②A>0,B≤0≥
③A≤0,B>0
④A≤0,B≤0
⑤C>A,D
⑥C>A,D≥B
⑦C≤A,D
⑧C≤A,D≥B
下面的4个测试用例,可以使上面列出的8个条件组合每种至少出现一次:
①实现1,5两种条件组合
输入:A=1,B=1,C=2,D=0
预期的输出:X=2,Y=2
②实现2,6两种条件组合
输入:A=1,B=0,C=2,D=1
预期的输出:X=1,Y=1
③实现3,7两种条件组合
输入:A=0,B=1,C=-1,D=0
预期的输出:X=-1,Y=-1 ④实现4,8两种条件组合
输入:A=0,B=0,C=-1,D=1
预期的输出:X=0,Y=0
3使用基本路径测试方法,设计测试下面列出伪码程序的测试用例:1:START
INPUT(A,B,C,D)
2:IF (A>0)
3:AND (B>0)
4:THEN X=A+B
5:ELSE X=A-B
6:END IF
7:IF (C>A)
8:OR (D
9:THEN Y=C-D
10:ELSE Y=C+D
11:END IF
12:PRINT(X,Y)
STOP
答:用基本路径测试方法设计测试用例的过程,有下述4个步骤:
(1)根据过程设计的结果画出流图
(2)计算流图的环形复杂度
使用下面3种方法中的任一种都可以算出流图的环形复杂度为5.
①该流图共有15条边,12个节点,所以环形复杂度为5。
②该流图共有5个区域,因此环形复杂度为5。
③该流图中共有4个判定节点,因此环形复杂度为4+1=5.
(3)确定线性独立路径的基本集合
所谓线性独立路径是指至少引入程序的一个新语句集合或一个新条件的路径,用流图术语来描述,独立路径至少包含一条在定义该路径之前不曾用过的边。
使用基本路径测试法设计测试用例时,程序的环形复杂度决定了程序中独立路径的数量,而且这个数值是确保程序中所有语句至少被执行一次所需的测试数量的上界。下面列出了5条独立路径:
路径1:1-2-3-4-6-7-9-11-12
路径2:1-2-5-6-7-9-11-12