按測試階段劃分
- 單元測試(多由開發負責)
- 集成測試(組裝測試, 主要是開發負責, 測試人員可以少量參與[接口])
- 系統測試(測試人員負責)
- 驗收測試(團隊內部,客戶,客戶委託第三方)
- α測試(內測)
- β測試(公測)
- γ測試(正式版候選版本)
RC: 候選版(經過多次beta測試, 基本不會添加新功能, bug較少)
GA: 正式版(穩定版, bug很少)
按是否覆蓋源代碼
-
黑盒測試(完全不關注代碼, 只關注客戶需求)
-
優點:
- 簡單, 設計測試比較簡單, 只關注需求, 不關注代碼
- 不會被代碼的思路干擾, 只關注最終需求, 更容易發現不滿足需求的問題
-
缺點:
- 對於沒有執行到的代碼, 無法進行覆蓋(比如預留後門)
-
分類
- 功能測試
- 邏輯功能測試
- 界面測試
- 安裝升級卸載測試
- 性能測試
- 時間性能測試
- 穩定性測試
- 負載測試
- 壓力測試
- 功能測試
-
白盒測試(關注實現細節, 對代碼層面進行測試)
- 優點:
- 能夠關注到代碼實現的規範(代碼的靜態檢查), 合理性
- 能夠精確測試
- 缺點:
- 只關注白盒的情況, 會忽略到客戶的最終需求
- 優點:
-
-
灰盒測試(介於黑盒和白盒之間,即關注需求又關注代碼,多用於集成測試階段)
是否運行
-
靜態測試
指不運行代碼/程序的測試, 可以檢查代碼的規範
-
動態測試
代碼運行起來的測試
是否自動化
- 人工測試(手工測試)
- 自動化測試(利用代碼和工具進行測試)
其他
- 冒煙測試 (執行大面積測試之前, 先測試最基本的功能能否實現, 有效避免測試資源浪費)
- 迴歸測試 (再次執行測試用例, 迴歸已經修復的軟件缺陷)
- 隨機測試 (沒有邏輯, 沒有目的的自由的測試)
- 探索性測試 (有目的進行探索式的測試)