一、為什么要進行白盒測試?
1、邏輯錯誤和不正確假設與一條程序路徑被執行可能性成反比。當我們設計和實現主流之外的功能、條件和控制時,錯誤往往開始出現在我們的工作中。日常處理往往能被很好的理解,而“特殊情況”的處理則難于發現。
2、我們經常相信某個邏輯路徑不可能被執行,而事實上,它可能在正常的情況下被執行。程序的邏輯流有時候是違反直覺的,這意味著我們關于控制流和數據流的一些無意識的假設可能導致設計錯誤,只有路經測試才能發現這些錯誤。
3、筆誤是隨機的。有可能產生的筆誤,很多將被語法檢查機制發現,但是還有一些在測試開始后才會被發現。
二、白盒測試的常用的技術
1、靜態分析技術
2、動態分析技術
3、測試數據生成
4、測試覆蓋率(語句覆蓋、判定覆蓋、條件覆蓋、判定條件覆蓋、路徑覆蓋)
三、為什么要進行黑盒測試?
白盒測試在測試的早期進行,黑盒測試主要用于后期。黑盒測試不是白盒測試的替代品,而是用于輔助白盒測試發現其他類型的錯誤。黑盒測試可以回答以下問題:
1、如何測試功能的有效性?
2、何種類型的輸入會產生好的測試用例?
3、系統是否對特定的輸入值尤其敏感?
4、如何分割數據類的邊界?
5、系統能夠承受何種數據率和數據量?
6、特定類型的數據組合會對系統產生何種影響?
四、黑盒測試的常用技術
1、沒有用戶參與的黑盒測試
2、有用戶介入的黑盒測試
五、灰盒測試
在現代測試理念中,黑盒測試和白盒測試往往不是截然分開的。一般地,在白盒測試中交叉使用黑盒測試方法;在黑盒測試中交叉使用白盒測試的方法?;液袦y試就是這樣一個介于白黑之間的測試,常見的是集成測試。
黑盒測試和白盒測試都是測試設計的方法。黑盒測試把系統理解為一個內部不可見的盒子,因此不需要明白它的內部結構。黑盒測試一般關注的是對功能需求的測試。白盒測試設計允許你觀察盒子內部,讓你了解其內部結構和運作原理,并使用對這些知識的了解來指導測試用例的設計。為了完全測試一個軟件,二者缺一不可。
原文轉自:http://www.anti-gravitydesign.com