移動應(yīng)用APP開發(fā)搭建自動化測試框架經(jīng)驗(yàn)分享
大家好,我是陳哥。
今天,我邀請了禪道專欄作者劉軍,和我們分享一下移動應(yīng)用APP開發(fā)如何搭建自動化測試框架。
希望通過這些實(shí)操經(jīng)驗(yàn)?zāi)芙o大家?guī)硇碌膯l(fā)。
現(xiàn)在做移動應(yīng)用開發(fā),大家應(yīng)該都深有感觸:版本不僅要快,質(zhì)量還得高,這兩頭真是難兼顧。
我們團(tuán)隊(duì)之前就吃了不少苦頭,發(fā)版慢、需求老變、測試時間總被壓縮,搞得團(tuán)隊(duì)挺被動。
作為資深測試與研發(fā)效能IT老兵,今天我想結(jié)合自己負(fù)責(zé)的安卓APP自動化測試框架項(xiàng)目,聊聊怎么通過搭建自動化測試來提效。
這篇內(nèi)容特別適合正在帶團(tuán)隊(duì)、或者關(guān)心研發(fā)效率的中高層朋友參考,也希望能給同行一些啟發(fā)。
一、 項(xiàng)目背景與問題
1.版本發(fā)布實(shí)在是太慢了
我們團(tuán)隊(duì)的主打產(chǎn)品——Y移動應(yīng)用APP版本迭代需歷經(jīng)多環(huán)節(jié),從需求梳理到最終上線,周期漫長。
每個版本承載需求眾多,業(yè)務(wù)邏輯與功能模塊疊加,測試覆蓋難度指數(shù)級上升,拖慢整體節(jié)奏,產(chǎn)品市場響應(yīng)速度變慢,影響業(yè)務(wù)目標(biāo)達(dá)成。
版本計(jì)劃周期:
業(yè)務(wù)團(tuán)隊(duì)吐槽一個版本發(fā)布要2個月,還經(jīng)常延期,這個版本趕不上,就要等最少2個月,業(yè)務(wù)KPI完成面臨巨大壓力,所以拼命想趕上這個版本火車。
2.需求變得比翻書還快
市場變化快,用戶反饋多,老板還時不時插需求進(jìn)來。每次一改,測試用例就得跟著調(diào),范圍不好把控,漏測的情況時有發(fā)生。
不僅質(zhì)量容易出問題,測試和開發(fā)、業(yè)務(wù)之間的摩擦也越來越大,整個團(tuán)隊(duì)怨聲載道。
3.測試時間被壓得喘不過氣
開發(fā)延期成了常態(tài),測試時間自然被砍。最后要么帶著風(fēng)險(xiǎn)上線,要么緊急換包、重新灰度,耗時耗力。
每一次換包灰度,從起量到觀察質(zhì)量和業(yè)務(wù)數(shù)據(jù)最少要3天。人工測試在有限時間內(nèi)很難做深做全,質(zhì)量自然沒法保證,版本延期幾乎成了標(biāo)配。
二、我們的思路:死守質(zhì)量,從測試效率突破
值得慶幸的是,整個團(tuán)隊(duì)還是達(dá)成一致:質(zhì)量不能妥協(xié)。既然質(zhì)量不能放松,我們就決定在測試效率上找出路。
1.測試提速是硬道理
自動化測試最大的好處就是快。以前UI測試要人工點(diǎn)點(diǎn)點(diǎn),現(xiàn)在用腳本并行跑,核心流程像登錄、搜索、下載更新這些,原來幾小時的活,現(xiàn)在幾十分鐘搞定。
我們還把每個版本必測的功能整理成“版本checklist”,逐步把它們自動化,并集成到每天的CI流水線里,結(jié)果自動發(fā)郵件同步。
2.早點(diǎn)發(fā)現(xiàn)問題,越早越好
我們在框架里加入了日志抓取和異常監(jiān)控,問題定位更準(zhǔn)。接口自動化也能實(shí)時校驗(yàn)參數(shù)和返回結(jié)果,比人工抽樣檢查更全面,一些隱藏的數(shù)據(jù)格式錯誤、權(quán)限漏洞提前就能逮住。
還有就是重點(diǎn)接口我們會跑自動接口撥測,調(diào)整合適的頻率(要考慮生產(chǎn)環(huán)境的壓力和我們自己客戶端的調(diào)用情況),監(jiān)控生產(chǎn)環(huán)境重點(diǎn)接口是否正常,一旦有問題,我們可以做到比大部分用戶提早知道,即使處理或?qū)崿F(xiàn)降級服務(wù),避免造成大面積用戶投訴。
3.能復(fù)用的絕不重寫
我們把測試用例按場景和模塊拆清楚,基礎(chǔ)功能比如登錄注冊這類,新版本稍微改改參數(shù)就能接著用。新需求來了,只要不是全新場景,就把關(guān)聯(lián)的老測試用例拎出來一起回歸,省時省力。
4.選對工具,自己也要寫點(diǎn)代碼
工具方面,UI測試用Appium跨平臺,接口用Postman輔助,CI/CD靠Jenkins調(diào)度。同時我們也自己做了框架優(yōu)化,支持參數(shù)化、多環(huán)境配置,配合云測平臺做機(jī)型兼容,把覆蓋面打開。

三、我們是怎樣一步步落地的
光靠一招不行,得從人、流程、工具、組織四個維度系統(tǒng)推進(jìn)。
1.人:測試和開發(fā)得擰成一股繩
我們補(bǔ)強(qiáng)了測試開發(fā)角色,讓他們專攻腳本和框架。同時推動測試早期參與需求評審,開發(fā)也參與測試showcase,打破不同角色各干各的隔閡。
2.流程:把自動化嵌進(jìn)每個環(huán)節(jié)
測試和開發(fā)協(xié)商一致,開發(fā)在轉(zhuǎn)測時,會提交修改范圍和建議測試范圍信息,作為測試的輸入。
新需求在showcase產(chǎn)品體驗(yàn)完成后,功能測試在開發(fā)分支執(zhí)行,設(shè)定清晰準(zhǔn)入準(zhǔn)出標(biāo)準(zhǔn):測試通過(功能點(diǎn)覆蓋率、缺陷率達(dá)標(biāo) )且灰度驗(yàn)證(小范圍用戶試用,采集性能、體驗(yàn)數(shù)據(jù) )后,代碼方可合入主分支。
代碼合入主干后,會觸發(fā)每日主干構(gòu)建+回歸測試。這樣形成“分支測試-主干集成-修復(fù)-灰度”的閉環(huán),減少人為漏洞。
3.工具和技術(shù):不追求高大上,但要扎實(shí)好用
除了前面提到的工具鏈,我們還針對不同機(jī)型和系統(tǒng)做了兼容性測試設(shè)計(jì),使用云測平臺,盡量覆蓋Top50用戶手機(jī)(手機(jī)型號+安卓版本)真實(shí)場景。
4.組織:明確責(zé)任,定期對齊
我們成立了自動化測試專項(xiàng)小組,開發(fā)有專人負(fù)責(zé)主干crash修復(fù)和框架規(guī)劃。每周組織跨團(tuán)隊(duì)例會,同步進(jìn)度和風(fēng)險(xiǎn),業(yè)務(wù)團(tuán)隊(duì)也深度參與評審和灰度驗(yàn)收,每月組織回顧會議,確保自動化方向不跑偏。
四、幾個關(guān)鍵實(shí)踐,效果很明顯
1.測試前置,從分支就開始卡質(zhì)量
新需求在開發(fā)分支就完成功能測試和灰度驗(yàn)證,達(dá)標(biāo)后才允許合入主干。質(zhì)量門禁前移,主干干凈多了。
2.主干每日構(gòu)建,自動化測試常態(tài)化
每天自動跑版本checklist的自動化用例,覆蓋功能、兼容、性能。有人專門盯主干問題,24小時內(nèi)響應(yīng),為主干穩(wěn)定性護(hù)航。
3.灰度和測試形成閉環(huán)
分支測試通過后,跟著灰度發(fā)布走,收集真實(shí)用戶數(shù)據(jù),補(bǔ)足自動化沒覆蓋的體驗(yàn)細(xì)節(jié)。我們還建了粉絲體驗(yàn)群,發(fā)點(diǎn)獎勵鼓勵反饋,把用戶聲音轉(zhuǎn)化成測試補(bǔ)充。

五、做完之后,效果怎么樣
1.測試效率真的上來了
版本測試周期從平均20天壓到12天,自動化執(zhí)行占比達(dá)到60%,核心回歸時間縮短70%。測試同學(xué)能更專注復(fù)雜場景和新功能,缺陷發(fā)現(xiàn)也提前了40%。
2.質(zhì)量穩(wěn)了,大家也更有信心
通過3個月觀察,上線缺陷率降了65%,核心功能crash率控制在0.1%以內(nèi)。業(yè)務(wù)對測試更信任,團(tuán)隊(duì)摩擦減少,用戶滿意度里“穩(wěn)定性”評分漲了18個百分點(diǎn)。
3.團(tuán)隊(duì)氛圍不一樣了
這一套措施下來,團(tuán)隊(duì)人還是一樣的人,但是工作效率和團(tuán)隊(duì)氛圍不一樣了,流程更標(biāo)準(zhǔn),協(xié)作更透明。測試開發(fā)同學(xué)成長路徑清晰,技術(shù)分享也多了起來。管理者在做資源投入時有數(shù)據(jù)支撐,效率提升反過來推動了業(yè)務(wù)發(fā)展,形成良性循環(huán)。
六、最后說幾句
自動化測試不是可選項(xiàng),而是移動應(yīng)用開發(fā)的必答題。從問題定位到落地執(zhí)行,離不開管理層的支持和資源投入。后面我們還想試試AI在測試中的應(yīng)用,比如自動生成測試用例、一鍵提交bug、缺陷分類,讓自動化往智能化的方向再走一步 。
專欄作者:劉軍
20多年項(xiàng)目管理經(jīng)驗(yàn),做過CMMI咨詢、項(xiàng)目總監(jiān)、敏捷教練,以前在騰訊擔(dān)任過項(xiàng)目通道評委和面試官,也是P11級的交付和研發(fā)項(xiàng)目經(jīng)理,拿過騰訊名品堂。
后來在游戲公司帶PMO,推動過400多人同時開發(fā)一款游戲的大規(guī)模敏捷,搭建美術(shù)生產(chǎn)線,年流水做到20億以上。

浙公網(wǎng)安備 33010602011771號