白盒測試系列(二)判定覆蓋(分支覆蓋)

2022-01-22 00:28:46 字數 1735 閱讀 8999

程式中每個判定至少有一次為真值,有一次為假值,使得程式中每個分支至少執行一次

1、滿足判定覆蓋的測試用例一定滿足語句覆蓋

2、對整個判定的最終取值(真或假)進行度量,但判定內部每乙個子表示式的取值未被考慮

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('結束')

用例編號

測試用例

覆蓋路徑

預期結果

1a=3,b=0,x=1

a-c-d

x = 1/3

2a=2,b=1,x=3

a-b-e

x = 4

執行用例1 ,判定(a > 1 and b == 0)為真 ,執行x = x / a ,x =1/3;

判定(a == 2 or x > 1)為假,不執行x = x + 1 ; 程式結束

執行用例2 ,判定(a > 1 and b == 0)為假,不執行x = x / a ;

判定(a == 2 or x > 1)為真,執行x = x + 1 ,x = 4 ; 程式結束

從上述用例可以得出:

1、判定覆蓋測試用例一定滿足語句覆蓋

2、判定覆蓋只需考慮每個判定真假,每個分支執行一次即可

# 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_decision_coverage_1(self):

'''使用判定覆蓋測試 方法demo

a=3,b=0,x=1

'''x = self.demo(a=3, b=0, x=1)

expected = 1/3

self.assertequal(expected, x)

def test_demo_with_decision_coverage_2(self):

'''使用判定覆蓋測試 方法demo

a=2,b=1,x=3

'''x = self.demo(a=2, b=1, x=3)

expected = 4

self.assertequal(expected, x)

if __name__ == '__main__':

unittest.main()

白盒測試技術 語句覆蓋 判定覆蓋 條件覆蓋

結合乙個例子說 畫出相應的程式流程圖,更方便分析 首先我們要明確一點 測試用例要盡可能少。1 語句覆蓋 被測程式中每個語句至少執行一次 路徑 s a b c d e a 2,b 0,預計輸出結果x 2 2 判定覆蓋 不僅每個語句必須至少執行一次,而且每個判定的每種可能的結果都應該至少執行一次 至少兩...

白盒測試方法 白盒測試系列(一) 語句覆蓋

最近發現身邊測試的同學都不太了解 理解白盒測試,網上的資料又是千篇一律,不易理解。想做乙個更容易讓測試同學學習的白盒測試基礎教程。在設計和執行用例的過程中,把程式視為透明的盒子,不但關注程式輸入的內容和輸出結果,還需要關注程式內部結構或運作程式中每乙個語句至少能被執行一次1 程式中每乙個語句至少執行...

白盒測試邏輯覆蓋法

看新定的測試覆蓋率標準,有點暈。1 語句覆蓋率達到100 2 分支覆蓋率不低於70 開始覺得,這兩個限制有點矛盾,語句覆蓋率都達到100 了,分支覆蓋率還沒達到100 答案 是。舉個例子說明 if a and b then action1 if c or d then action2 就拿這個來說,...