what s the 白盒測試

2022-04-10 19:23:02 字數 2185 閱讀 3487

白盒測試又稱結構測試、透明盒測試、邏輯驅動測試或基於**的測試。盒子指的是被測試的軟體,白盒指的是盒子是可視的,你清楚盒子內部的東西以及裡面是如何運作的。白盒要考慮測試用例對程式內部的覆蓋程度,最好的白盒測試是能覆蓋到每一條路徑,但是由於路徑數目極大,要執行每一條路徑是不可能。但我們能做到就是讓覆蓋率變高一點,下面要介紹的六種覆蓋測試方法,看看他們的覆蓋程度。

六種白盒測試:(覆蓋率從低到高排序)

「語句覆蓋」是乙個比較弱的測試標準,它的含義是:在測試時,首先設計若干個測試用例,然後執行被測程式, 使程式中的每個可執行語句至少執行一次。這時所謂「若干個」,自然是越少越好。

用例設計:

從本例可看出,語句覆蓋實際上是很弱的,程式中每個語句都得到執行這一點來看,語句覆蓋的方法似乎能夠比較全面地 檢驗每乙個語句。但它也絕不是完美無缺的。假如這一程式段中兩個判斷的邏輯運算 有問題,如果第乙個條件語句中的and錯誤地編寫成or,上面的測試用例是不能發現這個錯誤的;又如第三個條件語句中x>1誤寫成x>0,這個測試用例也不能暴露它,此外,沿著路徑abd執行時,x的值應該保持不變,以為每個語句都經歷過,似乎可以放心了。其實這種測試不十分可靠。語句覆蓋在測試被測程式中,除去對檢查不可執行語句有一定作用外,並沒有排除被測程式包含錯誤的風險。

總之,一般認為「語句覆蓋」是很不充分的一種標準。

優點:可以很直觀地從源**得到測試用例,無須細分每條判定表示式。

缺點:由於這種測試方法僅僅針對程式邏輯中顯式存在的語句(即可執行語句),但對於隱藏的條件和可能到達的隱式邏輯分支,是無法測試的。

比「語句覆蓋」稍強的覆蓋標準是「判定覆蓋」(或稱branch coverage分支覆蓋)標準。判定覆蓋準則進行測試是指,設計若干測試用例,執行被側程式,使得程式中每個判斷的取真分支和取假分支至少經歷一次,即判斷的真假值均曾被滿足。判定覆蓋又稱為分支覆蓋

優點:

判定覆蓋比語句覆蓋要多幾乎一倍的測試路徑,當然也就具有比語句覆蓋更強的測試能力。同樣判定覆蓋也具有和語句覆蓋一樣的簡單性,無須細分每個判定就可以得到測試用例。

缺點:

往往大部分的判定語句是由多個邏輯條件組合而成(如,判定語句中包含and、or、case),若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。

設計用例時針對判斷語句裡面每個條件表示式true 和 false各取值一次,不考判斷語句的計算結果

測試用例條件:

設計測試用例時,使得判斷語句中每個條件表示式的所有可能結果至少出現一次,每個判斷語句本身所有可能結果也至少出現一次。

測試用例條件:

設計測試用例時,使得每個判斷語句中條件結果的所有可能組合至少出現一次

測試用例條件:

設計測試用例時,覆蓋程式中所有可能的執行路徑

優點:這種覆蓋方法可以對程式進行徹底的測試用例覆蓋,比前面講的五種方法覆蓋度都要高。

缺點:於路徑覆蓋需要對所有可能的路徑進行測試(包括迴圈、條件組合、分支選擇等),那麼需要設計大量、複雜的測試用例,使得工作量呈指數級增長。路徑覆蓋雖然是一種比較強的覆蓋,但未必考慮判斷語句中條件表示式結果的組合,並不能代替條件覆蓋和條件組合覆蓋。

參考:

參考:

python 白盒測試 白盒測試方法

白盒測試是單元測試階段常用到的測試方法,其特點有 1 可以構成測試資料,使特定程式部分得到測試 2 有一定的充分性度量手段 3 可獲得較多工具支援 4 通常只用於單元測試。下邊通過一段 來看一下白盒測試中的邏輯覆蓋 那麼為了清晰,我們畫出乙個該程式的流程圖 1 語句覆蓋 語句覆蓋是最弱的邏輯覆蓋準則...

黑盒測試 白盒測試

黑盒測試 black box testing,又稱為功能測試或資料驅動測試 是把測試物件看作乙個黑盒子。利用黑盒測試法進行動態測試時,需要測試軟體產品的功能,不需測試軟體產品的內部結構和處理過程。黑盒測試注重於測試軟體的功能性需求,也即黑盒測試使軟體工程師派生出執行程式所有功能需求的輸入條件。黑盒測...

軟體測試 白盒測試

1 白盒測試的概述 由於邏輯錯誤和不正確假設與一條程式路徑被執行的可能性成反比。由於我們經常相信某邏輯路徑不可能被執行,而事實上,它可能在正常的情況下被執行。由於 中的筆誤是隨機且無法杜絕的,因此我們要進行白盒測試。白盒測試又稱結構測試,透明盒測試 邏輯驅動測試或基於 的測試。白盒測試是一種測試用例...