条件判定カバレッジ
まず、定義:
各プログラムは、プログラムの各ブランチは少なくとも一度ことは、真の値として、我々は偽の値を有する少なくとも一回決定される
ので、それぞれの決意条件の各々は可能な値を満たす様々な得るために、その少なくとも一度。
第二に、特徴:
1、条件カバレッジ及び被覆特性決定の組合せ
2は、ステートメントカバレッジ満たさなければならない例条件判定カバレッジと会う
条件カバー満たさなければならない、3例の条件判定カバレッジと会う
決定カバレッジ満たしている必要があり、4例の条件判定カバレッジで満たす
条件で、5何ら考慮を組み合わせて(trueまたはfalse)各決意結果を覆って決定されていない、パスカバレッジを満たしません
第三に、プログラムの流れ:
第四に、ソースコード:
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> 1)、(B == 0)、(== 2)、(X> 1) | X = 3 |
2 | A = 1、B = 1、X = 1 | アブド | (<= 1)、(B!= 0)、(!= 2)、(X <1) | X = 1 |
実行例1、決意(A> 1とB == 0 ) を実行X = X / A、X =真である 2;
決意(== 2又はX> 1 ) 真であり、X = X + 1を実行します。
出力X = 3;
エンドプログラム
実施例2実施決意(A> 1とB == 0 ) 偽であり、X = X / Aを実行しない。
決意(== 2又は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()