白盒 灰盒 黑盒測試區別

2022-03-09 23:47:37 字數 2009 閱讀 5306

黑盒測試-白盒測試-灰盒測試

什麼是黑盒測試和白盒測試?

黑盒測試也稱功能測試或資料驅動測試,它是在已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用,在測試時,把程式看作乙個不能開啟的黑盆子,在完全不考慮程式內部結構和內部特性的情況下,測試者在程式介面進行測試,它只檢查程式功能是否按照需求規格說明書的規定正常使用,程式是否能適當地接收輸入數鋸而產生正確的輸出資訊,並且保持外部資訊(如資料庫或檔案)的完整性。

黑盒測試方法主要有等價類劃分、邊值分析、因—果圖、錯誤推測等,主要用於軟體確認測試。「黑盒」法著眼於程式外部結構、不考慮內部邏輯結構、針對軟體介面和軟體功能進行測試。「黑盒」法是窮舉輸入測試,只有把所有可能的輸入都作為測試情況使用,才能以這種方法查出程式中所有的錯誤。

實際上測試情況有無窮多個,人們不僅要測試所有合法的輸入,而且還要對那些不合法但是可能的輸入進行測試。

黑盒測試主要是為了發現以下幾類錯誤:

1、是否有不正確或遺漏的功能?

2、在介面上,輸入是否能正確的接受?能否輸出正確的結果?

3、是否有資料結構錯誤或外部資訊(例如資料檔案)訪問錯誤?

4、效能上是否能夠滿足要求?

5、是否有初始化或終止性錯誤?

白盒測試也稱結構測試或邏輯驅動測試,它是知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正常進行,按照程式內部的結構測試程式,檢驗程式中的每條通路是否都有能按預定要求正確工作,而不顧它的功能,白盒測試的主要方法有邏輯驅動、基路測試等,主要用於軟體驗證。

「白盒」法全面了解程式內部邏輯結構、對所有邏輯路徑進行測試。「白盒」法是窮舉路徑測試。在使用這一方案時,測試者必須檢查程式的內部結構,從檢查程式的邏輯著手,得出測試資料。

貫穿程式的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程式違反了設計規範,即程式本身是個錯誤的程式。

第二,窮舉路徑測試不可能查出程式中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與資料相關的錯誤。   灰盒測試,確實是介於二者之間的,可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的執行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。

白盒測試主要是想對程式模組進行如下檢查:

1、對程式模組的所有獨立的執行路徑至少測試一遍。

2、對所有的邏輯判定,取「真」與取「假」的兩種情況都能至少測一遍。

3、在迴圈的邊界和執行的界限內執行迴圈體。

4、測試內部資料結構的有效性,等等。

灰盒測試,確實是介於二者之間的,可以這樣理解,灰盒測試關注輸出對於輸入的正確性,同時也關注內部表現,但這種關注不象白盒那樣詳細、完整,只是通過一些表徵性的現象、事件、標誌來判斷內部的執行狀態,有時候輸出是正確的,但內部其實已經錯誤了,這種情況非常多,如果每次都通過白盒測試來操作,效率會很低,因此需要採取這樣的一種灰盒的方法。

灰盒測試結合了白盒測試盒黑盒測試的要素。它考慮了使用者端、特定的系統知識和操作環境。它在系統元件的協同性環境中評價應用軟體的設計。

灰盒測試由方法和工具組成,這些方法和工具取材於應用程式的內部知識盒與之互動的環境,能夠用於黑盒測試以增強測試效率、錯誤發現和錯誤分析的效率。

灰盒測試涉及輸入和輸出,但使用關於**和程式操作等通常在測試人員視野之外的資訊設計測試。

●黑盒測試有可能是動態測試(執行程式,只看輸入和輸出),也有可能是靜態測試(不執行程式,只是檢視介面)

●白盒測試有可能是動態測試(執行程式,並分析**結構),也有可能是靜態測試(不執行程式,只是靜態檢視**)

●動態測試有可能是黑盒測試(執行程式,只看輸入和輸出),也有可能是白盒測試(執行程式,並分析**結構)

●靜態測試有可能是黑盒測試(不執行程式,只是檢視介面),也有可能是白盒測試(不執行程式,只是靜態檢視**)

以上事實說明,軟體測試有乙個致命的缺陷,即測試的不完全、不徹底性。由於任何程式只能進行少量(相對於窮舉的巨大數量而言)的有限的測試,在未發現錯誤時,不能說明程式中沒有錯誤。

白盒測試與黑盒測試的比較

白盒測試 白盒測試是根據被測試程式的內部結構設計測試用例的一類測試,有人也稱它為透明盒或者玻璃盒測試,涉及到軟體設計的細節。比如單元測試一般採用白盒測試方法,並參考lld 根據程式的內部結構,比如語句的控制結構 模組間的控制結構以及內部資料結構等進行測試。黑盒測試 黑盒測試又稱功能測試 資料驅動測試...

白盒測試綜述

單元測試的步驟 1 理解需求和設計 理解設計是很重要的,特別是要搞清楚被測試模組在整個軟體中所處的位置,這對測試的內容將會有很大的影響。需要記住的乙個原則就是 好的設計,各模組只負責完成自己的事情,層次與分工是很明確的。在單元測試的時候,可以不用測試不屬於被測試模組所負責的功能,以減少測試用例的冗餘...

白盒測試複習內容

1物件測試基本三步驟。答 a 建立乙個物件 b 呼叫乙個方法 c 檢查呼叫的結果。2失敗和錯誤的區別。答 乙個失敗的斷言通常表示產品 中有問題,而乙個錯誤卻表示測試本身或周圍的環境存在著問題。3白盒測試及其測試覆蓋標準。答 白盒測試 也稱結構測試或邏輯驅動測試,是一種測試用例設計方法,它從程式的控制...