白盒測試
關注被測單元的內部結構和程序邏輯
白盒測試方法
1、語句覆蓋
每條語句至少執行一次
2、判定覆蓋
每個判定的每個分支至少執行一次
3、條件覆蓋
每個判定的每個條件應取到各種可能的值
4、判定-條件覆蓋
同時滿足判定覆蓋條件覆蓋
5、條件-組合覆蓋
判斷條件中的所有可能至少出現一次,並且每個判斷本身的判斷結果也至少出現一次
6、路徑覆蓋
覆蓋程序中的所有可能的執行路徑
7、基本路徑覆蓋
- 程序的流程控制圖
- 計算程序環路複雜度 V(G) = 邊界數目 - 節點數目 + 2
- 確定基本路徑
黑盒測試
完全不考慮程序內部結構和內部特性,直接對軟件進行測試
黑盒測試方法
1、等價類劃分法
將要輸入的數據域,分爲幾部分,然後從每個部分選取少量代表性數據進行測試,等價類分爲有效等價類和無效等價類
2、邊界值分析法
取輸入條件邊界上的值,進行測試
3、判定表分析法
分析和表達多種輸入條件下系統執行不同動作的工具
4、因果圖法
描述系統輸入輸出之間的因果關係
5、正交實驗法
從大量的試驗點中挑選出適量的、有代表性的點,從而安排實驗
6、功能圖法
使用功能圖形式化地表示程序的功能說明
7、場景法
運用場景來對系統的功能點或業務流程的描述
8、錯誤推測法
根據自己的工作經驗和直覺推測出程序可能出現的錯誤,從而進行鍼對測試
靜態測試法和動態測試法
1、靜態測試
程序不運行,人工進行代碼檢查、靜態結構分析、代碼質量度量、(需求規格說明書的複審)文檔測試
2、動態測試
執行代碼,通過運行程序找到問題,包括功能確認與接口測試、覆蓋率分析、性能分析、內存分析等
迴歸測試
對修復的缺陷進行重新測試,對軟件的新版本或新功能進行測試
α測試:用戶在開發者的場所來進行的,在一個受控的環境中進行
β測試:軟件的最終用戶在一個或多個用戶場所來進行的,開發者通常不在現場,用戶記錄測試中遇到的問題並報告給開發者,開發者對系統進行最後的修改,並開始準備發佈最終的軟件
自動化測試和手工測試的優缺點
手工測試缺點:
- 大量重複的手工測試,代價昂貴、容易出錯
- 過於依賴於測試人員的能力
手工測試優點:
- 測試人員具有經驗和對錯誤的猜測能力
- 測試人員具有對軟件的審美能力
- 測試人員具有是非判斷和邏輯推理能力
自動化測試的缺點:
- 不能取代手工測試
- 手工測試比自動測試發現的缺陷更多
- 測試自動化不能提高有效性
自動化測試的優點:
- 可以執行一些手工測試困難或不可能進行的測試,如,大量用戶的測試
- 增加軟件信任度
- 更方便的對程序進行迴歸測試
- 短時間可以運行更多更繁瑣的測試
- 更好地利用資源