黑盒測試:只檢查程序的功能,是否按照需求規格說明的規定來運行。着眼於外部結構,不考慮內部邏輯。站在用戶視角。
優點:容易實施;更貼近用戶視角。缺點:測試覆蓋率低,約40%;自動化測試用例複用度低,維護成本高;
關注:是否有遺漏或錯誤的功能;給定的輸入,系統能否有正確的結果;是否有數據結構的錯誤;訪問是否有問題;性 能是否有問題;系統測試使用較多的黑盒測試;
設計方法:等價類劃分法,邊界值分析法,錯誤推測法,因果圖法,正交實驗分析法,流程分析法,狀態遷移圖法,
白盒測試:針對程序的邏輯結構來設計測試用例,用邏輯覆蓋率來強調測試的完整性。語句覆蓋、條件覆蓋、路徑覆蓋。
優點:迫使測試人員仔細系統的實現,理解原理;檢測代碼中每條代碼分支和路徑;揭示代碼中隱藏的錯誤;對代碼測 試比較徹底。
缺點:工作量大,昂貴;無法檢測代碼中遺漏的邏輯和數據敏感性的錯誤;不能直接驗證需求規格的正確性;
測試方法:代碼檢測法、靜態結構分析法、靜態質量度量法、邏輯覆蓋法、基本路徑測試法、
灰盒測試:介於黑盒、白盒測試之間。關注輸出對於輸入的正確性,也關注系統邏輯。
靜態測試:無需執行被測程序,通過評審文檔或代碼,度量程序靜態複雜度,檢查軟件是否符合標準,藉以發現程序的不足;
方式:互審、走查、會議。
動態測試:通過運行被測程序,來檢查運行結果和預期結果的差異,並分析運行效率、正確性和健壯性等。
方法:黑盒主要用動態測試;白盒測試主要用靜態測試;
手工測試:由專門的測試人員,從用戶視角,來驗證軟件是否滿足設計要求的測試的行爲,更適合針對深度的測試和強調主管判 斷的測試。
適用類型:衆包測試、探索性測試
優點:容易發現缺陷;更加容易實施;具有創造性;
缺點:覆蓋量化難;重複測試效率低;不同的人做不一致性,可靠性低;
自動化測試:使用單獨的測試工具軟件控制測試的自動化執行以及對預期和結果進行自動檢查。
適用類型:單元測試、接口測試、性能測試等。
優點:高效率;高複用性;覆蓋率容易度量;準確可靠;
缺點:機械、不具備創造性,不太容易發現缺陷;投入大;