条件组合覆盖
⼀、定义:
判定中条件的各种组合都⾄少被执⾏⼀次
⼆、特点:
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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务