動機
從第一次接觸自動化測試到現在已經6年有余, 期間有幸接觸了很多優(yōu)秀團隊的優(yōu)秀實踐, 最深的感觸, 是自動化本身基于實踐, 是通過解決一個一個問題, 逐漸形成的軟件工具方案. 雖然功能相近, 但是因為業(yè)務需求不同, 都有各自的側重點和特異性. 想通過這樣一篇文章引導讀者能夠從零開始結合筆者的經驗, 構建一個完整的測試系統
我們需要自動化測試嗎?
自動化測試有兩點眾所周知的優(yōu)點:
- 作為持續(xù)集成的重要組成部分, 能夠快速得到某一個構建的質量概況
- 代替人工, 有效的節(jié)約開支
雖然這兩點非常吸引人, 但是如果想發(fā)揮自動化測試的長處, 就需要仔細的考慮是否已經滿足自動化測試的引入條件:
- 是否已經有持續(xù)構建的基礎條件? 團隊是否已經習慣于這種作業(yè)方式?
- 目前的工作是否可以通過外包的方式完成? 使用自動化測試會節(jié)約多少人力?
系統概要
如果決定開始構建一個自動化測試系統, 不妨結合自動化測試明顯的優(yōu)點開始我們的設計:
- 可以運行測試
- 可以被自動觸發(fā)
- 正確的反饋運行結果
- 執(zhí)行可以加速
此外, 可能還需要, 但并不是必須的特性: - 可擴展
- 數據記錄
自動化程序應該可以被除手動觸發(fā)外其他的方式啟動, 所以webApi, 命令行接口等可能是不可避免的. 有因為測試的結果需要能夠反饋, 所以統一的Log模塊, 以及測試報告生成的模塊, 也是必須要有的. 因為執(zhí)行可以被加速, 所以靈活的調度機制也是必須要有的.
那么, 我們稍微總結一下:
幻燈片2.png
是不是一個很簡單自動化測試系統的雛形就出來了? 如果考慮到實際應用, 我們還要考慮到擴展性, 和數據的持久儲存等, 我們可能還需要增加插件功能, 增加存儲模塊, 為了更靈活的調度, Engine最好支持隊列的管理. 所以:
幻燈片2.jpg
到目前為止, 我們已經得到了一個自動化測試系統的RoadMap, 我們在后面會逐漸展開.