程序中每一个断定至少有一次为真值,有一次为假值,使得程序中每一个分支至少执行一次,
且使得各断定中的每一个条件得到各类可能的取值至少知足一次。python
一、综合了条件覆盖和断定覆盖的特色
二、知足条件断定覆盖的用例必定知足语句覆盖
三、知足条件断定覆盖的用例必定知足条件覆盖
四、知足条件断定覆盖的用例必定知足断定覆盖
五、条件断定覆盖没有考虑各断定结果(真或假)组合状况,不知足路径覆盖
六、未考虑断定中各条件不一样取值的组合状况,不知足条件组合覆盖测试
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=0,X=4 | a-c-e | (A>1), (B== 0), (A==2), (X>1) | X = 3 |
2 | A=1,B=1,X=1 | a-b-d | (A<=1), (B!=0), (A!=2), (X<1) | X = 1 |
执行用例1 ,断定(A > 1 and B == 0)为真 ,执行 X = X / A, X=2;
断定(A == 2 or X > 1)为真,执行X = X + 1 ;
输出 X = 3 ;
程序结束code
执行用例2 ,断定(A > 1 and B == 0)为假,不执行X = X / A ;
断定(A == 2 or X > 1)为假,不执行X = X + 1 ;
输出 X = 1 ;
程序结束blog
从上述用例能够得出:
一、 知足条件断定覆盖的测试用例知足语句覆盖
二、知足条件断定覆盖的测试用例知足条件覆盖,断定覆盖
三、上述用例未考虑每一个断定的真假组合状况(路径覆盖)utf-8
# 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_and_decision_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_and_decision_coverage_2(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()