自動化的端到端測試旨在替代手動測試人員部分工作,透過前端以及後端 API 的程式化測試和效能測試以自動化方式執行的內容。並非手動測試所做的一切都可以自動化,手動測試存在的重要原因。例如,很難自動化 UX 和可用性測試的各個方面,但是大多數重複的測試都可以自動化。根據我的經驗,大多數測試可以自動化,包括與複雜功能相關的測試,但是自動化成本就差異萬千。
自動化的好處很多,比如:自動化測試可以節省時間,並可以完成更多的測試。候選釋出之間的時間間隔可以短於可行地全面手動測試構建所需的時間。希望實現自動化的原因是可以理解的,但是看到實施和維護此類專案的嘗試未能兌現最初的願景的情況很常見。
前文Web 端自動化測試失敗原因彙總,下面列舉一些導致自動化實施失敗的原因。
錯誤的人來工作
自動化測試主要是是大量的程式和指令碼。測試自動化涉及編寫軟體,這需要具有一定開發技能的軟體測試人員,參與開發自動化測試不是軟體開發人員的場合。
有一些管理者有這樣一個觀點:優秀的手動測試工程師只要稍加培訓,比如測試工具,測試指令碼一類,可以很順利晉升為自動化測試工程師。並且他們以此為行動準則,帶來的影響可能是災難性的。
發生這種情況的另一個原因是:他們相信可以透過簡單的測試工具、開源軟體或使用機器學習來生成自動測試用例。到目前為止,其效果僅限於各類 Demo 和簡單的測試用例。要擁有完善的測試套件,需要手寫程式碼,您需要足夠開發技能。
缺乏程式碼質量觀念
自動化測試會測量正確性和軟體質量,為此,測試程式碼本身也應該是高質量,可維護和可擴充套件的,以確保持久有效。
通常大多數情況並非如此。原因之一是由於上述工作問題的人員沒有對自身程式碼質量有很清楚的認識。電腦科學以及特定演算法和資料結構的堅實基礎,以及豐富的經驗可以幫助軟體開發人員意識到確保所編寫的軟體滿足這些要求的重要性。
質量可能很低的另一個原因是由於缺乏時間,或在沒有意識到自動測試前期將會花費更多時間和資源。這是一個管理問題。應將足夠的時間納入工作計劃中。
未認識到自動化是長期專案
自動化的端到端測試將需要對其進行測試的產品或服務進行更新和維護。如果被測試的應用程式是公司銷售的產品或對支援和使業務執行至關重要的服務,則這可能意味著自動化將伴隨公司的整個生命週期。
但是有時會招募短期承包商來實現自動化。他們離開時會發生什麼?誰將維護測試,誰將在端點更改時更新測試,或者在每次重新設計 UI 或更改流程或新增新功能時就 UI 測試進行更新。可以將其視為一個長期專案,它將與被測產品並存。
誤解自動化構成
如果團隊是由具有技術背景的人領導的,則希望此規則不適用。有時領導層不熟悉自動化測試開發所涉及的內容。他們知道構建軟體產品需要一組軟體開發人員,測試,設計等人員,但是對於開發自動化的含義存在誤解。
明確說明自動化測試是軟體,應將其視為軟體開發專案,這不是可以立即使用的東西。測試的開發應儘早開始,並與功能和產品開發並行進行。突然提供自動化測試是不正確的,這是對所涉及內容的根本誤解。
太快地放棄可以自動化的東西
所有這一切都可以自動化,只不過有的容易有的困難,有的超出了自己的能力範圍。但請不要太快放棄,不要屈服於無法自動化或不值得 “自動化” 的觀念。
有時,以正確的態度實現自動化可能比實施自動化要簡單得多。只要它是某種程式性任務,就可以自動化。透過確保將這些案例自動化,自動化測試程式所帶來的價值將大大增加。
測試範圍有限
成功的自動化測試專案包括幾個部分。有測試執行者和程式執行者,有時也稱為測試工具,這常常是自動化測試專案範圍的限制。儘管測試工具是測試自動化專案的核心,但如果僅此而已,自動化測試的投資回報率的有效性就會受到限制。
一些測試作業應與構建系統和持續整合系統整合。端到端測試通常是長期執行的,因此在每次提交或在大型團隊中構建它們都可能並不總是可行的,但是應將它們設定為按計劃執行,例如每天進行一次。臨時執行的功能始終很有用,但是在此之上的計劃工作可確保測試正常執行而無需干預。
在開發測試工具時,通常會在開發機器上執行測試。否則,在執行時請考慮新增工具以輔助此操作。對於在 Web 和移動裝置上進行的前端測試,您可能需要一個裝置矩陣,或者是您的團隊自行構建的本地裝置儲備,或者是基於雲真機。對於後端 API 測試,尤其是效能測試,可以將測試工具部署在不同區域的雲例項中。
缺乏可見性,可追蹤性和報告
一旦自動測試按常規時間表執行,或者由事件觸發甚至臨時執行,測試結果和相關輸出資料就會開始生成。應該考慮如何收集,報告和分析這些資料。如果資料難以訪問,例如,需要檢查遠端伺服器上的日誌,或者缺乏測試結果和測試資料的可見性,那麼就不可能有效地瞭解自動化測試的狀況。
如果不及時糾正,此錯誤可能會危害整個自動化專案,因為如果不報告捕獲的質量測量結果,自動化測試也可能不存在。正確完成後,出色的報告不僅可以作為結果的樞紐,還可以檢視測試用例的詳細資訊,檢視它們的執行頻率,檢視失敗的原因,然後處理測試的結果以分配失敗的測試用例並連結錯誤以採取措施。
- 鄭重宣告:文章首發於公眾號 “FunTester”,禁止第三方(騰訊雲除外)轉載、發表。
技術類文章精選
- Linux 效能監控軟體 netdata 中文漢化版
- 效能測試框架第三版
- 如何在 Linux 命令列介面愉快進行效能測試
- 圖解 HTTP 腦圖
- 效能測試中圖形化輸出測試資料
- 壓測中測量非同步寫入介面的延遲
- 多種登入方式定量效能測試方案
- JMeter 吞吐量誤差分析
無程式碼文章精選
- 寫給所有人的程式設計思維
- JSON 基礎
- 2020 年 Tester 自我提升
- 自動化新手要避免的坑(上)
- 自動化新手要避免的坑(下)
- 如何成為全棧自動化工程師
- 左移測試
- 選擇手動測試還是自動化測試?