當代碼變更遇上精准測試的總結


歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐干貨哦~

本文由elyyan 發表於雲+社區專欄

Martech 代碼變更遇上精細化測試的總結

需求背景:

​ 敏捷模式下迭代頻繁,回歸測試時總是不知道變動的范圍。Devlop 有的時候也不知道他改了哪些東西,影響到哪些節點,或者是很多人改的,彼此不知道。遇到有代碼潔癖的,改了別人的代碼,大家都不知道。通常情況是,要么測試范圍定小了,遺漏了;要么測試范圍過大,付出過多代價。每次回歸,測試心里總沒底,生怕漏了哪里。如何才能准確定位到變更范圍呢?

項目測試過程的痛點:

1.迭代更新快,人力有限

2.多分支代碼合入到主干分支,修改哪個文件哪個行,測試不可控。

3.代碼更新影響哪些功能無感知

4.盲測,上線風險大

5.無法更加精准監控代碼質量

6.不能做到高效精准,不可衡量ROI

解決方案:精細化測試探索

1流程圖:

img整體架構圖

2錄制自動化測試+phpcoverage 配合落地XDEBUG文件,解析覆蓋率文件,生成文件-行號/函數-用例 映射關系表【phpcover_process.py】

XDEBUG_IP服務ip_DATE日期.txt 文件如下:

img一個case涉及到的文件遍歷明細

img1個api->n個file->line_no集合->n個testcase集合

img1個api->n個file->n個functionName->n個testcase集合

3基於git diff 針對版本號之間的差異化分析.【git_diff.py】

2.1過濾相關文件(phpunit,js,test文件,vendor公共庫)

2.2記錄當前代碼分支版本號(分支-舊版本-新版本-系統-環境)

2.3針對新版本號和舊版本號 文件中行變化的明細入庫(版本號-文件-舊行號-新行號-變更類型class fun)

imgdiff 文件

img項目-分支-舊版本-新版本-環境

img版本號修改的文件(文件,舊行號,新行號,類,函數名,系統)

4生成命中的測試用例【down_accurate_case.py】

原理圖:

img

待測json文件

img生成需要執行的apiList 對應的caseId

5插樁-自動化測試(指定case_id順序執行)-缺陷數量回寫DB【accurate_runcase.py】

img自動化測試執行日志

img版本-執行的api-數據統計(執行數-發現bug數)

img生成自動化測試報告

6統計精准測試效果數據統計【accurate_stat_image.py】

img精准測試報告

7.最新跑完的測試覆蓋率數據新增/更新/刪除 文件-用例-行/函數 覆蓋率關系表,形成閉環為下次精准測試做鋪墊【phpcover_process.py】

總結

·精細化測試基於自動化覆蓋率到達一定量的基礎上去做比較有意義。

·通過這個探索能讓我們更加深入的去了解被測系統及架構,在保障質量的前提下,在不斷的版本迭代過程中更加高效、可靠、自信地制定合理的測試計划和執行我們的測試工作。

·被測系統php 語言+ git代碼管理,暫不包含js的精准性測試,測試解析語言:python。

問答

單元測試調試

相關閱讀

安全報告 | 2018上半年互聯網惡意爬蟲分析:從全景視角看爬蟲與反爬蟲

安全報告 | SSH 暴力破解趨勢:從雲平台向物聯網設備遷移

給你的CVM安裝一個面板吧!

此文已由作者授權騰訊雲+社區發布,原文鏈接:https://cloud.tencent.com/developer/article/1158398?fromSource=waitui

歡迎大家前往騰訊雲+社區或關注雲加社區微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐干貨哦~

海量技術實踐經驗,盡在雲加社區


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM