天天看點

黑盒測試與白盒測試

  常常見到"單元測試是白盒測試","單元測試也有黑盒"之類的說法,容易引起混亂。黑盒與白盒其實是測試方法,黑盒就是針對系統的外部特性進行測試,把目标系統看作一個黑盒子,不考慮内部結構;白盒就是針對系統的内部結構進行測試。各個測試階段都可以使用黑盒方法和白盒方法,即無論是單元測試、內建測試、系統測試階段都可以使用黑盒方法和白盒方法。

    黑盒測試又叫功能測試,我們首先要測試程式是否實作了基本功能,是以,黑盒測試是基本測試。黑盒測試的主要缺陷是難于衡量完整性,而白盒測試正好可以彌補個缺陷。

    白盒測試通過邏輯覆寫率來衡量完整性,具有可以精确統計的數字名額。邏輯機關主要有:語句、分支、條件、條件值、條件值組合,路徑。語句覆寫就是覆寫所有的語句,其他類推。另外還有一種判定條件覆寫,其實是分支覆寫與條件覆寫的組合。跟條件有關的覆寫就有三種,解釋一下:條件覆寫是指覆寫所有的條件表達式,即所有的條件表達式都至少計算一次,不考慮計算結果;條件值覆寫是指覆寫條件的所有可能取值,即每個條件的取真值和取假值都要至少計算一次;條件值組合覆寫是指覆寫所有條件取值的所有可能組合。與條件直接有關的錯誤主要是邏輯操作符錯誤,例如:||寫成&&,漏了寫!什麼的,采用分支覆寫與條件覆寫的組合,基本上可以發現這些錯誤,而條件值覆寫與條件值組合覆寫往往需要大量的測試用例,是以,條件值覆寫和條件值組合覆寫的效費比偏低,比較有價值的覆寫率是語句覆寫、條件覆寫、分支覆寫、路徑覆寫。