知識普及:黑盒測試、白盒測試、灰盒測試之間的區別

博為峰網校發表於2018-12-14

黑盒測試

軟體的黑盒測試意味著測試要在軟體的介面處進行。

這種方法是把測試物件看做一個黑盒子,測試人員完全不考慮程式內部的邏輯結構和內部特性,只依據程式的需求規格說明書,檢查程式的功能是否符合它的功能說明。

因此黑盒測試又叫功能測試或資料驅動測試。

知識普及:黑盒測試、白盒測試、灰盒測試之間的區別

通俗方式舉例說明:

小明從商場的某一個入口進入,你在商場外面等待,並不知道商場內發生了什麼,只知道正確的結果是,小明帶著一堆商品從某一個出口(可以與入口相同)出來。

這是原定正確的情況,不出錯我們就不需要管商場裡面發生了什麼,否則,在多次逛商場(多次黑盒測試)之中,發生無法達到原定正確的情況,例如小明與人爭執、小明沒帶錢、小明有問題需要與自己協商等情況的發生,就需要測試人員進行檢查了。

白盒測試

軟體的白盒測試是對軟體的過程性細節做細緻的檢查。

這種方法是把測試物件看做一個開啟的盒子,它允許測試人員利用程式內部的邏輯結構及有關資訊,設計或選擇測試用例,對程式所有邏輯路徑進行測試。透過在不同點檢查程式狀態,確定實際狀態是否與預期的狀態一致。

因此白盒測試又稱為結構測試或邏輯驅動測試。

通俗方式舉例說明:

小明從商場的某一個入口進入,你隨著陪同進入商場,全程陪伴,觀察小明購物的每個細節,瞭解其走過的每一步,發生的每個小情況,然後,你抱著一堆商品陪著小明從某一個出口出來。

灰盒測試

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

可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是透過一些表徵性的現象、事件、標誌來判斷內部的執行狀態,有時候輸出是正確的,但內部其實已經錯誤了。

這種情況非常多,如果每次都透過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。

灰盒測試與黑盒測試的區別

如果某軟體包含多個模組,當你使用黑盒測試時,你只要關心整個軟體系統的邊界,無需關心軟體系統內部各個模組之間如何協作。而如果使用灰盒測試,你就需要關心模組與模組之間的互動。這是灰盒測試與黑盒測試的區別。

灰盒測試與白盒測試的區別

但是,在灰盒測試中,你還是無需關心模組內部的實現細節。對於軟體系統的內部 模組,灰盒測試依然把它當成一個黑盒來看待。而白盒測試則不同,還需要再深入地瞭解內部模組的實現細節。所以,這是灰盒測試與黑盒測試的區別。

黑盒測試、白盒測試的區別

白盒測試的優點 

1、能仔細考慮軟體的實現。 

2、可檢測程式碼中的每條分支和路徑。 

3、揭示隱藏在程式碼中的錯誤。 

4、對程式碼的測試比較徹底。

白盒測試的缺點 

1、昂貴。 

2、無法檢測程式碼中遺漏的路徑和資料敏感性錯誤

3、不驗證規格的正確性。

黑盒測試的優點 

1、對於子系統甚至系統,效率要比白盒測試高。 

2、測試人員不需要了解實現的細節,包括特定的程式語言。 

3、測試人員和程式設計人員彼此獨立。 

4、從使用者的角度進行測試,很容易理解和接受。 

5、有助於暴露規格的不一致或有歧義的問題。 

6、測試用例可以在規格完成後馬上進行。

黑盒測試的缺點 

1、只有一小部分輸入被測試到,要測試每個可能的輸入幾乎不可能。 

2、沒有清晰、簡明的規格,測試用例很難設計。 

3、如果測試人員不被告知開發人員已經執行過的用例,在測試資料上會存在不必要的重複。 

4、有很多程式路徑沒有被測試到。 

5、不能直接針對特定程式段測試,而這些程式段可能很複雜,有可能隱藏更多的問題。 

6、大部分和研究相關的測試都是直接針對白盒測試的。

總結:

總而言之,言而總之,採用什麼樣的方法去測試,需要公司和專案組成員根據實際情況去制定。

灰盒測試是一個很不錯的選擇,其優點明顯而缺點容易克服。朋友們在測試時,可以嘗試用一用,看看效果如何。

歡迎加入  51軟體測試大家庭,在這裡你將獲得【最新行業資訊】,【免費測試工具安裝包】,【軟體測試技術乾貨】,【面試求職技巧】... 51與你共同學習,一起成長!期待你的加入: QQ                     群:                    755431660


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2285327/,如需轉載,請註明出處,否則將追究法律責任。

相關文章