軟體測試的分類——按測試手段來分類
根據測試時物件的可見度分為:黑盒測試、白盒測試
根據測試的狀態分為:靜態測試、動態測試
測試執行的方式:手工測試、自動化測試
1、黑盒測試:在完全不考慮程式內部結構和內部特性的情況下對暴露出來的介面對程式進行測試
(針對可見的功能進行測試)
優點:
1.容易實施,不需要關注內部的實現
2.更貼近使用者的使用角度
缺點:
1.測試覆蓋率較低,一般只能覆蓋到程式碼量的不到40%
2.針對黑盒的自動化測試,複用率較低,維護成本較高(程式功能變化快)
黑盒測試主要測試(關注)什麼?
1.是否有不正確或遺漏的功能?
2.在介面上,輸入是否能正確的接受?能否輸出正確的結果?
3.是否有資料結構的錯誤或外部資訊(例如資料檔案)訪問錯誤?
4.效能上是否能滿足要求?(系統測試階段主要使用黑盒測試)
黑盒測試的主要設計方法
等價類劃分法:針對很多輸入條件,等價的歸為一類,會形成典型的代表性的輸入,根據典型的輸入編寫用例
邊界值分析法:關注各種各樣邊界條件
錯誤推測法:基於經驗或直覺判斷程式中可能出現錯誤的地方,針對性的設計用例
因果圖法:需求規格說明書,根據規格語義說明編寫用例
正交試驗分析法:通過正交性從一組資料中篩選典型代表性資料的設計方法
狀態遷移圖法:通過梳理軟體功能點中的軟體狀態變遷關係設計用例
流程分析法:梳理程式邏輯執行路徑
2、白盒測試:又稱結構化測試和透明盒測試,針對程式的邏輯結構設計用例。
邏輯的單位:語句、條件、條件組合、分支、路徑
優點:
1.破事測試人員去仔細思考軟體的實現,理解原理
2.可以檢測程式碼中每條分支和路徑
3.揭示隱藏在程式碼中的錯誤
4.對程式碼的測試比較徹底
缺點:
1.昂貴(較高的覆蓋率)
2.無法檢測程式碼中遺漏的路徑和資料敏感性錯誤(資料處理的有問題)
3.不能直接驗證需求的正確性(從程式碼層面進行驗證)
主要測試方法:程式碼檢測法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法
灰盒測試:介於黑、白盒測試之間的,關注輸出對於輸入的正確性,同時也關注內部表現
3、靜態測試
定義:是指無須執行被測程式,而是通過評審軟體文件或程式碼,質量程式靜態複雜度,檢查軟體是否符合編碼標準,藉以發現編寫的程式的不足之處,減少錯誤出現的概率
方式:互審、走查、會議(不正式--正式)
4、動態測試
定義:是指通過執行被測程式,檢查執行結果與預期結果的差異,並分析執行效率、正確性和健壯性等。
5.手工測試
定義:由專門的測試人員從使用者視角來驗證軟體是否滿足設計要求的行為。更適用針對深度的測試和強調主觀判斷的測試
眾包測試、探索式測試
6.自動化測試
使用單獨的測試工具軟體控制測試的自動化執行以及對預期和結果進行自動檢查
單元測試、介面測試、效能測試等
手工測試VS自動化測試
手工測試
優點:
易發現缺陷
容易實施
創造性、靈活性
缺點:
覆蓋量化難
重複測試效率低
不一致性、可靠性低
人力資源依賴
自動化測試
優點:
高效率、速度快
高複用性
覆蓋率容易度量
準確、可靠
不知疲勞
缺點:
機械、發現缺陷率低
一次性投入較大