软件测试与方法技术第三章习题
软件测试是软件开发过程中不可或缺的一部分,旨在确保软件的质量和可靠性。软件测试可以分为不同的阶段,如单元测试、集成测试、系统测试和验收测试等。每个阶段都有其特定的测试目标和方法。
在软件测试中, coverage 是一个重要的概念,指的是测试用例对软件的覆盖率。常见的覆盖方法有语句覆盖、判定覆盖、条件覆盖和基本路径覆盖等。
1. 逻辑覆盖方法中,语句覆盖、判定覆盖、条件覆盖和基本路径覆盖,哪一种覆盖率高?为什么?
答:基本路径覆盖的覆盖率高。顾名思义,基本路径覆盖就是设计所有的测试用例,来覆盖程序中所有可能的、独立的执行路径。而其他的任何一种方法,都不能完全覆盖所有的测试用例。
2. 根据如图 3-16 所示程序流程图,分别用最少的测试用例完成语句覆盖、判定覆盖、条件覆盖和路径覆盖的测试设计。
答:(1)语句覆盖测试用例:
输入:X=1,Y=11 输出:X=1,Y=11 P1(1,2,5)
输入:X=-11,Y=1 输出:X=-11,Y=10 P2(1,3,4)
(2)判定覆盖测试用例:
输入:X=1,Y=11 输出:X=1,Y=11 X>0,Y>10,X>=-10,Y>=0 M=.T. N=.F. P(1,2,5)
输入:X=-11,Y=1 输出 X=-11,Y=10 X<=0,Y<=10,X<-10,Y>=0 M=.F. N=.T. P(1,3,4)
(3)条件覆盖:
对于第一个判定条件 M,可分解成两个条件:(1)条件 X>0:取真时为 T1,取假时为 F1;(2)条件 Y>10:取真时为 T2,取假时为 F2;
对于第二个判定条件 N,可分解成两个条件:(1)条件 X<-10:取真时为 T3,取假时为 F3;(2)条件 Y<0:取真时为 T4,取假时为 F4;
测试用例:
输入:X=1,Y=11 输出:X=1,Y=11 T1,T2,F3,F4 X>0,Y>10,X>=-10,Y>=0 P(1,2,5)
输入:X=-11,Y=1 输出 X=-11,Y=10 F1,F2,T3,F4 X<=0,Y<=10,X<-10,Y>=0 P(1,3,4)
(4)路径覆盖组合表:
编号 | 覆盖条件 | 取值
1 | T1,T2 | 2
2 | T1,F2 | 3
3 | F1,T2 | 4
4 | F1,F2 | 5
5 | T3,T4 | 6
6 | T3,F4 | 7
7 | F3,T4 | 8
8 | F3,F4 | 9
测试用例:
输入:X=1,Y=11 输出:X=1,Y=11 P(1,2,5) T1,T2,F3,F4
输入:X=-11,Y=1 输出 X=-11,Y=10 P(1,3,4) F1,F2,T3,F4
3. 结合边界值分析法和等价类分析法,针对不同月薪需要缴纳的个人所得税计算程序,来设计充分的测试用例。
设个人所得税的起征点为 3500 元,税率见表 3-21。
答:(1)问题分析:
对于该问题,设个人月薪为 X 则 X 要满足的条件有:
X 由数字 0~9 构成
X>=0
X 不满足的条件有:
X<0
X 为非数字字符
(2)建立等价类表:
输入条件 | 有效等价类编号 | 无效等价类编号
月薪 X 是数字字符 | 1 | 13
X 为非数字字符 | 2 | 13
X>=0 | 2 | 14
X<0 | 3 | 14
X<=3500 | 3 | 35
3500<X<=4000 | 4 | 39
4000<X<=5500 | 5 | 54
5500<X<=8500 | 6 | 58
8500<X<=23500 | 7 | 72
23500<X<=43500 | 8 | 83
43500<X<=63500 | 9 | 93
63500<X<=83500 | 10 | 103
83500<X<=11103500 | 11 | 113
X>103500 | 12
(3)利用健壮性分析输入值 X 的边界值:
项 | 边界值
X>=0 | -1, 0, 1
X<0 | -1, 0, 1
X<=3500 | 3499, 3500, 3501
3500<X<=4000 | 3499, 3500, 4000
4000<X<=5500 | 3999, 4000, 5500
5500<X<=8500 | 5499, 5500, 8500
8500<X<=23500 | 8499, 8500, 23500
23500<X<=43500 | 23499, 23500, 43500
43500<X<=63500 | 43499, 43500, 63500
63500<X<=83500 | 63499, 63500, 83500
83500<X<=11103500 | 83499, 83500, 11103500
X>103500 | 102499, 103500, 103501
软件测试是软件开发过程中不可或缺的一部分,旨在确保软件的质量和可靠性。软件测试可以分为不同的阶段,如单元测试、集成测试、系统测试和验收测试等。每个阶段都有其特定的测试目标和方法。在软件测试中, coverage 是一个重要的概念,指的是测试用例对软件的覆盖率。常见的覆盖方法有语句覆盖、判定覆盖、条件覆盖和基本路径覆盖等。
评论5
最新资源