软件测试实验1——语句覆盖、判定覆盖、条件覆盖、路径覆盖的用例设计及Junit测试

一、流程图

根据需求画出流程图

1、两个判定

M M

N N

2、两个条件

M = ( x > 3 ) & & ( z < 10 ) ) M={(x>3) \&\& (z<10))}

N = ( x = = 4 ) ( y > 5 ) N={(x==4)||(y>5)}

3、四条路径

P 1 ( 1 2 4 5 7 8 9 10 ) : M & & N P1(1-2-4-5-7-8-9-10):M \&\& N
P 2 ( 1 2 4 5 7 9 10 ) : M & & ¬ N P2(1-2-4-5-7-9-10):M \&\& \lnot N
P 3 ( 1 2 7 8 9 10 ) : ¬ M & & N P3(1-2-7-8-9-10):\lnot M \&\& N
P 4 ( 1 2 7 9 10 ) : ¬ M & & ¬ N P4(1-2-7-9-10):\lnot M \&\& \lnot N

4、五条语句

O : k = 0 , j = 0 O:k=0,j=0
P : k = x y 1 , j = s q r t ( k ) P:k=x*y-1, j=sqrt(k)
Q : j = x y + 10 Q:j=x*y+10
R : j = j % 3 R:j=j\%3
S : r e t u r n    j S:return \;j

二、设计测试用例

1、语句覆盖

测试用例 覆盖的语句 覆盖路径
输入: x = 4 , y = 4 , z = 2 x=4,y=4,z=2
输出: j = 2 j=2
k = 0 , j = 0 k=0,j=0
k = x y 1 , j = s q r t ( k ) k=x*y-1, j=sqrt(k)
j = x y + 10 j=x*y+10
j = j % 3 j=j\%3
r e t u r n    j return \;j
P 1 ( 1 2 4 5 7 8 9 10 ) P1(1-2-4-5-7-8-9-10)

2、判定覆盖

测试用例 判定M的取值 判定N的取值 覆盖路径
输入: x = 4 , y = 4 , z = 2 x=4,y=4,z=2
输出: j = 2 j=2
T T P 1 ( 1 2 4 5 7 8 9 10 ) P1(1-2-4-5-7-8-9-10)
输入: x = 2 , y = 2 , z = 5 x=2,y=2,z=5
输出: j = 0 j=0
F F P 4 ( 1 2 7 9 10 ) P4(1-2-7-9-10)

3、条件覆盖

对于 M M :
x > 3 T 1 , F 1 x>3取真时T1,取假时F1
z < 10 T 2 , F 2 z<10取真时T2,取假时F2


对于 N N :
x = = 4 T 3 , F 3 x==4取真时T3,取假时F3
y > 5 T 4 , F 4 y>5取真时T4,取假时F4

测试用例 取值条件 具体取值条件 覆盖路径
输入: x = 4 , y = 4 , z = 2 x=4,y=4,z=2
输出: j = 2 j=2
T 1 , T 2 , T 3 , T 4 T1,T2,T3,T4 x > 3 , z < 10 , x = = 4 , y > 5 x>3,z<10,x==4,y>5 P 1 ( 1 2 4 5 7 8 9 10 ) P1(1-2-4-5-7-8-9-10)
输入: x = 2 , y = 2 , z = 11 x=2,y=2,z=11
输出: j = 0 j=0
F 1 , F 2 , F 3 , F 4 F1,F2,F3,F4 x < = 3 , z > = 10 , x ! = 4 , y < = 5 x<=3,z>=10,x!=4,y<=5 P 4 ( 1 2 7 9 10 ) P4(1-2-7-9-10)

4、路径覆盖

编号 覆盖条件取值 判定条件取值 判定条件组合
1 T1,T2 M M x > 3 , z < 10 x>3,z<10
2 T1,F2 ¬ M \lnot M x > 3 , z > = 10 x>3,z>=10
3 F1,T2 ¬ M \lnot M x < = 3 , z < 10 x<=3,z<10
4 F1,F2 ¬ M \lnot M x < = 3 , z > = 10 x<=3,z>=10
5 T3,T4 N N x = = 4 , y > 5 x==4,y>5
6 T3,F4 N N x = = 4 , y < = 5 x==4,y<=5
7 F3,T4 N N x ! = 4 , y > 5 x!=4,y>5
8 F3,F4 ¬ N \lnot N x ! = 4 , y < = 5 x!=4,y<=5
测试用例 覆盖条件 覆盖路径 覆盖组合
输入: x = 4 , y = 4 , z = 2 x=4,y=4,z=2
输出: j = 2 j=2
T 1 , T 2 , T 3 , T 4 T1,T2,T3,T4 P 1 ( 1 2 4 5 7 8 9 10 ) P1(1-2-4-5-7-8-9-10) 1,5
输入: x = 10 , y = 5 , z = 8 x=10,y=5,z=8
输出: j = 1 j=1
T 1 , T 2 , F 3 , F 4 T1,T2,F3,F4 P 2 ( 1 2 4 5 7 9 10 ) P2(1-2-4-5-7-9-10) 1,8
输入: x = 2 , y = 6 , z = 12 x=2,y=6,z=12
输出: j = 1 j=1
F 1 , F 2 , F 3 , T 4 F1,F2,F3,T4 P 3 ( 1 2 7 8 9 10 ) P3(1-2-7-8-9-10) 4,7
输入: x = 2 , y = 2 , z = 11 x=2,y=2,z=11
输出: j = 0 j=0
F 1 , F 2 , F 3 , F 4 F1,F2,F3,F4 P 4 ( 1 2 7 9 10 ) P4(1-2-7-9-10) 4,8

三、编写Java类,调用该方法,并用Junit测试工具编写测试代码


public class Work {

    public int DoWork(int x, int y, int z){
        int k = 0, j = 0;
        if ( (x>3) && (z<10) )
        {
            k = x * y - 1;
            j = (int) Math.sqrt(k);
        }
        if ( (x == 4) || (y>5))
            j = x * y + 10;
        j = j%3;
        return j;
    }
}

测试类的编写

http://www.huangjihao.com/index.php/archives/886

发布了74 篇原创文章 · 获赞 3 · 访问量 4368

猜你喜欢

转载自blog.csdn.net/qq_40672635/article/details/105353303
今日推荐