您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页白盒测试系列(五)条件组合覆盖

白盒测试系列(五)条件组合覆盖

来源:爱问旅游网
⽩盒测试系列(五)条件组合覆盖

条件组合覆盖

⼀、定义:

判定中条件的各种组合都⾄少被执⾏⼀次

⼆、特点:

1、满⾜条件组合覆盖的⽤例⼀定满⾜语句覆盖2、满⾜条件组合覆盖的⽤例⼀定满⾜条件覆盖3、满⾜条件组合覆盖的⽤例⼀定满⾜判定覆盖

4、满⾜条件组合覆盖的⽤例⼀定满⾜条件判定覆盖

5、条件组合覆盖没有考虑各判定结果(真或假)组合情况,不满⾜路径覆盖6、条件组合数量⼤,设计测试⽤例的时间花费较多

三、 程序流程图:

四、源码:

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 + 1print('结束')

五、测试⽤例设计⽰例

⽤例编号1234

测试⽤例

覆盖条件

覆盖路径预期结果

X = 3X = 2X = 3X = 1

A=2,B=0,X=4(A>1) and (B== 0), (A==2) or (X>1)a-c-eA=2,B=1,X=1(A>1) and (B!=0), (A==2) or (X<=1)a-b-eA=1,B=0,X=2(A<=1) and (B==0), (A!=2) or (X>1)a-b-eA=1,B=1,X=1(A<=1) and (B!=0), (A!=2) or (X<=1)a-b-d执⾏⽤例1 ,判定(A > 1 and B == 0)为真 ,执⾏ X = X / A, X=2;判定(A == 2 or X > 1)为真,执⾏X = X + 1 ;输出 X = 3 ;程序结束

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

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

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

从上述⽤例可以得出:

1、满⾜条件判定覆盖的测试⽤例满⾜语句覆盖

2、满⾜条件判定覆盖的测试⽤例满⾜条件覆盖,判定覆盖 ,条件判定覆盖

3、上述⽤例未考虑每个判定的真假组合情况(路径覆盖),程序所有路径没有覆盖

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

# encoding:utf-8import 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_combination_coverage_1(self): '''

使⽤条件组合覆盖测试 ⽅法demo A=2,B=0,X=4 '''

X = self.demo(A=2, B=0, X=4) expected = 3

self.assertEqual(expected, X)

def test_demo_with_conditional_combination_coverage_2(self): '''

使⽤条件组合覆盖测试 ⽅法demo A=2,B=1,X=1 '''

X = self.demo(A=2, B=1, X=1) expected = 2

self.assertEqual(expected, X)

def test_demo_with_conditional_combination_coverage_3(self): '''

使⽤条件组合覆盖测试 ⽅法demo A=1,B=0,X=2 '''

X = self.demo(A=1, B=0, X=2) expected = 3

self.assertEqual(expected, X)

def test_demo_with_conditional_and_decision_coverage_4(self): '''

使⽤条件组合覆盖测试 ⽅法demo A=1,B=1,X=1 '''

X = self.demo(A=1, B=1, X=1) expected = 1

self.assertEqual(expected, X)if __name__ == '__main__': unittest.main()

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有 湘ICP备2023022495号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务