手工測試用例是針對手工測試人員,自動化測試用 例是針對自動化測試框架,前者是手工測試用例人員應用手工方式進行用例解析,后者是應用腳本技術進行用例解析,兩者最大的各自特點在於,前者具有較好的異 常處理能力,而且能夠基於測試用例,制造各種不同的邏輯判斷,而且人工測試步步跟蹤,能夠細致的定位問題。而后者是完全按照測試用例的方式測試,而且異常 處理能力不強,往往一個自動化測試用例運行完畢后,報一堆錯誤,對於測試人員來定位錯誤是一個難點,這樣往往發現的問題很少。所以,根據其各自的特點,需 要將兩者有很好的定位:手工測試是在軟件版本前幾輪測試的重點,目的是驗證功能,發現問題;自動化測試是應用在后幾輪版本,保證軟件版本模塊修改或者添加 新功能后,沒有影響開始的功能模塊(因為軟件中,各模塊之間的接口以及類、函數方法等的互相引用,也是容易出問題的地方)。
手工測試用例和自動化測試用例功能定位的區別。
a)手工測試用例
i.較好的異常處理能力,能通過人為的邏輯判斷校驗當前步驟的功能實現正確與否。
ii.人工執行用例具有一定的步驟跳躍性。
iii.人工測試步步跟蹤,能夠細致的定位問題。
iv.主要用來發現功能缺陷
b)自動化測試用例
i.執行對象是腳本,任何一個判斷都需要編碼定義。
ii.用例步驟之間關聯性強。
iii.主要用來保證產品主體功能正確完整和讓測試人員從繁瑣重復的工作中解脫出來。
iv.目前自動化測試階段定位在冒煙測試和回歸測試。
怎么保證我們花了時間和精力去做的自動化測試,其結果是有效的、是能夠反映被測代碼質量的?
答:
自動化測試或者測試用例的根本目的就是judge(判斷)被測系統是否有問題,是以衡量被測產品的“標尺”存在的。所以,它具備一個重要的特征:在測試腳本和被測代碼都保持不變的情況下,測試結果應該是穩定的、不變的。
根據這個原則,“壞用例”並不是指測試不通過的用例,更不是測試通過的用例,而是指那些在相同條件下,偶爾通過、偶爾不通過的測試用例。反之,“好用例”則是表現穩定的用例。
為什么說“壞用例”破壞性大?因為如果用例本身不具備穩定的結果輸出,就無法准確的衡量被測產品是代碼的問題還是用例本身的問題。如果每次測試結果都不能直接說明問題,需要進行反復分析,將直接導致大家對測試用例失去信心。也就是說,測試同學和開發同學會把測試用例的不通過,當成“Warning”而非“Error”,這樣的最終效果就是自動化測試慢慢被拋棄。