前言
最近發現身邊測試的同學都不太了解/理解白盒測試,網上的資料又是千篇一律(互抄),不易理解。所以想做一個更容易讓測試同學學習的白盒測試教程。
語句覆蓋
一、定義:
程序中每一個語句至少能被執行一次
二、特點:
1、程序中每一個語句執行一次
2、對程序執行邏輯的覆蓋率低,屬於最弱的覆蓋方式
3、無需測試程序的分支情況
4、無需測試程序分支判斷的輸入值以及輸入值的組合
5、無需測試程序執行的不同路徑
三、程序流程圖
四、源代碼
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('X:', X)
print('結束')
五、語句覆蓋 用例設計
用例編號 | 測試用例 | 覆蓋路徑 | 預期結果 |
---|---|---|---|
1 | A=2,B=0,X=3 | a-c-e | X=2.5 |
執行編號1 用例,程序從上往下執行,每一行代碼都會運行 —— 語句覆蓋
執行結果:X=2.5
六、使用Python Unittest 實現上述用例
test_demo.py
# 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_statement_coverage(self):
'''
使用語句覆蓋測試 方法demo
輸入:A=2,B=0,X=3
預期結果:X = 2.5
'''
X = self.demo(A=2, B=0, X=3)
self.assertEqual(2.5, X)
if __name__ == '__main__':
unittest.main()