一、按照測試目標分類(測試目的是什么)
主類別 | 細分說明 |
---|---|
1. 界面測試 | UI內容完整性、一致性、準確性、友好性,布局排版合理性,控件可用性等 |
2. 功能測試 | 檢查軟件功能是否符合需求說明書,常用黑盒方法:邊界值、等價類、判定表等 |
3. 性能測試 | 關注響應速度、系統負載、吞吐量等,需基于架構與性能需求設計測試 |
4. 可靠性測試 | 評估系統穩定性、服務可用性(如99.99%、99.999%) |
5. 安全性測試 | 驗證系統對數據、身份、訪問權限的防護能力,防范SQL注入、XSS等攻擊 |
6. 易用性測試 | 符合UI標準、直觀性、操作靈活性、美觀舒適度等 |
二、按照執行方式分類(是否運行程序)
主類別 | 細分說明 |
---|---|
1. 靜態測試 | 不運行程序,僅分析代碼/文檔/結構,如代碼審查、靜態掃描 |
2. 動態測試 | 運行程序并輸入測試數據,如功能測試、系統測試等 |
三、按照測試方法分類(看代碼與否)
主類別 | 細分說明 |
---|---|
1. 白盒測試 | 分析程序結構和路徑(語句覆蓋、判定覆蓋、路徑覆蓋等) |
2. 黑盒測試 | 基于功能需求進行測試(等價類、邊界值、場景法等) |
3. 灰盒測試 | 結合黑盒和白盒,對輸入輸出及部分內部結構進行驗證 |
一、白盒測試
? 強調對程序內部邏輯結構進行測試,關注“怎么實現的”。
🔹 主要應用階段:
-
多用于 單元測試
-
由 開發人員或白盒測試工程師編寫
🔹 特點:
-
需要閱讀和理解源代碼
-
關注每條路徑是否被測試到
-
能提高代碼質量,及時發現隱藏邏輯問題
🔹 常見方法(6種邏輯覆蓋):
覆蓋類型 | 描述說明 |
---|---|
1. 語句覆蓋 | 要求程序中每條語句至少執行一次 |
2. 判定(分支)覆蓋 | 要求每個分支(if/else)都執行到,判斷結果為 T 和 F 各一次 |
3. 條件覆蓋 | 每個判斷條件的每個可能取值(T/F)都至少出現一次 |
4. 判定-條件覆蓋 | 同時滿足判定覆蓋和條件覆蓋的要求 |
5. 條件組合覆蓋 | 所有條件變量的 T/F 組合都測試(復雜度高) |
6. 路徑覆蓋 | 要求程序中所有可能的執行路徑都至少測試一次(數量通常是指數級) |
二、黑盒測試
? 不考慮程序內部實現,重點在于輸入與輸出是否符合需求說明書。
🔹 主要應用階段:
-
多用于 系統測試、驗收測試
-
由 測試工程師執行
🔹 特點:
-
不需要讀代碼,只需理解需求
-
能從用戶角度檢驗功能是否正常
-
無法覆蓋具體邏輯路徑,可能遺漏內部缺陷
🔹 常用設計方法:
測試方法 | 描述說明 |
---|---|
1. 等價類劃分法 | 將輸入劃分為有效/無效等價類,每類只取一個代表值進行測試 |
2. 邊界值分析法 | 對輸入的邊界點和邊界附近的值進行測試,如 [0,100] 測試 -1, 0, 1, 99, 100, 101 |
3. 判定表法 | 將輸入條件與預期動作列為表格,覆蓋所有輸入組合,適用于復雜業務規則 |
4. 正交法 | 利用正交表從大量組合中選出有代表性的少數組合,提升測試效率 |
5. 場景法 | 根據真實業務流程設計測試用例,模擬用戶操作路徑 |
6. 錯誤推測法 | 基于經驗假設容易出錯的情況,如輸入為0、空字符串、最大長度等 |
三、灰盒測試
? 結合黑盒和白盒測試,既看外部行為,也關注部分內部實現。
🔹 主要應用階段:
-
多用于 集成測試
-
可由 測試人員與開發共同參與
🔹 特點:
-
不需要深入所有源代碼,但會參考接口文檔、中間模塊結構
-
可以設計更有針對性的用例,如模擬接口調用、Mock 數據
-
較全面,適用于復雜系統間數據流/狀態流的驗證
? 總結對比表:
類別 | 是否看代碼 | 代表測試者 | 應用階段 | 典型方法/技術 |
---|---|---|---|---|
白盒測試 | ? 是 | 開發或白盒工程師 | 單元測試 | 語句/分支/路徑/條件覆蓋,靜態掃描等 |
黑盒測試 | ? 否 | 測試工程師 | 系統、驗收測試 | 等價類、邊界值、場景法、判定表、錯誤猜測 |
灰盒測試 | ?? 部分 | 聯合測試者 | 集成測試 | 接口驗證、中間狀態分析、部分代碼輔助設計用例 |
四、按照測試階段分類(在哪個階段進行)
主類別 | 細分說明 |
---|---|
1. 單元測試 | 對最小功能單元(函數/類)測試,主要用白盒方法 |
2. 集成測試 | 測試模塊之間的接口與數據傳遞,結合白盒和黑盒方法 |
3. 系統測試 | 測試整個系統功能、性能、界面、安全性等,主要用黑盒測試 |
4. 驗收測試 | 由用戶或第三方進行確認測試,確認軟件是否符合需求和交付標準 |
附加補充 | 冒煙測試:驗證核心功能是否正常;回歸測試:確保修改不引入新Bug (冒煙測活著沒,回歸測改壞沒) |
五、按照是否手動執行分類
主類別 | 細分說明 |
---|---|
1. 手工測試 | 人工執行測試用例,對靈活性和異常情況測試有優勢 |
2. 自動化測試 | 使用腳本與工具自動運行測試,提高效率,常用于回歸、性能、安全性測試等 |
六、按照實施組織劃分
主類別 | 細分說明 |
---|---|
1. Alpha測試 | 開發方內部模擬用戶環境的測試(內測) |
2. Beta測試 | 實際用戶使用中進行的公開測試(公測) |
3. 第三方測試 | 由獨立測試機構進行,保障客觀性與專業性 |
七、按照地域范圍劃分
主類別 | 細分說明 |
---|---|
1. 國際化測試 | 驗證多語言、時區、貨幣等本地化因素是否正常 |
2. 本地測試 | 針對單一地區、本地配置和用戶習慣進行的測試 |