企業(yè)網(wǎng)站建設(shè)意義站外推廣怎么做
白盒測試
- 一、什么是白盒測試?
- 二、白盒測試特點
- 三、白盒測試的設(shè)計方法
- 1、邏輯覆蓋法
- 1、測試設(shè)計方法—語句覆蓋
- a、用例設(shè)計如下:
- b、語句覆蓋的局限性
- 2、測試設(shè)計方法—判定覆蓋
- a、測試用例如下:
- b、判定覆蓋的局限性
- 3、測試設(shè)計方法—條件覆蓋
- a、測試用例如下:
- b、條件覆蓋的局限性
- 4、測試設(shè)計方法—判定條件覆蓋
- a、測試用例如下:
- b、判定條件覆蓋的局限性
- 5、測試設(shè)計方法—條件組合覆蓋
- a、測試用例如下:
- b、條件組合覆蓋的局限性
- 6、路徑覆蓋
- a、用例設(shè)計
- b、路徑覆蓋局限性
- 2、基本路徑測試法
- a、測試設(shè)計方法——基本路徑測試法
- 四、總結(jié)
一、什么是白盒測試?
白盒測試,又稱結(jié)構(gòu)測試或邏輯驅(qū)動測試,是一種軟件測試方法,它基于對程序內(nèi)部結(jié)構(gòu)的理解來進行。在這個測試過程中,測試人員就像是有源代碼的“盒子”里的操作員一樣,關(guān)注的是代碼的各個組件、算法、數(shù)據(jù)結(jié)構(gòu)以及控制流程。測試者會檢查每一個邏輯路徑、循環(huán)條件、分支判斷等,驗證輸入是否按預期處理并得出正確的輸出結(jié)果。白盒測試通常用于單元測試,能提供更深入的覆蓋度,但無法揭示用戶界面或外部接口的問題。
二、白盒測試特點
優(yōu)點:
- 代碼覆蓋率高。
缺點:
- 覆蓋所有代碼路徑難度大。
- 業(yè)務(wù)功能測試覆蓋不全。
- 測試開銷大。
黑盒測試:每個項目都需要測試
白盒測試:業(yè)務(wù)邏輯很復雜的模塊進行白盒測試,保證路徑盡可能的覆蓋全面。
三、白盒測試的設(shè)計方法
靜態(tài)
- 桌面檢查:研發(fā)交叉檢查
- 代碼審查:組織會議,由研發(fā)講解自己的代碼內(nèi)容,為什么這么寫。(開發(fā)、測試人員參加)。
- 代碼走查:可以理解為showcases(功能實現(xiàn))。
- 代碼掃描工具:不能完全替代上面的方法,只能檢查代碼規(guī)范問題。SonarQube
動態(tài)
- 邏輯覆蓋法
- 語句覆蓋
- 判定覆蓋
- 條件覆蓋
- 判定條件覆蓋
- 條件組合覆蓋
- 路徑覆蓋
- 基本路徑測試法
1、邏輯覆蓋法
是通過對程序邏輯結(jié)構(gòu)的遍歷實現(xiàn)程序的覆蓋。
對邏輯代碼轉(zhuǎn)化為代碼執(zhí)行流程圖
代碼案例:
1、測試設(shè)計方法—語句覆蓋
設(shè)計測試用例,使得程序中每條語句至少被執(zhí)行一次。
a、用例設(shè)計如下:
b、語句覆蓋的局限性
在六種邏輯覆蓋標準中,語句覆蓋標準最弱。
2、測試設(shè)計方法—判定覆蓋
判定覆蓋:也叫分支覆蓋,設(shè)計測試用例,使得程序中的每個判斷的“真”和“假”都至少被執(zhí)行一次。即:程序中的每個分支至少執(zhí)行一次。
a、測試用例如下:
b、判定覆蓋的局限性
只要滿足了判定覆蓋標準就一定滿足語句覆蓋的標準
3、測試設(shè)計方法—條件覆蓋
設(shè)計測試用例,使得判定中的每個條件至少有一次取真值,有一次取假值。
a、測試用例如下:
b、條件覆蓋的局限性
條件覆蓋并不能保證判定覆蓋
4、測試設(shè)計方法—判定條件覆蓋
設(shè)計測試用例,
1、使得被測程序中的每個判斷本身的判定結(jié)果(真假)至少滿足一次,同時;
2、每個邏輯條件的可能值(真假)也至少被滿足一次。
即同時滿足100%判定覆蓋和100%條件覆蓋的標準。
a、測試用例如下:
b、判定條件覆蓋的局限性
滿足判定-條件覆蓋標準一定能夠滿足條件覆蓋、判定覆蓋和語句覆蓋。
5、測試設(shè)計方法—條件組合覆蓋
設(shè)計測試用例,使得被測試程序中的每個判定中條件結(jié)果的所有可能組合至少執(zhí)行一次。
a、測試用例如下:
b、條件組合覆蓋的局限性
條件組合覆蓋能滿足判定覆蓋、條件覆蓋、判定條件覆蓋、也就包括了語句覆蓋。
條件組合覆蓋不能保證覆蓋所有的路徑
6、路徑覆蓋
設(shè)計測試用例,覆蓋程序中所有可能的路徑(從頭到尾)
a、用例設(shè)計
根據(jù)路徑設(shè)計測試用例,從頭到尾只要有1小段路徑不同,則為不同的路徑。
b、路徑覆蓋局限性
2、基本路徑測試法
在程序控制流圖的基礎(chǔ)上,通過分析程序的環(huán)路復雜性,導出基本可執(zhí)行路徑集合,從而設(shè)計測試用例。
a、測試設(shè)計方法——基本路徑測試法
四、總結(jié)
主要應用于單元測試階段
先靜態(tài)、后動態(tài)
設(shè)計用例一般使用基本路徑測試,重點模塊使用多種覆蓋率標準