内容简介:敏捷模式下迭代频繁,回归测试时总是不知道变动的范围。Devlop 有的时候也不知道他改了哪些东西,影响到哪些节点,或者是很多人改的,彼此不知道。遇到有代码洁癖的,改了别人的代码,大家都不知道。通常情况是,要么测试范围定小了,遗漏了;要么测试范围过大,付出过多代价。每次回归,测试心里总没底,生怕漏了哪里。如何才能准确定位到变更范围呢?1.迭代更新快,人力有限2.多分支代码合入到主干分支,修改哪个文件哪个行,测试不可控。
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。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 推荐系统遇上深度学习(二十五)--当知识图谱遇上个性化推荐
- PyMiner 开源协议变更为 LGPL,技术变更为 PySide2
- 当算法遇上敏捷开发
- 当漏洞管理遇上威胁情报
- 当 WebAssembly 遇上 Serverless
- 当 Substrate 遇上传统业务应用
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Paradigms of Artificial Intelligence Programming
Peter Norvig / Morgan Kaufmann / 1991-10-01 / USD 77.95
Paradigms of AI Programming is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-......一起来看看 《Paradigms of Artificial Intelligence Programming》 这本书的介绍吧!