【自動化測試】如何從0到1打造自動化測試
一個公司的測試部門由初創到成熟,最具代表性的可能就是其自動化團隊的實力,因為當公司的規模越來越大,業務越來越龐雜,測試的工作量也會成倍的增長。整個團隊的瓶頸開始由研發人員的不足轉向測試人力的不足,單靠人工測試已經無法滿足產品的快速更新迭代速度,往往痛定思痛後測試部門都會艱難的走上自動化測試的道路上,那麼當我們從無到有打造自己的自動化測試團隊時,應該從哪些方面入手,以及按照怎樣的流程來避免走太多的彎路呢,這裡小編以自己自動化測試的經驗來給出一些參考建議。
1、人員組建
這當然是一切工作的開端,一旦我們準備開始打造自動化測試團隊,我們就應當開始著手自動化測試人員的挑選。
1)面試招聘
當你到了這個地步才開始意識到要構建自動化測試時,說明你的團隊之前並沒有太強的自動化測試的意識,那麼最有效的方式是招聘一些在自動化測試方向更有經驗的人員,一方面他們能夠更好的引導自動化測試的構建,另一方面也可以對已有的團隊成員進行自動化測試思維的培養。
2)職能分工
除了開始挑選相關的自動化測試人員,接下來需要思考自動化測試工作的一個分工,自動化測試本身也是一個大規模的作業,各個環節需要的技能都各不相同,需要安排具有相關技能的人員,一般自動化測試會涉及到以下環節:
- 自動化測試框架的搭建
- 架構設計能力
- 豐富的coding和debug經驗
- 代碼性能優化
- 底層介面的開發
- API封裝的能力
- 良好的編碼規範
- 熟悉各類基礎業務
- 自動化腳本的開發
- 基本的腳本語言開發能力
- 熟悉所涉及的測試業務
- Web端的開發
- 豐富的前後端開發經驗
- 伺服器性能優化能力
2、人員管理
如何更好的管理一個自動化測試團隊,可以從以下幾個方面入手。
1)流程管理
制定適合團隊的一套流程,能夠規範團隊的工作,提高整體的工作效率,一般可根據公司的管理政策適當的做一些變更,磨合出適合團隊的流程。比如有的團隊更適合使用敏捷測試的流程,有些則適合瀑布式的串列流程。
2)工作管理
採用一些KPI或OKR類的工作評價指標,以量化團隊的工作,提升團隊的工作積極性及工作導向。
3)團隊建設
團隊的磨合在自動化測試的搭建過程非常重要,可以適當的組織技術分享,安排技術培訓等,通過技術的共享讓各個團隊成員找到更適合自己或者自己更感興趣的業務方向,能夠提高團隊成員的自我成就感。
3、基建工作
1)測試用例管理系統
事實上測試用例管理系統在沒有自動化測試業務的團隊也至關重要,然而當你準備投入自動化測試時,測試用例管理系統將更加變得不可或缺。
目前比較普遍的是使用諸如testlink之類的開源系統,然後在其之上進行一些二次開發(這也是為什麼第1節中提到需要一些Web端開發的人員),或是使用一些收費的系統,這裡不再列舉。
2)Bug管理系統
同1)所說,bug系統對整個測試部門都至關重要,但是實現自動化測試時,bug的覆蓋跟蹤也是自動化測試覆蓋率的重要環節,可搭建諸如Bugzilla、Mantis這樣的開源系統,也可使用Jira這樣強大的收費系統。
3)Wiki文檔系統
技術分享、技術培訓不可或缺需要Wiki文檔系統來維護一些技術文檔,普遍會採用Confluence作為內部文檔交流的系統。
4)代碼管理系統
不必多說,代碼庫管理是必需環節,SVN、Git等工具均可使用。
4、自動化測試系統構建
如何從頭開始構建自動化測試系統,往往是按照以下的順序依次進行。
1)底層API
所有的自動化測試腳本都基於最底層的API介面的調用,所以這部分是自動化測試工作最先開始投入的部分。
2)自動化測試腳本
最初由於腳本當量不大,所以並不需要太龐雜的系統來承托腳本的運行,所以在底層API開發完畢後即可進入簡單的自動化腳本的開發工作。
3)自動化框架
當自動化測試腳本的量級過大後,腳本的選擇、運行、調度等變得困難,這時將需要一套自動化測試框架,負責所有腳本的調度,有時也可基於一些開源的框架做二次開發使用,這個階段需要考慮的是採用哪種策略的框架更適合當前的自動化業務。
4)報告、日誌系統
大當量的腳本將會對統一的日誌有更高的要求,需要定義更規範的日誌以及開發便捷的報告生成系統來配合自動化測試的進行。
5)環境部署
當整套的框架都開發完畢,需要一套規範的方法來快速的部署自動化測試環境到真實的測試平台上去。
6)集中控制系統
團隊規模再次擴大之後,可能還需要一套集中控制系統,用來管理各個自動化測試平台,引入賬戶機制,遠程操作,分散式執行等策略
5、自動化測試管理
1)自動化腳本管理
往往腳本也同其他代碼一樣,需要錄入代碼管理系統
2)自動化質量管理
通過率是自動化測試質量的重要指標,通過率過低會導致自動化的低效,甚至反而不如人工測試的效果好
3)自動化覆蓋率
在編寫自動化測試用例時,並非要一味的追求自動化的覆蓋率,更多時候我們是需要考量自動化的投入與產出,使得自動化測試發揮其價值而不是消耗更多的人力。
4)持續集成
往往是通過持續集成的方式來自動執行冒煙測試,在軟體構建之後立即反饋致命問題
以上即是小編對如何開展自動化測試工作的一些見解,感興趣或者想要更進一步討論的朋友歡迎關注我或給我留言
推薦閱讀:
※移動端測試探索之路
※Selenium Grid 兼容性測試(Python版)
※8年軟體測試工程師感悟——寫給還在迷茫中的朋友
※Xebium詳解12-敏捷實踐
※selenium自動化測試02 瀏覽器的登錄和操作