白盒測試、灰盒測試以及黑盒測試的區別

zhusongziye發表於2017-09-02

黑盒測試:已知產品的功能設計規格,可以進行測試證明每個實現了的功能是否符合要求。


白盒測試:已知產品的內部工作過程,可以通過測試證明每種內部操作是否符合設計規格要求,所有內部成分是否以經過檢查。


灰盒測試:介於白盒與黑盒之間的測試。

1、黑盒測試
黑盒,顧名思義,就是把所有東西裝到一個盒子裡,看不到內部邏輯,只能通過外部的可見的功能模組,對軟體進行測試。
比如說一個網站的登陸功能,你不知道它的內部邏輯是怎樣的,只能通過網頁的註冊輸入文字框和註冊按鈕,來測試註冊這個功能是否正常。一般黑盒測試也叫資料驅動測試或者功能測試(通過輸入資料來確定功能是否完整是否正常),一般它所關注的點如下:

1、是否有不正確或遺漏的功能?
2、在介面上,輸入是否能正確的接受?能否輸出正確的結果?
3、是否有資料結構錯誤或外部資訊(例如資料檔案)訪問錯誤?
4、效能上是否能夠滿足要求?
5、是否有初始化或終止性錯誤?

2、白盒測試白盒測試是對軟體的過程性細節做細緻的檢查。這種方法是把測試物件看做一個開啟的盒子,它允許測試人員利用程式內部的邏輯結構及有關資訊,設計或選擇測試用例,對程式所有邏輯路徑進行測試。通過在不同點檢查程式狀態,確定實際狀態是否與預期的狀態一致。因此白盒測試又稱為結構測試或邏輯驅動測試。(一般的介面測試也可以理解為白盒測試,你自己清楚的知道各個業務流的邏輯走向,可以有效的制定一些測試用例,不需要盲目的通過功能點去做各項測試)
白盒測試主要是想對程式模組進行如下檢查:
1、對程式模組的所有獨立的執行路徑至少測試一遍。
2、對所有的邏輯判定,取“真"與取“假”的兩種情況都能至少測一遍。
3、在迴圈的邊界和執行的界限內執行迴圈體。
4、測試內部資料結構的有效性,等等。
3、灰盒測試
灰盒測試,是介於白盒測試與黑盒測試之間的,可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的執行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。但是實際上灰盒測試用到的領域挺少的,這裡就不再詳細介紹。

相關文章