手工測試的優(yōu)勢
手工測試只需要人工操作,不需要編寫測試腳本,對測試人員的編程能力要求低;手工測試可以更為全面的測試軟件的非功能需求,如用戶界面、易用性等,這些往往很難僅通過自動化腳本完成測試;測試人員可以根據(jù)經(jīng)驗進行更為靈活的測試設計和操作,進行一些腳本難以覆蓋的探索性測試;測試人員憑借主觀經(jīng)驗的介入,可以找到一些自動化測試覆蓋不到的邊界情況等缺陷;還有一個比較重要的,手工測試不需要研發(fā)和購買測試工具,前期投入成本低。
手工測試的局限性
手工測試完全依賴人工操作,測試用例的準備和執(zhí)行都需要較多時間成本;多次執(zhí)行同一手工測試用例,結果可能不一致,重復性較差;手工測試覆蓋的測試場景相對有限;代碼修改后需要重新進行大規(guī)模測試,手工測試不太適合進行頻繁的回歸測試;測試數(shù)據(jù)需要人工準備,不同測試者測試數(shù)據(jù)質量可能存在差異;測試結果判定依賴個人經(jīng)驗,不同測試者的結論可能不一致,缺乏客觀標準;手工測試缺乏方便的記錄機制,測試進度及缺陷難以定量化統(tǒng)計;手工測試無法進行長時間的穩(wěn)定性測試,難以覆蓋穩(wěn)定性相關的缺陷。
自動化測試的優(yōu)勢
自動化測試將測試用例編寫成腳本,可以重復高效執(zhí)行;自動化測試可以針對所有的功能點、代碼分支進行測試,覆蓋測試范圍廣;自動化測試每個步驟都可精確控制,不受外界環(huán)境影響,重復執(zhí)行結果一致;自動化測試可以重復回歸測試,減少重復勞動;自動化測試可以進行超長時間的壓力測試、穩(wěn)定性測試等,可揭示手工測試難以發(fā)現(xiàn)的缺陷;測試腳本可復用,新人只需維護腳本,不受人員影響;自動化測試可與持續(xù)集成(CI/CD)環(huán)境集成,實現(xiàn)更頻繁的測試。
自動化測試的局限性
自動化測試的維護成本高,測試用例變更時,需要同步修改腳本,否則會出現(xiàn)大量無效測試;測試腳本與系統(tǒng)耦合度高,系統(tǒng)變更可能導致大量自動化用例失效;自動化測試難以覆蓋所有場景,如業(yè)務流程、用戶交互等;自動化測試需要模擬真實系統(tǒng)環(huán)境,測試環(huán)境變更可能影響腳本執(zhí)行;測試腳本發(fā)生故障時,定位原因較為復雜,debug 難度較大;自動化環(huán)境故障可能導致大量用例失敗,使問題定位更困難。
手工測試和自動化測試應該如何合理的配合使用
在功能測試階段,需求和設計還在不斷優(yōu)化變更,應以手工測試為主,自動化測試配合使用。進入系統(tǒng)測試階段后,需求相對穩(wěn)定,可以編寫大量自動化測試腳本,用于回歸測試。UI測試,涉及用戶界面、交互等,難以全部自動化,應該以手工測試為主;而核心的業(yè)務流程、工作流程應當優(yōu)先編寫自動化測試腳本,保證質量。在自動化測試的運行過程中,手工測試人員可以進行探索性測試,雙管齊下,如能找到缺陷,及時修改自動化腳本。建立模塊化、可維護的自動化測試框架,降低用例編寫和維護成本。
推薦閱讀: