100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 判定覆盖白盒测试java_白盒测试系列(四)条件判定覆盖

判定覆盖白盒测试java_白盒测试系列(四)条件判定覆盖

时间:2023-05-25 07:53:31

相关推荐

判定覆盖白盒测试java_白盒测试系列(四)条件判定覆盖

条件判定覆盖

一、定义:

程序中每个判定至少有一次为真值,有一次为假值,使得程序中每个分支至少执行一次,

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

二、特点:

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 + 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 ; 程序结束

执行用例2 ,判定(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-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()

原文出处:/snailrunning/p/11019436.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。