在大集成環(huán)境的全網(wǎng)回歸環(huán)境下,回歸驗(yàn)證必然會(huì)有發(fā)布窗口限制,沒(méi)辦法快速交付。會(huì)暴露出很多問(wèn)題,例如:功能的交付與大應(yīng)用相比并無(wú)改觀;手工部署的應(yīng)用更多,更復(fù)雜;自動(dòng)化排查問(wèn)題效率低;痛苦的回滾,剔除問(wèn)題代碼提交。
為了實(shí)現(xiàn)持續(xù)交付,該怎么做呢?單個(gè)應(yīng)用實(shí)現(xiàn)快速交付,沒(méi)有全網(wǎng)自動(dòng)化回歸,面對(duì)復(fù)雜的服務(wù)化依賴較大質(zhì)量風(fēng)險(xiǎn),給了質(zhì)量保證部很大壓力。既要快速交付,還要集成質(zhì)量。質(zhì)量向前,把一切能自動(dòng)化的自動(dòng)化起來(lái),提升項(xiàng)目組成員的工作效能。完成這一系列過(guò)程,這其中的核心就是實(shí)現(xiàn)自動(dòng)化。
分層自動(dòng)化看上去就是一個(gè)金字塔,基本上分為兩部分,業(yè)務(wù)邏輯自動(dòng)化測(cè)試,和代碼級(jí)別自動(dòng)化測(cè)試。而這里面重點(diǎn)是UI自動(dòng)化存在很多痛點(diǎn),用下面這個(gè)公式可以說(shuō)明:
- 自動(dòng)化收益=有效迭代次數(shù)×手工測(cè)試成本
- 自動(dòng)化成本=腳本創(chuàng)建成本+維護(hù)次數(shù)×維護(hù)調(diào)試成本+腳本失敗次數(shù)×腳本排錯(cuò)成本
其次就是在服務(wù)化接口測(cè)試上做了很多改進(jìn),包括:無(wú)需編碼,自動(dòng)解析接口及所需參數(shù),頁(yè)面創(chuàng)建接口自動(dòng)化測(cè)試用例;頁(yè)面直接填寫調(diào)用參數(shù),支撐多種參數(shù)類型;直接指定IP進(jìn)行服務(wù)調(diào)用。
在線性能壓測(cè)方面,實(shí)行了在線編輯性能壓測(cè)腳本;分布式集群壓測(cè)執(zhí)行調(diào)度,執(zhí)行結(jié)果實(shí)時(shí)統(tǒng)計(jì);Linux服務(wù)器資源在線監(jiān)控。
通過(guò)一系列的改進(jìn),給 質(zhì)量保證團(tuán)隊(duì)帶來(lái)的變化很明顯,比如:開(kāi)發(fā)測(cè)試比逐年提升,更多的開(kāi)發(fā)資源投入在產(chǎn)品研發(fā)上,支撐業(yè)務(wù)快速發(fā)展;測(cè)試資源通過(guò)高效的自動(dòng)化工具產(chǎn)品,提供分層自動(dòng)化測(cè)試套件進(jìn)行自動(dòng)集成;業(yè)務(wù)技術(shù)團(tuán)隊(duì)判斷是否需要測(cè)試人員接手人工測(cè)試;可以有不經(jīng)過(guò)手工測(cè)試的需求發(fā)布上線,但是不能沒(méi)有質(zhì)量數(shù)據(jù)監(jiān)控的需求發(fā)布上線。
阿里巴巴CI/CD之分層自動(dòng)化
一佛是阿里巴巴B2B事業(yè)群高級(jí)產(chǎn)品經(jīng)理。從事多年互聯(lián)網(wǎng)系統(tǒng)的研發(fā)和測(cè)試工作,目前主要負(fù)責(zé)云效分層自動(dòng)化測(cè)試的產(chǎn)品設(shè)計(jì)。因?yàn)樽詣?dòng)化測(cè)試在實(shí)踐過(guò)程中,總是碰到各種各樣的問(wèn)題,導(dǎo)致進(jìn)入自動(dòng)化測(cè)試盲區(qū)。所以,一佛就根據(jù)當(dāng)下環(huán)境并結(jié)合解決案例,來(lái)講解了如何把握分層自動(dòng)化的分層策略,如何將分層自動(dòng)化融入到項(xiàng)目流程中,如何做好自動(dòng)化測(cè)試等現(xiàn)實(shí)問(wèn)題。
自動(dòng)化誕生的背景,一佛說(shuō),手工測(cè)試的效率低下,尤其是發(fā)布頻繁的情況下,回歸量大,成本高,重復(fù)勞動(dòng),枯燥多。而自動(dòng)化之后,就可以替代重復(fù)勞動(dòng),N次測(cè)試,只需要投入一次就夠了。
但是自動(dòng)化也是有煩惱的,問(wèn)題就在于成本高(代碼能力、自動(dòng)化框架、IDE 準(zhǔn)備、調(diào)度、多環(huán)境),效果差(瀏覽器影響、執(zhí)行機(jī)影響、依賴環(huán)境影響、腳本健壯性不強(qiáng)),覆蓋率低(框架不萬(wàn)能、上下層難全、接口參數(shù)排列多),及時(shí)性低(代碼變更頻繁、遺漏的變更、項(xiàng)目結(jié)束才發(fā)現(xiàn))等等。
所以說(shuō),為了降低成本,提高準(zhǔn)確性,就要考慮降低人員成本、制作成本、運(yùn)維成本、運(yùn)行成本,同時(shí)擴(kuò)大覆蓋率、數(shù)據(jù)獨(dú)立、提供好的方法和腳本。當(dāng)然,就需要實(shí)行分層自動(dòng)化。
在阿里實(shí)踐分層自動(dòng)化就需要很多分層工具,包括配置管理Aton、UI測(cè)試的AUI、單元測(cè)試的Amon、環(huán)境管理的Aenv、接口測(cè)試SAT、性能測(cè)試Perf、集成自動(dòng)化Pre等。這里來(lái)介紹幾個(gè)革命性工具:
UI自動(dòng)化—AUI
- 創(chuàng)新型web-ui自動(dòng)化測(cè)試框架,無(wú)需安裝復(fù)雜底層環(huán)境和 IDE
- 創(chuàng)建和維護(hù)腳本,都無(wú)需接觸代碼,全部為 Web 頁(yè)面可視化使用
- 支持本地回放,支持云端執(zhí)行,解放機(jī)器,釋放雙手
- 支持項(xiàng)目持續(xù)集成,線上監(jiān)控等各種復(fù)雜場(chǎng)景
接口自動(dòng)化—SAT
- 可視化的接口測(cè)試,無(wú)需編寫代碼
- 支持普通接口調(diào)試和復(fù)雜后臺(tái)交互的接口測(cè)試的用例沉淀
- 支持主干,項(xiàng)目用例的沉淀與回歸
- 支持項(xiàng)目持續(xù)集成
性能壓測(cè)—Perf
- 基于 Jmeter 的性能壓測(cè)平臺(tái)
- 集腳本,場(chǎng)景,壓測(cè),監(jiān)控和報(bào)表為一體,可快速施壓的平臺(tái)
- 支持多種協(xié)議,適合 http,service 接口等測(cè)試
- 比 LoadRunner 易上手,更輕量
單元測(cè)試—Amon