既然自動化測試成本高、效果差,爲什麼很多公司還要做?

原文出自:嘉爲藍鯨服務號

首先,有人認爲自動化測試的成本高效果差,是因爲對它有諸多誤解。其實,正確合理的自動化測試是能夠帶來高回報的。

很多公司不做單元測試,這樣合適嗎?

一、爲什麼自動化測試 “投入高”、“效果差”

1、測試腳本的開發成本不亞於軟件代碼的

自動化測試並不適合短期項目或一次性項目,主要原因在於自動化測試腳本的開發和維護與軟件代碼一樣,需要投入技術人員。而且測試腳本受軟件需求的影響非常大,如果是短期項目、一次性項目或者需求不穩定的項目,投入自動化測試的成本非常高昂。

如果是短期或者一次性的項目,投入大量的精力開發的自動化測試腳本因爲只會使用一次,無法通過多次複用執行來稀釋初始投入成本,這種情況下自動化測試的產出遠不如手工測試,這就導致了自動化測試投入高效果差的第一個假象。

2、測試腳本的維護成本也非常高昂

那麼,是不是長期維護的產品就適合擴展自動化測試呢?其實不然,如果僅僅是長期維護的項目,但是業務需求一變再變,對於測試腳本開發工程師也是非常頭疼的事情。

假定開發的同事在版本v1.0中定義並開發了一個接口,但是該接口定義僅僅維持了一個版本,在版本v1.1中就發生成了變更,這對測試腳本開發工程師來說就很痛苦,因爲對應接口的測試腳本也需要調整。上述情況如果發生在UI測試中,測試腳本的維護成本會更高,尤其是在目前前後端分離,前端使用了編譯型JS框架的情況下,非常有可能導致上一個版本中的測試腳本完全作廢。

因此,需求的穩定性對於自動化測試也是非常重要的,它將直接關係到測試腳本的後期維護成本,如果每個功能的測試腳本在新的版本中都要修改腳本代碼,一定會導致自動化測試腳本的維護成本飆升,這就導致了自動化測試投入高效果差的第二個假象。

你知道嗎,代碼掃描僅僅是第一步

二、哪些情況下適合使用自動化測試

1、什麼樣的項目適合推廣自動化測試

首先,如果您打算在自己的項目中投入自動化測試,請首先考慮自己的項目是否具備以下要素:

  • 長期維護的產品
  • 需求偏穩定,功能易測
  • 團隊成員具備一定的測試腳本開發能力
  • 存在特定的無法由手工完成的測試需求

其次,使用ROI公式計算在項目中推廣自動化測試的投入產出比,如果自動化測試的ROI高於手工測試,請果斷放棄,否則它將成爲整個團隊的負擔。

自動化測試ROI = (Costs of manual - Costs of Automation) / Costs of Automation *100%

ROI解釋:

  • 自動化測試的收益與測試迭代執行的次數成正比。
  • 收益可能爲負數:當自動化成本和維護成本比手動執行成本還高。很多時候自動化初始成本並不比手動成本高,但是維護成本很高。
  • Costs of manual = 人工測試執行成本
  • Costs of Automation = 框架開發 + 框架維護 + 環境部署 + 腳本開發 + 腳本維護 + 測試運行

 

2、特定的需求必須要靠自動化測試才能滿足

在實際的項目中,常常會有一些用戶需求,要求軟件必須保證一定的性能,保證軟件可以防護常見的漏洞攻擊手段。

以性能測試爲例,假定用戶要求在百萬級數據量下、1000人同時進行查詢操作時,仍然要保證查詢接口的響應速度控制在0.5秒以內。在實際的測試中我們肯定不可能召集1000個用戶並向大家發號司令同時發起查詢操作,這種場景就必須依賴自動化測試了,使用如jmeter或loadrunner等測試工具就可以以非常低的成本完成特定場景的性能測試。

性能測試只是一個例子,實際上如性能測試、精準測試,全鏈路壓測、混沌工程等專項測試都是不可能依靠堆人就可以完成的。既然自動化測試成本高、效果差,爲什麼很多公司還要做?

嘉爲藍鯨CTest自動化測試,爲企業提供一整套測試管理和自動化測試的解決方案。圖例爲CTest的數據任務模塊,具備單任務到多百萬級的數據生成能力以及數據卸載能力,測試人員通過簡單的配置即可實現自動化的數據生成和卸載能力,真正實現自動化測試提速

 

三、自動化測試有什麼意義

1、自動化測試是敏捷研發的必備測試選項

敏捷開發模式(點擊查看詳情)講究小步快跑,快速迭代,在這種快速迭代的場景下,隨着歷史版本功能的積累,測試團隊的迴歸測試壓力會越來越大。如果能夠積極引入自動化測試,可以帶來以下兩點顯而易見的好處:

提升軟件產品質量:依託於自動化測試能力,快速完成歷史版本中穩定功能的迴歸測試,暴露隱藏問題,提升產品質量。

提高團隊成員的成就感:自動化測試將人員從重複勞動中解放出來,讓團隊成員專注於業務價值交付這種更具創造性的工作,能夠極大的提高團隊成員的自豪感和成就感。

嘉爲藍鯨CTest自動化測試與嘉爲藍鯨CPipe持續集成天然打通,輕鬆將自動化測試工具集成到流水線作業中,實現持續測試和無人值守自動化測試,推動企業自動化測試能力進一步進化

軟件研發的目的在於快速、高質量的將業務價值交付到業務人員手中,對於質量保障工作來說,自動化測試並不是提升軟件質量的“銀彈”,整體研發團隊的質量意識才是關鍵。當需求、開發、測試人員都認可大家是一個整體,質量保障是團隊共同的工作時,軟件質量一定可以再上一個臺階。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章