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


前言

最近發現身邊測試的同學都不太了解/理解白盒測試,網上的資料又是千篇一律(互抄),不易理解。所以想做一個更容易讓測試同學學習的白盒測試教程。

語句覆蓋

一、定義:

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

二、特點:

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()




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM