白盒测试之路径测试练习

白盒测试之路径测试练习

1 class sjx():
#输入三条边,进行判断,是否为等边,等腰及普通三角形,如果不是输出不能组成三角形,用函数实现
3    def triangle(self,a,b,c):#在一个类中定义函数,self是固定存在的
4        if(a<b+c)and (b<a+c)and(c<a+b):
5             istriangle=True
6        else:
7             istriangle=False
8        if(istriangle==True):
9            if(a==b)or(b==c)or(a==b):
10                if(a==b)and(b==c):
11                    print("等边三角形")
12                    return 1
13                else:
14                    print("等腰三角形")
15                    return 2
16            else:
17                print("普通三角形")
18                return 3
19        else:
20            print("非三角形")
21            return 4
if __name__ == '__main__':
    s=sjx()
    s.triangle(1,2,3)

根据案例画出数据流图:

在这里插入图片描述

圈的复杂度:5

通过上图,我们发现节点8的入度和初度均为2,因此我们需要考虑将此节点进行简化,或者去掉这个节点。为什么我们需要关注这个节点呢?p{4 7 8 9}和p{4 5 8 20 21}是两个不合理的路径,因为5能执行 20 21一定不执行。所以我们需要去掉这个节点。

在这里插入图片描述

圈的复杂度:4

下面,我们根据数据流图去设计测试用例:

p1{4 5 8 9 10 11 12}

p2{4 5 8 9 10 14 15}

p3{4 5 8 9 17 18}

p4{4 7 8 20 21}

用例IDabc预期输出实际输出覆盖的路径
1555等边三角形等边三角形p1
2556等腰三角形等腰三角形p2
3345普通三角形普通三角形p3
4123非三角形非三角形p4

在最后,我们也可以加上测试程序。测试程序可以按照下面的思路写,这里有一个java程序,可以进行参考。

public class Calculate {
    //开发人员代码
    public static void main(String[] args) {
        Calculate ca = new Calculate();
        int res1 = ca.jia(3, 4);
        int res2 = ca.jian(5, 2);
        System.out.println(res1);
        System.out.println(res2);
    }
    public int jia(int a,int b){
        int result = a + b;
        return result;
    }
    public int jian(int a,int b){
        int result = a - b;
        return result;
    }
    //测试人员代码
    @Test
    public void test1(){
        System.out.println("开始测试");
        int real = jia(3, 4);
        int imagine = 3 + 4;
        if(real == imagine){
            System.out.println("3 + 4 = 7 测试成功 程序无误");
        }else{
            System.out.println("3 + 4 = 7 测试失败 程序有误");
        }
        int rea2 = jian(5, 2);
        int imagine2 = 5 - 2;
        if(rea2 == imagine2){
            System.out.println("5 - 2 = 3 测试成功 程序无误");
        }else{
            System.out.println("5 - 2 = 3 测试失败 程序有误");
        }
        System.out.println("结束测试");
    }
}
测试结果:
开始测试
3 + 4 = 7 测试成功 程序无误
5 - 2 = 3 测试成功 程序无误
结束测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值