Assignment6:白盒測試方法

  經常使用的軟件測試方法有兩大類:靜態測試方法和動態測試方法。測試

  其中軟件的靜態測試不要求在計算機上實際執行所測程序,主要以一些人工的模擬技術對軟件進行分析和測試;而軟件的動態測試是經過輸入一組預先按照必定的測試準則構造的實例數據來動態運行程序,而達到發現程序錯誤的過程。在動態分析技術中,最重要的技術是路徑和分支測試。spa

  六種白盒子測試方法:(強度由低到高)語句覆蓋、斷定覆蓋、條件覆蓋、斷定條件覆蓋、條件組合覆蓋、路徑覆蓋。設計

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

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

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

[優勢]:斷定覆蓋具備比語句覆蓋更強的測試能力,並且具備和語句覆蓋同樣的簡單性,無需細分每一個斷定就能夠獲得測試用例。程序

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

  例如:im

  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)分支覆蓋又稱斷定覆蓋:使得程序中每一個判斷的取真分支和取假分支至少經歷一次,即判斷的真假均曾被知足。上例須要設計測試用例使其分別知足下列條件便可(1A=trueB=trueCtrueD=false2A=trueB=falseCfalseD=false

3)條件覆蓋:要使得每一個判斷中的每一個條件的可能取值至少知足一次。上例中第一個判斷應考慮到A=trueA=falseB=trueB=false第二個判斷應考慮到CtrueCfalseD=trueD=false,因此上例中能夠設計測試用例知足下列條件(1A=trueB=trueCtrueD=true2A=falseB=falseCfalseD=false

4 路徑覆蓋:要求覆蓋程序中全部可能的路徑。因此能夠設計測試用例知足下列條件(1A=trueB=trueCtrueD=true2A=falseB=falseCfalseD=false3A=trueB=trueCfalseD=false4A=falseB=falseCtrueD=true

相關文章
相關標籤/搜索