• 白盒测试系列(三)条件覆盖


    条件覆盖

    一、定义:

    程序各判定中的每个条件获得各种可能的取值至少满足一次

    二、特点:

    1、弥补了判定覆盖的不足——对整个判定的最终取值(真或假)进行度量
    2、条件覆盖不一定能满足判定覆盖
    3、条件覆盖不一定能满足语句覆盖

    三、 程序流程图:

    四、源码:

    demo.py

    #encoding:utf-8
    A = int(input('请输入A的值'))
    B = int(input('请输入B的值'))
    X = int(input('请输入X的值'))
    
    if A > 1 and B == 0:
        X = X / A
    if A == 2 or X > 1:
        X = X + 1
    print('结束')
    

    五、测试用例设计

    用例编号测试用例覆盖路径预期结果
    1 A=2,B=1,X=4 a-b-e X = 5
    2 A=-1,B=0,X=1 a-b-d X = 1

    执行用例1 ,判定(A > 1 and B == 0)为假 ,不执行 X = X / A;
    判定(A == 2 or X > 1)为真,执行X = X + 1 ;
    输出 X = 5 ;
    程序结束

    执行用例2 ,判定(A > 1 and B == 0)为假,不执行X = X / A ;
    判定(A == 2 or X > 1)为假,不执行X = X + 1 ;
    输出 X = 1 ;
    程序结束

    从上述用例可以得出:
    1、上述用例遗漏覆盖分支“c”;满足条件覆盖,但不满足判定覆盖
    2、上述用例均未执行语句X = X / A;满足条件覆盖,但不满足语句覆盖

    六、使用Python Unittest 实现上述用例

    # encoding:utf-8
    
    import unittest
    
    
    class TestDemo(unittest.TestCase):
    
        def demo(self, A, B, X):
            if A > 1 and B == 0:
                X = X / A
            if A == 2 or X > 1:
                X = X + 1
            return X
    
        def test_demo_with_conditional_coverage_1(self):
            '''
            使用条件覆盖测试 方法demo
            A=2,B=1,X=4
            '''
            X = self.demo(A=2, B=1, X=4)
            expected = 5
            self.assertEqual(expected, X)
    
        def test_demo_with_conditional_coverage_2(self):
            '''
            使用条件覆盖测试 方法demo
            A=-1,B=0,X=1
            '''
            X = self.demo(A=-1, B=0, X=1)
            expected = 1
            self.assertEqual(expected, X)
    
    if __name__ == '__main__':
        unittest.main()
  • 相关阅读:
    记一次线上OOM问题分析与解决
    理解JAVA内存模型
    SpringBoot+Shiro+JPA+LayUI的后台管理系统
    学会使用BeanUtils,提高你的开发效率
    一篇文章教你快速上手接口管理工具swagger
    js 多维数组转一维数组(根据字段展示)
    记一次阿里云服务器中部署egg遇到的问题 (docker vim)
    react 封装tab组件
    js 添加 好玩的注释
    js 下载文件流
  • 原文地址:https://www.cnblogs.com/mmz-tester/p/13201734.html
Copyright © 2020-2023  润新知