本文內容參考:
黑盒測試和白盒測試詳解-CSDN博客
軟件測試中的各種覆蓋(Coverage)詳解-CSDN博客
特此致謝!
零、概述
黑盒測試又名為功能測試,主要目的是發現軟件設計的需求或者是軟件設計規格說明書中的錯誤缺陷。軟件的開發具有特定性,一般都是為了某種具體特定功能開發的,軟件功能的描述依賴于在軟件需求階段的需求規格說明書的分析,軟件在設計過程中被分成了一個或者是多個功能,保證這些功能能夠正常運行的就是軟件測試,從而進一步滿足用戶的需求與需要。黑盒測試與白盒測試相反,軟件設計程序被看做一個打不開的盒子,盒子里的程序代碼測試人員不能看到,只能看到軟件或者是某些模塊的簡單功能描述,這種測試方法主要是驗證軟件或者是功能的實現度。
一、黑盒測試
1. 基本介紹
黑盒測試也稱功能測試或數據驅動測試,它是已知產品所應具有的功能,通過測試來檢測每個功能是否都能正常使用。在測試過程中,將程序看成不能打開的黑盒子,在不考慮程序內部結構和特性的基礎上通過程序接口進行測試,檢查程序功能是否按照設計需求以及說明書的規定能夠正常打開使用。
黑盒測試一般遵循以下原則:
- 根據相應的、正確的需求設計測試用例。配置項測試依據需求規格說明,系統測試依據軟件研制任務書,驗收測試依據軟件研制任務書或合同/協議。
- 正確地定義等價類。等價類方法是黑盒測試的主要方法,設計測試用例時應根據輸入的數據范圍,正確地劃分有效等價類和無效等價類。
- 覆蓋所有的功能需求。 根據測試風險來確定測試重點和優先級,確保軟件的常用功能和重要功能得到充分的測試。
- 加強接口測試。
- 站在用戶角度進行測試。盡量模擬用戶的使用環境,那些對用戶有價值的功能要優先、充分地測試。
2. 優缺點
(1)優點
- 對于較大的代碼單元來說,黑盒測試比白盒測試效率較高。
- 測試人員不需要了解細節,包括特定的編程語言。
- 測試人員和開發人員彼此獨立。
- 從用戶的角度測試,很容易理解和接受。
(2)缺點
- 測試的只有一小部分,不可能測試全部輸入。
- 沒有簡明的需求規格說明書,測試用例很難設計。
- 不能直接對程序段進行測試,該程序段可能隱藏更多錯誤。
3. 方法
(1)等價類劃分
所謂等價類,是指輸入域的某個互不相交的子集,所有等價類的并集便是整個輸入域。目的在于測試用例的無冗余性。
該方法是一種重要的、常用的黑盒測試用例設計方法。等價類是某個輸入域的子集,在該子集中每個輸入數據的作用是等效的。其主要分為:
- 有效等價類
是有意義的、合理的輸入數據構成的集合。可檢查程序是否實現了規格說明中所規定的功能和性能。
- 無效等價類
是無意義的、不合理的輸入數據構成的集合。檢查軟件功能和性能的實現是否有不符合規格說明要求的地方。
(2)邊界值分析法
邊界值分析法就是對輸入或輸出的邊界值進行測試的一種黑盒測試方法。目的是針對各種邊界情況設計測試用例,可以查出更多的錯誤。通常邊界值分析法是作為對等價類劃分法的補充,這種情況下,其測試用例來自等價類的邊界。
邊界值分析與等價類劃分的區別:
- 邊界值分析不是從某等價類中隨便挑一個作為代表,而是使這個等價類的每個邊界都要作為測試條件。
- 邊界值分析不僅考慮輸入條件,還要考慮輸出空間產生的測試情況。
邊界值分析設計方法:
1)確定邊界情況(輸入或輸出等價類的邊界);
2)選取正好等于、剛剛大于或剛剛小于邊界值作為測試數據。
(3)判定表方法
判定表能夠將復雜的問題按照各種可能的情況全部列舉出來,簡明并避免遺漏。利用判定表能夠設計出完整的測試用例集合。
在實際應用中,許多輸入是由多個因素構成,而不是單一因素,這時就需要多因素組合分析。對于多因素,有時可以直接對輸入條件進行組合設計,不需要進行因果分析,即直接采用判定表方法。一個判定表由“條件和活動”兩部分組成,也就是列出了一個測試活動執行所需的條件組合,所有可能的條件組合定義了一系列的選擇,而測試活動需要考慮每一個選擇。
判定表方法步驟:
1)列出所有的條件樁和動作樁;
2)填入條件項;
3)填入動作項,制定初始判定表;
4)簡化、合并相似規則或者相同動作。
(4)因果圖法
多種輸入條件的組合,產生多種結果設計測試用例。
因果圖法方法步驟:
1)分析軟件規格說明文檔描述的哪些是原因(輸入條件)、哪些是結果(輸出條件),給每個原因和結果賦予一個標識符;
2)找出原因與結果、原因與原因之間的對應關系,劃出因果圖;
3)在因果圖上標上哪些不可能發生的因果關系,表明約束或限制條件;
4)根據因果圖創建判定表,將復雜的邏輯關系和多種條件組合很具體明確的表示出來;
5)把判定表的每一列作為依據設計測試用例。
(5)場景法
用例場景用來描述流經用例的路徑,從用例開始到結束遍歷這條路徑上所有基本流和備選流。
根據不同的場景設計測試用例,例如:用戶操作ATM機,就有查詢、取款等操作。
(6)正交實驗法
正交測試法使用已經構造好了的正交表格來安排試驗并進行數據分析。
正交表的兩大優越性,即“均勻分散,整齊可比”。
(7)功能圖法
功能圖法就是為了解決動態說明問題的一種測試用例的設計方法。
每個程序的功能通常由靜態說明和動態說明組成:
- 靜態說明描述了輸入條件和輸出條件之間的對應關系;
- 動態說明描述了輸入數據的次序或者轉移的次序。
(8)錯誤推測法
測試者根據經驗、知識和直覺來發現軟件的錯誤,來推測程序中可能存在的各種錯誤,從而有針對性地進行測試。
此種方法沒有依據,單純依靠測試者自身實力。優點:快速切入體會到程序易用與否;缺點:難以準確知道測試覆蓋率。
關于白盒測試的詳細介紹請看下回。