【刷題】測開-黑盒測試&白盒測試及其測試用例設計方法
黑盒測試
-
定義:
- 黑盒測試又稱爲功能測試,主要檢測軟件的每個功能是否可以正常使用。
- 在測試過程當中,將程序當作不能打開的黑盒子,不考慮程序內部結構和特性的基礎上經過程序接口進行測試,檢查程序功能是否按照設計需求以及說明書的規定可以正常打開使用。
- 不須要了解具體代碼,對測試工程師要求不高。
-
測試用例與依據
- 黑盒測試用例設計方法:基於用戶需求的測試、等價類劃分方法、邊界值分析方法、錯誤推測方法、因果圖方法、斷定表驅動分析方法、正交實驗法、場景法。
- 依據:用戶需求規格說明書,詳細設計說明書。
-
方法細節
- 等價類劃分:是把程序的輸入域劃分紅若干部分,而後從每一個部分中取少數具備表明性數據做爲測試用例。
- 邊界值分析法: 是對輸入或輸出的邊界值做爲測試用例
- 錯誤推測設計方法:基於經驗和直覺推測程序中全部可能存在的各類錯誤,從而有針對性地設計測試用例的方法。
- 因果圖法:利用圖解法分析輸入的各類組合關係,寫出斷定表,從而設計相應的測試用例
- 斷定表驅動:是把做爲條件的全部輸入的各類組合值以及對應輸出值都列出來造成的表格稱爲斷定表
- 正交試驗設計:從大量的實驗數據中挑選適量的、有表明性的點來設計測試用例
白盒測試
-
定義:
- 白盒測試也稱爲結構測試,主要用於檢測軟件編碼過程當中的錯誤。
- 程序員的編程經驗、對編程軟件的掌握程度、工做狀態等因素都會影響到編程質量,致使代碼錯誤。
- 對測試人員要求高:測試人員須要具有必定的編程經驗;白盒測試工程師須要具有廣博的知識面
-
測試用例與依據
- 白盒測試用例設計有以下方法:語句覆蓋、斷定覆蓋、條件覆蓋、斷定/條件覆蓋、條件組合覆蓋和路徑覆蓋。
- 依據:代碼結構。
-
方法細節
- 覆蓋:至少執行一次
- 語句覆蓋每條語句至少執行一次。
- 斷定覆蓋每一個斷定的每一個分支至少執行一次。
- 條件覆蓋每一個斷定的每一個條件應取到各類可能的值。
- 斷定/條件覆蓋同時知足斷定覆蓋條件覆蓋。
- 條件組合覆蓋每一個斷定中各條件的每一種組合至少出現一次。
- 路徑覆蓋使程序中每一條可能的路徑至少執行一次。
-
靜態白盒測試
- 不須要實際運行被測軟件,而是直接對軟件形式和結構進行分析。
- 靜態白盒測試主要包括:代碼檢查、靜態結構分析、代碼質量度量等。
-
ps:
灰盒測試
- 灰盒測試,是介於白盒測試與黑盒測試之間的一種測試
- 灰盒測試多用於集成測試階段,不只關注輸出、輸入的正確性,同時也關注程序內部的狀況。
- 灰盒測試不像白盒那樣詳細、完整,但又比黑盒測試更關注程序的內部邏輯,經常是經過一些表徵性的現象、事件、標誌來判斷內部的運行狀態。
辨析
-
簡單辨析:
- 黑盒測試:關注程序的功能是否正確,面向實際用戶;
- 白盒測試:關注程序源代碼的內部邏輯結構是否正確,面向編程人員;
- 灰盒測試:介於白盒測試與黑盒測試之間的一種測試。
-
具體辨析
- 測試目標和依據:
- 黑盒面對的是產品設計,白盒針對的是程序功能的實現,灰盒針對兼而有之,既要考慮產品設計要求,又考慮到功能實現的效果。
- 實現者:
- 測試模塊顆粒度:
- 白盒在乎的是代碼實現層面,而灰盒更加側重模塊之間,顆粒度大於白盒。
- 版本:
- 白盒測試通常發生在debug版本,灰盒大多通常在release版本進行。
- 測試效果:
- 大量的bug在黑盒測試階段測試出來,而白盒和灰盒測試的bug數目相對較少。
- 耗時:
- 在同等時間內,通常白盒和灰盒的耗時長,bug數量少,通常表現爲時間產出比較低,很難大範圍普及白盒。
- 黑盒相對bug時間投入產出比較高。
- 入門:
- 黑盒入門較爲容易,其次是灰盒,白盒入門門檻教黑盒高不少。
END
歡迎關注本站公眾號,獲取更多信息