前文講到自動化測試的概念,今天我們來談談自動化測試的意義,也即為什么要做自動化測試。
通過觀察業界的自動化測試實踐,總結有大致這么幾個點:
一 . 它可以縮短測試周期,提高效率
前兩天聽羅輯思維,講到一個例子,有一位朋友的女兒剛剛學會說話,就接管了他的iPad,還沒怎么學會走路,就可以用iPad里的App畫畫,并操作一些復雜的任務。有一天,朋友將一張打印出來的照片放在咖啡桌上。他注意到女兒走上前去,努力拖放照片想使它變大。她嘗試了幾次,都沒有成功,然后困惑地看著他:“爸爸,壞了。”
人類已經養成了一種做一件事情能夠得到反饋的習慣,并且這個趨勢會繼續下去,并且反饋速度越快越好。就像我們的工資能否變為按天來發或者按照每小時來發,這樣人類的工作是否更加有干勁呢?
軟件開發中的人們也希望寫好代碼快速得到反饋,越快越好,靠手工測試驗證,反饋速度是無法接受的,一個轉測試版本測試1周甚至2,3周,人們已經沒有耐心了,能否有什么辦法在1小時,5分鐘,甚至秒級得到反饋,自動化測試是一種較好的解決辦法,充分利用機器,集群替代人工,縮短測試周期,快速反饋結果。
二 . 避免人為出錯 說到自動化測試,與之對應的就是手工測試,所謂“人非圣賢,孰能無過”,傳統的手工測試很大部分依賴于人,簡單概括起來出錯的可能性會有:
- 用例執行方法出錯
- 輸入數據出錯
- 用例執行步驟出錯
- 測試報告數據出錯
- 忘了執行某些用例
- 忘了設置預置條件
- 錯誤的理解被測系統的行為
通過實現自動化,可以避免出現這些錯誤,同時人類可以把精力投入到更有個價值的工作中。
三. 測試信息存儲 自動化測試主要通過自動化腳本實現,和傳統的手工用例相比,腳本中可以記錄測試點,測試拓撲圖,測試設計思路等信息,是非常理想的測試信息存儲處,即“腳本體現思路”。
同時帶來的好處是新人接收測試時,可以快速掌握已測試點,因為可以通過運行了解測試。進而如果對待測試用例像對待代碼一樣,做好版本管理,將達到測試可回溯的目的。
四. 輕易獲取覆蓋率 在較好的自動化框架下,測試執行完自動化腳本,可以輕易的獲取到代碼覆蓋率,進而根據覆蓋情況分析,進行測試用例補充。
五. 其他 比如:自動生成清晰的測試報告,定時執行測試套,數據驅動測試的測試套重用等。
最后, 自動化測試增強軟件人員的幸福愉悅感。