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

前言

最近發現身邊測試的同窗都不太瞭解/理解白盒測試,網上的資料又是千篇一概(互抄),不易理解。因此想作一個更容易讓測試同窗學習的白盒測試教程。python

語句覆蓋

1、定義:

程序中每個語句至少能被執行一次學習

2、特色:

一、程序中每個語句執行一次
二、對程序執行邏輯的覆蓋率低,屬於最弱的覆蓋方式
三、無需測試程序的分支狀況
四、無需測試程序分支判斷的輸入值以及輸入值的組合
五、無需測試程序執行的不一樣路徑測試

3、程序流程圖

程序流程圖

4、源代碼

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

5、語句覆蓋 用例設計

用例編號 測試用例 覆蓋路徑 預期結果
1 A=2,B=0,X=3 a-c-e X=2.5

執行編號1 用例,程序從上往下執行,每一行代碼都會運行 —— 語句覆蓋
執行結果:X=2.5code

6、使用Python Unittest 實現上述用例

test_demo.pyblog

# 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()
相關文章
相關標籤/搜索