zoukankan      html  css  js  c++  java
  • 白盒测试系列(三)条件覆盖

    条件覆盖

    一、定义:

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

    二、特点:

    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()
    
    
    


  • 相关阅读:
    思念
    空白
    curl json string with variable All In One
    virtual scroll list All In One
    corejs & RegExp error All In One
    socket.io All In One
    vue camelCase vs PascalCase vs kebabcase All In One
    element ui 表单校验,非必填字段校验 All In One
    github 定时任务 UTC 时间不准确 bug All In One
    input range & color picker All In One
  • 原文地址:https://www.cnblogs.com/snailrunning/p/11013368.html
Copyright © 2011-2022 走看看