歡迎大家前往騰訊雲+社群,獲取更多騰訊海量技術實踐乾貨哦~
Martech 程式碼變更遇上精細化測試的總結
需求背景:
敏捷模式下迭代頻繁,迴歸測試時總是不知道變動的範圍。Devlop 有的時候也不知道他改了哪些東西,影響到哪些節點,或者是很多人改的,彼此不知道。遇到有程式碼潔癖的,改了別人的程式碼,大家都不知道。通常情況是,要麼測試範圍定小了,遺漏了;要麼測試範圍過大,付出過多代價。每次迴歸,測試心裡總沒底,生怕漏了哪裡。如何才能準確定位到變更範圍呢?
專案測試過程的痛點:
1.迭代更新快,人力有限
2.多分支程式碼合入到主幹分支,修改哪個檔案哪個行,測試不可控。
3.程式碼更新影響哪些功能無感知
4.盲測,上線風險大
5.無法更加精準監控程式碼質量
6.不能做到高效精準,不可衡量ROI
解決方案:精細化測試探索
1流程圖:

2錄製自動化測試+phpcoverage 配合落地XDEBUG檔案,解析覆蓋率檔案,生成檔案-行號/函式-用例 對映關係表【phpcover_process.py】
XDEBUG_IP服務ip_DATE日期.txt 檔案如下:



3基於git diff 針對版本號之間的差異化分析.【git_diff.py】
2.1過濾相關檔案(phpunit,js,test檔案,vendor公共庫)
2.2記錄當前程式碼分支版本號(分支-舊版本-新版本-系統-環境)
2.3針對新版本號和舊版本號 檔案中行變化的明細入庫(版本號-檔案-舊行號-新行號-變更型別class fun)



4生成命中的測試用例【down_accurate_case.py】
原理圖:

待測json檔案

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



6統計精準測試效果資料統計【accurate_stat_image.py】

7.最新跑完的測試覆蓋率資料新增/更新/刪除 檔案-用例-行/函式 覆蓋率關係表,形成閉環為下次精準測試做鋪墊【phpcover_process.py】
總結
·精細化測試基於自動化覆蓋率到達一定量的基礎上去做比較有意義。
·通過這個探索能讓我們更加深入的去了解被測系統及架構,在保障質量的前提下,在不斷的版本迭代過程中更加高效、可靠、自信地制定合理的測試計劃和執行我們的測試工作。
·被測系統php 語言+ git程式碼管理,暫不包含js的精準性測試,測試解析語言:python。
問答
相關閱讀
安全報告 | 2018上半年網際網路惡意爬蟲分析:從全景視角看爬蟲與反爬蟲
此文已由作者授權騰訊雲+社群釋出,原文連結:https://cloud.tencent.com/developer/article/1158398?fromSource=waitui
歡迎大家前往騰訊雲+社群或關注雲加社群微信公眾號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~
海量技術實踐經驗,盡在雲加社群!