提到自動化測試,許多人都認為團隊一定要導入,相信可以解決許多問題。
如果你也對自動化測試有所期待,不妨先參考對自動化測試常見的五個誤解,釐清對於自動化測試的期待。
本篇,我將分為三個方向來討論自動化測試,分別是測試框架、撰寫自動化測試、執行策略。
測試框架
現在業界有很多自動化測試框架,在選擇框架時,建議有幾個點一定要考慮:
產品性質
雲端平台或是行動應用程式,都有各自領域較合適的框架。程式語言
團隊必須要有共識,使用哪種程式語言撰寫自動化測試。
自動化測試框架,大概由三個要素組成:
Test suite
自動化測試案例的集散地,在測試是一門學問,關於測試案例中,提到測試案例必須分類管理,同樣的道理,自動化測試案例也必須適度的管理。Test runner
負責執行測試,可能有使用者介面 (GUI),或者只是命令行 (Command line)。好的 test runner 可以選擇要執行的測試,或是調整參數,讓你在開發或執行測試時更加方便。Report
好的測試報告,除了提供測試的結果,當有測試案例未通過時,更可以幫助我們快速分析錯誤的原因。
撰寫自動化測試
寫出可以執行的自動化測試,其實不難,但品質工程師的挑戰,在於寫出可靠的自動化測試。
好的自動化測試腳本,一定包含以下流程:
Setup
初始化環境,建立測試資料Test
測試的本體Teardown
還原環境,清除測試資料
品質工程師撰寫的自動化測試,多半都是模擬使用者情境的端對端 (End-to-end) 測試,以上三個步驟中,通常需要花很多精力處理 Setup 跟 Teardown。
執行策略
自動化測試的執行策略,往往是最常被忽略的部分。
思考這兩個問題:
- 什麼時候執行自動化測試?
- 從自動化測試的結果得到什麼?
如果以上兩個問題沒有答案,表示沒有執行策略。
如果有執行策略,可能會是這樣:
- 代碼凍結 (code freeze) 後執行自動化測試
- 測試結果通過,產品可以上線
- 測試結果不通過,產品有 bug 需要解決
執行策略和專案進度息息相關,沒有絕對好的方式,應該大家一起溝通協調,找出適合團隊的方式。
自動化測試其實是學問中的學問,很多公司甚至有自動化測試部門,或是自動化工程師職務。
實務上,大家通常將自動化測試,視為品質工程師的必備技能,對品質工程師來說是挑戰,也是個機會。
品質工程師在導入自動化測試時,要讓團隊充分理解自動化測試能帶來的價值,以及限制。更重要的是,要知道自動化測試是個中長程計畫,不可能一步到位。
自動化測試雖然不是品質工程師唯一的職務,但往往最能體現品質工程師的價值。