閱讀644 返回首頁    go 阿裏雲 go 技術社區[雲棲]


如何快速掌握阿裏巴巴內部高效測試流程?

自動化測試是軟件測試技術上的一大進步,我們都知道自動化測試可以給工作提效,減少重複勞動,但在實踐過程中,卻總是碰到各種各樣的問題,導致進入自動化測試盲區。如何做好自動化測試,是很多企業迫切想要解決的問題。近日,阿裏巴巴產品專家金桐從自動化的煩惱,到分層自動化單元測試、業務服務層測試和UI測試的優劣勢分析,再到阿裏巴巴分層自動化的實踐之路,為大家提供了一套分層自動化實施解決方案。

自動化

為什麼要做自動化?



自動化的煩惱


259f5d4c4fa515b66832995c04188cd541e6c3f5





成本高



效果差


覆蓋率低


及時性低



f810d9c4f71f1813ec34ced8f67b167b64502511

分層自動化


54e3edeabd4ec7eccfbed5ee7d0fc23a42c47d46

分層自動化的特點比較如下:

Unit(單元/底層服務):


Service(接口/集成服務):


UI(係統/頁麵):



bd75e5ffb8338ebd45d93ea4c1da09962efd67c1

除了分層方法與建議外,還有分層投入比,究竟花了多少時間做單測、多少時間作接口和UI?我們清楚知道,根據(N-1)M的勞力節約公式,不是所有項目都需要做自動化測試,主幹核心、業務穩定、項目周期長和重複工作多的項目是需要做項目自動化測試的,圖中展示了Google產品分層自動化投入比,它是比較完美的,當我們底層建設很完善的時候,上層建築的確可以花費較少時間,維護成本也會相對降低。我們目前達不到,但可向這個比例去發展。

阿裏巴巴分層自動化的實踐


首先,分層自動化工具革命


19887c52863327d8383ce070263527647228b56d8eff911e197c17b4b8f54beafb895b1bdd4abd9a

UI自動化—AUI:

21ae2572c23cc791c2d2a722cf1a457a1fa3617a

接口自動化—SAT:

6b97e993d55bc88ebafc3c28983a9e74f1e5267f

單測—Amon:

57d6d5d0c865b7824fe9e9ca64cef5fed9a16c38

不僅如此,阿裏雲效還從需求-開發-測試-發布整個項目流程中可工具化、平台化的手工工作,全麵進行工具化、平台化的改造,如圖所示。 

a76c711b78e3b41f08cf3109ae90920211ae0547


開發環節:從拉分支開始,到自測的部署環境與單元測試,全部平台工具化。一鍵拉分支、一鍵部署、一鍵觸發單測集成,不到喝杯咖啡的時間,即可查看環境部署結果和findbugs、PMD、Sonar等代碼掃描結果。

測試環節:手工測試中有用例和缺陷兩款主打產品,平台沉澱,無需再做一些文件傳輸,加上前麵介紹的分層自動化相關測試平台與工具,在自動化測試工作上的效率提升,最終實現整體測試工作的平台與工具化。

其次,項目流程革命


80612122c9d7c54cb095ff625ffd1e11987de5d6





aa65274806b3a69189f1b94732cb17cc494ddb27

圖為阿裏項目分層自動化持續集成完整示意圖,我們多了集成自動化平台,該平台可以把分層自動化工具串聯在一起,去做整個持續集成、持續交付操作,讓工具具備了平台能力。不僅如此,我們還將分層自動化測試納入到了擬發布流程中,開發同學提交環境部署後,會自動提交自動化測試,不需要測試同學介入,如果失敗了才會通知測試人員排查,完全做到了CI/CD的理想效果。

46c7408d061d8ab6fae51f157a1512ef01f359e8

項目集成可以使用,那麼日常的產品回歸也可以用,圖為阿裏產品分層自動化持續集成完整示意圖,集成自動化給日常回歸產品做了賦能,將分層自動化工具平台和集成自動化串聯,去保證日常產品質量的回歸。


  • 阿裏內部:大幅提高研發測試比,減少重複勞動帶來的加班,更多高效工具的誕生,使用這套體係,B2B研發測試配比達到了8:1,部分產品線13:1,卻全年無故障。
  • 研發:單測成本降低,覆蓋率可視化,自測有保障,故障降低。
  • 測試:測試要求降低,重複工作減少,增加工作成就感,各種工具誕生。
  • 雲效客戶:企業快速賦能,提高研發測試效率,快速掌握阿裏內部高效測試流程。

關於雲效(https://yunxiao.aliyun.com):


4ec4f8078c61952382c55bc1284788ad5c91d3b7






最後更新:2017-08-16 12:02:29

  上一篇:go  PostgreSQL前言
  下一篇:go  獨享雲虛擬主機和共享雲虛擬主機的區別