將測試對象視為**黑盒子**,僅依據規格說明書設計測試用例,**不關注內部程式碼結構**。又稱功能測試、資料驅動測試。目標:驗證功能需求、發現介面/資料結構/效能/初始化終止等錯誤。
將輸入域劃分為若干**等價類**(子集),假設:測試一個代表值等同於測試整類。分兩類:
| 輸入條件 | 有效等價類 | 無效等價類 |
|---|---|---|
| 規定取值範圍/個數 | 1 | 2(小於下界、大於上界) |
| 規定輸入值集合/「必須如何」 | 1 | 1 |
| 布林條件 | 1 (True) | 1 (False) |
| 規定 n 個離散值,逐一處理 | n | 1 |
| 規定輸入規則(如格式) | 1 (符合) | 多個 (各種違反角度) |
| 已劃分類內部處理方式不同 | 再細分 | 再細分 |
補充等價類法,**針對邊界條件設計用例**。經驗顯示:錯誤多發生在邊界而非內部。
基於經驗、直覺、歷史缺陷模式推測易錯點(如除零、空指標、緩衝區溢位、參數順序錯誤),針對性設計用例。屬補充性方法,不可為唯一依據。
分析輸入條件(因)與輸出結果(果)的邏輯關係(恆真、E、I、O、R、M 約束),繪製因果圖 → 轉換為判定表 → 設計用例。適合**複雜邏輯業務規則**的系統化覆蓋。
將規格中的條件組合與對應動作列為表格,每欄為一測試用例。確保**條件組合完整覆蓋**,適合多條件決策邏輯(如折扣規則、權限矩陣)。
利用正交表(如 L9(3^4))從大量參數組合中選取**少量代表性組合**,以**最少用例覆蓋最大參數空間**。適合**參數眾多、組合爆炸**場景(如多瀏覽器×多OS×多解析度×多語言)。
| 場景 | 推薦方法 |
|---|---|
| 單一輸入欄位驗證 | 等價類 + 邊界值 |
| 複雜業務規則邏輯 | 因果圖 → 判定表 |
| 多參數組合測試 | 正交實驗設計 |
| 資深測試人員經驗補充 | 錯誤推測 |
| 功能流程端到端 | 功能圖分析 |
黑箱測試核心在於**從規格導出測試用例**。等價類與邊界值是基礎雙雄;因果圖/判定表解決邏輯覆蓋;正交實驗解決組合爆炸;錯誤推測補充經驗盲區。**組合使用、分層覆蓋**才能以合理成本達到高缺陷發現率。