知識普及:黑盒測試、白盒測試、灰盒測試之間的區別
黑盒測試
軟體的黑盒測試意味著測試要在軟體的介面處進行。
這種方法是把測試物件看做一個黑盒子,測試人員完全不考慮程式內部的邏輯結構和內部特性,只依據程式的需求規格說明書,檢查程式的功能是否符合它的功能說明。
因此黑盒測試又叫功能測試或資料驅動測試。
通俗方式舉例說明:
小明從商場的某一個入口進入,你在商場外面等待,並不知道商場內發生了什麼,只知道正確的結果是,小明帶著一堆商品從某一個出口(可以與入口相同)出來。
這是原定正確的情況,不出錯我們就不需要管商場裡面發生了什麼,否則,在多次逛商場(多次黑盒測試)之中,發生無法達到原定正確的情況,例如小明與人爭執、小明沒帶錢、小明有問題需要與自己協商等情況的發生,就需要測試人員進行檢查了。
白盒測試
軟體的白盒測試是對軟體的過程性細節做細緻的檢查。
這種方法是把測試物件看做一個開啟的盒子,它允許測試人員利用程式內部的邏輯結構及有關資訊,設計或選擇測試用例,對程式所有邏輯路徑進行測試。透過在不同點檢查程式狀態,確定實際狀態是否與預期的狀態一致。
因此白盒測試又稱為結構測試或邏輯驅動測試。
通俗方式舉例說明:
小明從商場的某一個入口進入,你隨著陪同進入商場,全程陪伴,觀察小明購物的每個細節,瞭解其走過的每一步,發生的每個小情況,然後,你抱著一堆商品陪著小明從某一個出口出來。
灰盒測試
灰盒測試,是介於白盒測試與黑盒測試之間的。
可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是透過一些表徵性的現象、事件、標誌來判斷內部的執行狀態,有時候輸出是正確的,但內部其實已經錯誤了。
這種情況非常多,如果每次都透過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。
灰盒測試與黑盒測試的區別
如果某軟體包含多個模組,當你使用黑盒測試時,你只要關心整個軟體系統的邊界,無需關心軟體系統內部各個模組之間如何協作。而如果使用灰盒測試,你就需要關心模組與模組之間的互動。這是灰盒測試與黑盒測試的區別。
灰盒測試與白盒測試的區別
但是,在灰盒測試中,你還是無需關心模組內部的實現細節。對於軟體系統的內部 模組,灰盒測試依然把它當成一個黑盒來看待。而白盒測試則不同,還需要再深入地瞭解內部模組的實現細節。所以,這是灰盒測試與黑盒測試的區別。
黑盒測試、白盒測試的區別
白盒測試的優點
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 黑盒測試、白盒測試與灰盒測試方法
- 對於黑盒測試、白盒測試、灰盒測試你瞭解多少?
- 重溫黑盒、白盒與灰盒測試方法
- 黑盒測試和白盒測試
- 測試方法-白盒/黑盒
- 細說白盒測試
- 軟體測試實驗二 | 白盒測試
- 軟體測試中的白盒測試是什麼?
- 白盒測試程式碼應該怎麼測試
- webgoat白盒審計+漏洞測試WebGo
- 白盒測試—六種覆蓋方法
- 軟體測試要學什麼(2)白盒測試詳解教程
- 程式碼審計基礎--白盒測試
- 軟體測試培訓之:白盒測試的語句覆蓋法和判定覆蓋法
- 黑盒測試
- 有大佬做安卓平臺的白盒測試麼?安卓
- 【黑盒測試】測試用例的常用方法
- 軟體測試技術-黑盒測試
- WinAMS―嵌入式軟體白盒測試工具介紹
- 功能測試、自動化測試、效能測試的區別
- 小白測試系列:介面測試與效能測試的區別
- 介面測試和效能測試的區別
- 介面測試和功能測試的區別
- 程式碼滲透測試服務 白盒審計詳情
- 介面測試,負載測試,併發測試,壓力測試區別負載
- 軟體測試中的黑盒測試是什麼?
- 通用的 Java 介面白盒測試,大家都是怎麼進行的呢?Java
- 黑盒測試策略及測試範圍(web端)Web
- 安全測試和滲透測試的區別
- 介面測試之基礎知識
- 【軟體測試】(三)黑盒測試綜合策略概述
- 測試測試測試測試測試測試
- 測試前奏 之 Robotium使用Eclipse和ADT對apk進行黑盒測試EclipseAPK
- 效能測試、負載測試、壓力測試有什麼區別?負載
- APP黑盒測試總結APP
- 黑盒測試用例二
- 黑盒測試方法之邊界值分析
- 4大軟體測試策略的特點和區別(單元測試、整合測試、確認測試和系統測試)