前面咱們聊過《軟件測試筆記(十一)自動化測試和手動測試的選擇》,有些朋友和我聊到在測試裏面還有相似的一些概念,好比白盒測試和黑盒測試。今天就你們分享下我對這兩種測試的理解。編程
它是根據軟件需求和規範建立測試場景/案例,按照需求文檔裏面定義的行爲及規範進行輸入而且檢查輸出的測試。segmentfault
測試人員在不查看內部代碼結構的狀況下,評估被測軟件的功能。它能夠應用於軟件測試的各個層次,如單元、集成、系統和驗收測試。ide
由於不查看源碼,因此測試人員只對應用程序的功能部分執行測試,以確保軟件的行爲符合預期,因此是基於行爲的測試。測試
白盒測試是基於應用程序內部的代碼結構在白盒測試中,系統的內部視角以及編程技巧被用來設計測試用例這種測試一般在單元級別進行。spa
`
int divide(int a, int b)
{
return a / b;
}
`
假設咱們的測試用例是:TeseCase: a = 10, b = 5
那麼它的語句覆蓋率是100%,可是除零的問題卻沒有表現出來。因此咱們引入了其餘的測試覆蓋率。設計
黑盒測試 | 白盒測試 |
---|---|
不查看內部代碼結構 | 瞭解程序內部的代碼結構 |
按照根據軟件需求和規範設計 | 按照程序內部邏輯設計 |
涉及到單元、集成、系統和驗收測試 | 涉及到單元、集成測試 |
測試人員不須要程序經驗 | 須要有必定的程序經驗 |
能夠是手動或者是自動化測試 | 能夠是手動或者是自動化測試 |
歸納的來講,黑盒測試和白盒測試的側重點是不同的。黑盒更關注的是軟件實現的功能是否按照需求文檔來,而白盒測試更加關注程序內部的邏輯是否是正確。若是你們有其餘的見解或者想法,也請留言區一塊兒討論。code