技术宝典 | ToB 业务场景下自动化测试的实践及探索
導(dǎo)讀:?在 ToB 業(yè)務(wù)快速迭代與新版本發(fā)布過程中,開發(fā)和 QA 提測面臨著大量人工測試場景。那么如何實(shí)現(xiàn)智能回歸測試,實(shí)現(xiàn)測試用例到代碼邏輯的精準(zhǔn)記錄和雙向追溯?如何能更高效的提升測試效率?這都是自動化測試平臺的重點(diǎn)探索。
文|趙沖
網(wǎng)易云信資深移動端開發(fā)工程師
背景
?業(yè)務(wù)場景的復(fù)雜化?
隨著 B 端方案交付場景增多,版本需要快速迭代。單端平臺的自動化已經(jīng)無法做到效率上的提升,人工回歸更多的是在主觀上去評價改動的影響面,為了確保版本的穩(wěn)定性,全量回歸測試的挑戰(zhàn)會拉長 B 端 SDK 和方案發(fā)布規(guī)劃。傳統(tǒng)的自動化測試校驗(yàn)結(jié)果只是單一性的校驗(yàn)。移動端的 API 和 UI 自動化場景復(fù)雜,新舊版本兼容性用例管理,腳本化實(shí)現(xiàn)用例管理效率較低。因此對于網(wǎng)易云信來說,基于移動端較全場景的多端互通平臺的測試是必不可缺的。
思考與挑戰(zhàn)
通過平臺抽象基礎(chǔ)能力,以插件化能力的方式支撐全流程自動化測試。
?
??執(zhí)行器鏈路環(huán)境?
-
用于運(yùn)行測試用例的執(zhí)行器信息;
-
用于運(yùn)行測試用例的執(zhí)行產(chǎn)物的構(gòu)建鏈路;
-
用于運(yùn)行測試用例的掛機(jī)測試設(shè)備被調(diào)度;
?云斷言規(guī)則?
-
執(zhí)行結(jié)果的校驗(yàn)根據(jù)規(guī)則全字端對比;
-
統(tǒng)一執(zhí)行結(jié)果的比較規(guī)則定義,以關(guān)鍵詞方式支持;
-
持久化斷言參數(shù),根據(jù)多端數(shù)據(jù)計算校驗(yàn)結(jié)果;
?元用例模型?
-
根據(jù)自動化生成接口元數(shù)據(jù)屬性,進(jìn)行基礎(chǔ)用例和 AI 用例推薦標(biāo)識;
-
根據(jù)碎片化復(fù)用組合和自定義用例,構(gòu)建業(yè)務(wù)場景模型;
-
多端多平臺用例參數(shù)上下游基于平臺持久化數(shù)據(jù)進(jìn)行;
-
執(zhí)行集模塊化配置資源包;
?結(jié)果統(tǒng)計模型?
-
執(zhí)行任務(wù)結(jié)果缺陷定位分類報告;
-
覆蓋率分析;
-
歷史數(shù)據(jù)聚合模型分析;
解決方案
結(jié)合背景和思考,自動化平臺的設(shè)計策略中包含了:執(zhí)行器鏈路環(huán)境、云斷言規(guī)則、元用例上下游,場景建模、覆蓋率分析、缺陷定位及報告。
?平臺架構(gòu)方案?
?元用例提取過程?
代碼自動化提取,映射對應(yīng)的基礎(chǔ)用例。
通過配置資源包和規(guī)則文件,結(jié)合工具解析待測產(chǎn)物,自動生成測試代碼和對應(yīng)的接口用例。在平臺上選擇待測元素的方法和自定義的屬性,組合成元用例。元用例的方法屬性是不可編輯的,它是精準(zhǔn)測試代碼的映射產(chǎn)物,后續(xù)構(gòu)建業(yè)務(wù)模型的基石就是基于用例的元數(shù)據(jù)。客戶端的接口無法像服務(wù)端這樣熱更新接口行為。發(fā)布出去的版本 API 一定是固定的接口行為。
?構(gòu)建業(yè)務(wù)模型?
細(xì)化場景業(yè)務(wù),做基線沉淀,提取測試執(zhí)行集。
?運(yùn)行鏈路流程?
結(jié)合 QA 本地調(diào)試的流程,本地調(diào)試用例的鏈路是需要支持自定義設(shè)備資源進(jìn)行調(diào)試用例。
?智能用例推薦?
真實(shí)用戶的持久化數(shù)據(jù)日志,通過關(guān)鍵詞日志鎖定用例鏈路執(zhí)行軌跡,生成對應(yīng)的用例。
?
?
實(shí)踐
縮短代碼完成和用戶反饋之間的時間,最大限度地降低正在進(jìn)行的工作的成本,這也是呈現(xiàn)代碼到客戶最終價值,需要更快更安全的交付版本,達(dá)到版本的最大收益。
?自動化的成本與收益(ROI)?
自動化的收益與迭代次數(shù)成正比,以下是個新產(chǎn)品的簡化公式:
自動化的收益 = 迭代次數(shù) * (全手動執(zhí)行成本 - 維護(hù)成本) - 首次自動化成本?落地項(xiàng)目?
目前在工程線解決方案和即時通信(IM1 和 IM2)落地實(shí)行。
?每日掛機(jī)測試?
通過上游 Job 完成構(gòu)建任務(wù),下游 Job 進(jìn)行自動化任務(wù)。不阻塞打包工程任務(wù)如果不能觸發(fā)上下 Job,可以在業(yè)務(wù)執(zhí)行 Pipeline 中寫入 node 節(jié)點(diǎn)執(zhí)行
未來展望
前期只是針對 ToB 業(yè)務(wù)解決方案領(lǐng)域中移動端多平臺探索實(shí)踐落地,后續(xù)希望能夠做到真實(shí)提效的同時,提高平臺的易用性和擴(kuò)展性。希望通過本文,能對其他團(tuán)隊(duì)有所啟發(fā),接下來的時間里一起繼續(xù)前行探索。
?作者介紹?
趙沖,網(wǎng)易云信資深移動端開發(fā)工程師,熱衷于研究跨平臺開發(fā)技術(shù)以及工程提效,目前主要負(fù)責(zé)視頻會議組件化 SDK 的相關(guān)研發(fā)工作
總結(jié)
以上是生活随笔為你收集整理的技术宝典 | ToB 业务场景下自动化测试的实践及探索的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 打造云上金融!网易云信入选「2021 数
- 下一篇: 网易云信再被列入Gartner最新发布的