當代碼變動趕上精準測試的總結

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~php

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

Martech 代碼變動趕上精細化測試的總結

需求背景:

​ 敏捷模式下迭代頻繁,迴歸測試時老是不知道變更的範圍。Devlop 有的時候也不知道他改了哪些東西,影響到哪些節點,或者是不少人改的,彼此不知道。遇到有代碼潔癖的,改了別人的代碼,你們都不知道。一般狀況是,要麼測試範圍定小了,遺漏了;要麼測試範圍過大,付出過多代價。每次迴歸,測試內心總沒底,生怕漏了哪裏。如何才能準肯定位到變動範圍呢?python

項目測試過程的痛點:

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

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

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

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/dev...

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

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

相關文章
相關標籤/搜索