軟體測試 白盒測試

2022-05-17 21:17:45 字數 3121 閱讀 5660

1.白盒測試的概述

由於邏輯錯誤和不正確假設與一條程式路徑被執行的可能性成反比。由於我們經常相信某邏輯路徑不可能被執行, 而事實上,它可能在正常的情況下被執行。由於**中的筆誤是隨機且無法杜絕的,因此我們要進行白盒測試。

白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基於**的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟體,白盒指的是盒子是可視的,你清楚盒子內部的東西以及裡面是如何運作的。

1白盒的測試用例需要做到:

·保證乙個模組中的所有獨立路徑至少被使用一次

·對所有邏輯值均需測試true 和false

·在上下邊界及可操作範圍內執行所有迴圈

·檢查內部資料結構以確保其有效性

2)白盒測試的目的:

通過檢查軟體內部的邏輯結構,對軟體中的邏輯路徑進行覆蓋測試;在程式不同地方設立檢查點,檢查程式的狀態,以確定實際執行狀態與預期狀態是否一致。

3)白盒測試的特點:

依據軟體設計說明書進行測試、對程式內部細節的嚴密檢驗、針對特定條件設計測試用例、對軟體的邏輯路徑進行覆蓋測試。

4)白盒測試的實施步驟:

測試計畫階段:根據需求說明書,制定測試進度。

測試設計階段:依據程式設計說明書,按照一定規範化的方法進行軟體結構劃分和設計測試用例。

測試執行階段:輸入測試用例,得到測試結果。

測試總結階段:對比測試的結果和**的預期結果,分析錯誤原因,找到並解決錯誤。

5)白盒測試的方法:總體上分為靜態方法和動態方法兩大類。

靜態分析是一種不通過執行程式而進行測試的技術。靜態分析的關鍵功能是檢查軟體的表示和描述是否一致,沒有衝突或者沒有歧義。

動態分析的主要特點是當軟體系統在模擬的或真實的環境中執行之前、之中和之後, 對軟體系統行為的分析。動態分析包含了程式在受控的環境下使用特定的期望結果進行正式的執行。它顯示了乙個系統在檢查狀態下是正確還是不正確。在動態分析技術中,最重要的技術是路徑和分支測試。下面要介紹的六種覆蓋測試方法屬於動態分析方法。

6)白盒測試的優缺點

優點·迫使測試人員去仔細思考軟體的實現

·可以檢測**中的每條分支和路徑

·揭示隱藏在**中的錯誤

·對**的測試比較徹底

·最優化

缺點·昂貴

·無法檢測**中遺漏的路徑和資料敏感性錯誤

·不驗證規格的正確性

2

1)所謂語句覆蓋:就是設計若干個測試用例,執行被測程式,使得每一可執行語句至少執行一次。這裡的「若干個」,意味著使用測試用例越少越好。語句覆蓋率的公式可以表示如下:

語句覆蓋率=被評價到的語句數量/可執行的語句總數x 100%

2)判定覆蓋:使設計的測試用例保證程式中每個判斷的每個取值分支(t or f)至少經歷一次

[優點]:判定覆蓋具有比語句覆蓋更強的測試能力,而且具有和語句覆蓋一樣的簡單性,無需細分每個判定就可以得到測試用例。

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

例如:int a,b;

if(a || b)

執行語句1

else

執行語句2

要達到這段程式的判斷覆蓋,我們採用測試用例:1)a = true , b = true ;2)a = flase, b = flase

3)條件覆蓋:條件覆蓋是指選擇足夠的測試用例,使得執行這些測試用例時,判定中每個條件的所有可能結果至少出現一次,但未必能覆蓋全部分支

條件覆蓋要檢查每個符合謂詞的子表示式值為真和假兩種情況,要獨立衡量每個子表示式的結果,以確保每個子表示式的值為真和假兩種情況都被測試到。

4)判定條件覆蓋:判定-條件覆蓋就是設計足夠的測試用例,使得判斷中每個條件的所有可能取值至少執行一次,同時每個判斷的所有可能判斷結果至少執行,即要求各個判斷的所有可能的條件取值組合至少執行一次。

5)條件組合覆蓋:在白盒測試法中,選擇足夠的測試用例,使所有判定中各條件判斷結果的所有組合至少出現一次,滿足這種覆蓋標準成為條件組合覆蓋。

6)路徑覆蓋:是每條可能執行到的路徑至少執行一次;

說明:其中語句覆蓋是一種最弱的覆蓋,判定覆蓋和條件覆蓋比語句覆蓋強,滿足判定/條件覆蓋標準的測試用例一定也滿足判定覆蓋、條件覆蓋和語句覆蓋,條件組合覆蓋是除路徑覆蓋外最強的,路徑覆蓋也是一種比較強的覆蓋,但未必考慮判定條件結果的組合,並不能代替條件覆蓋和條件組合覆蓋。

舉例:

if a and b then action1

if c or d then action2

1)語句覆蓋最弱,只需要讓程式中的語句都執行一遍即可。上例中只需設計測試用例使得a=true b=true c=true 即可。

2)分支覆蓋又稱判定覆蓋:使得程式中每個判斷的取真分支和取假分支至少經歷一次,即判斷的真假均曾被滿足。上例需要設計測試用例使其分別滿足下列條件即可(1)a=true,b=true,c=true,d=false(2)a=true,b=false,c=false,d=false。

3)條件覆蓋:要使得每個判斷中的每個條件的可能取值至少滿足一次。上例中第乙個判斷應考慮到a=true,a=false,b=true,b=false第二個判斷應考慮到c=true,c=false,d=true,d=false,所以上例中可以設計測試用例滿足下列條件(1)a=true,b=true,c=true,d=true(2)a=false,b=false,c=false,d=false。

4)路徑覆蓋:要求覆蓋程式中所有可能的路徑。所以可以設計測試用例滿足下列條件(1)a=true,b=true,c=true,d=true(2)a=false,b=false,c=false,d=false(3)a=true,b=true,c=false,d=false(4)a=false,b=false,c=true,d=true。

軟體測試 白盒測試

白盒測試分為 語句覆蓋 判定覆蓋 條件覆蓋 判定條件覆蓋 條件組合覆蓋 路徑覆蓋 以下程式為例 語句覆蓋 顧名思義 把所有語句都都走一遍 按上圖 測試路徑 p1 a c e 判定覆蓋把所有判定都走一遍 按上圖 測試路徑 答案不唯一 p1 a c e p2 a b d 條件覆蓋把所有條件都走一遍 按上...

軟體測試(白盒)

現在網上關於軟體測試的資料 包括文章,部落格,自動測試軟體等 多是關於黑盒測試的,由於最近做了乙個工程軟體的內部測試 c語言 所以在這裡總結一下自己關於做白盒測試的經驗和思路。在進行軟體的內部測試時。我採取的方式是 化整為零和化零為整相結合的方式 化整 為零 首先對整個軟體進行黑盒測試,這個比較簡單...

軟體測試技術 白盒測試

白盒測試又稱為覆蓋率測試 首先介紹覆蓋率的概念 覆蓋率是用來度量測試完整性的乙個手段,大體上可以分為兩大類 點覆蓋和邊覆蓋 覆蓋率 被執行的item數 item的總數 100 通過覆蓋率資料,可以知道測試工作做得是否充分,測試的弱點在哪些方面,進而指導人們設計能夠增強覆蓋率的測試用例 白盒測試要求測...