黑盒測試:已知產品的功能設計規格,能夠進行測試證實每一個實現了的功能是否符合要求。白盒測試:已知產品的內部工做過程,能夠經過測試證實每種內部操做是否符合設計規格要求,全部內部成分是否以通過檢查。白盒測試和黑盒測試是根據對軟件代碼的可見性,採用的測試方法;凡是針對代碼自己的測試,均可以看作是白盒測試,凡是不考慮代碼如何實現,只對代碼能實現的功能進行的測試均可以看做黑盒測試。 一、黑盒測試 黑盒測試也稱功能測試或數據驅動測試,它是在已知產品所應具備的功能,經過測試來檢測每一個功能是否都能正常使用,在測試時,把程序看做一個不能打開的黑 盆子,在徹底不考慮程序內部結構和內部特性的狀況下,測試者在程序接口進行測試,它只檢查程序功能是否按照需求規格說明書的規定正常使用,程序是否能適當 地接收輸入數鋸而產生正確的輸出信息,而且保持外部信息(如數據庫或文件)的完整性。黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主 要用於軟件確認測試。 「黑盒」法着眼於程序外部結構、不考慮內部邏輯結構、針對軟件界面和軟件功能進行測試。「黑盒」法是窮舉輸入測試,只有把全部可能的輸入都做爲測試狀況使 用,才能以這種方法查出程序中全部的錯誤。實際上測試狀況有無窮多個,人們不只要測試全部合法的輸入,並且還要對那些不合法可是可能的輸入進行測試。 二、白盒測試 白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工做過程,可經過測試來檢測產品內部動做是否按照規格說明書的規定正常進行,按照程序內部的結構 測試程序,檢驗程序中的每條通路是否都有能按預約要求正確工做,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟件驗證。 「白盒」法全面瞭解程序內部邏輯結構、對全部邏輯路徑進行測試。「白盒」法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程序的內部結構,從檢查程 序的邏輯着手,得出測試數據。貫穿程序的獨立路徑數是天文數字。但即便每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程序違反了設計規 範,即程序自己是個錯誤的程序。第二,窮舉路徑測試不可能查出程序中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與數據相關的錯誤。