专栏名称: 腾讯云加社区
目录
相关文章推荐
河北交通广播  ·  【992 | ... ·  8 小时前  
CINNO  ·  苹果 iPhone 16e 一文汇总:升级 ... ·  2 天前  
河北交通广播  ·  注意!此路段高速今天起收费有调整~ ·  昨天  
河北卫视  ·  城市烟火 ... ·  3 天前  
河北交通广播  ·  今年首次!降价! ·  3 天前  
51好读  ›  专栏  ›  腾讯云加社区

当代码变更遇上精准测试的总结

腾讯云加社区  · 掘金  ·  · 2018-08-01 05:37

正文

阅读 32

当代码变更遇上精准测试的总结

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由 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涉及到的文件遍历明细

img
1个api->n个file->line_no集合->n个testcase集合

img
1个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)

img
diff 文件

img
项目-分支-旧版本-新版本-环境

img
版本号修改的文件(文件,旧行号,新行号,类,函数名,系统)

4生成命中的测试用例【down_accurate_case.py】

原理图:

img

待测json文件

img
生成需要执行的apiList 对应的caseId

5插桩-自动化测试(指定case_id顺序执行)-缺陷数量回写DB【accurate_runcase.py】

img
自动化测试执行日志

img
版本-执行的api-数据统计(执行数-发现bug数)







请到「今天看啥」查看全文