当前位置:首页 > 报告详情

5-基于代码链路分析的测试降本增效-微众银行-尹小芳.pdf

上传人: 2*** 编号:135197 2023-07-09 25页 3.48MB

1、基于代码链路分析的测试降本增效尹小芳自我介绍20112012 百度(北京)凤巢 ctr模型和竞价排名测试开发20122014 百度(深圳)国际化杀毒测试开发2014至今 微众银行微粒贷测试经理,贷款科技部门测试专家尹小芳背景&痛点解决思路应用收益&效果未来展望背景&痛点竭尽全力,但一上线还是有缺陷 不知道有这种场景?不知道影响了此场景?准生产回放 数据量超级大,diff多怎么办?只有1天切片,场景丰富吗?选择性回放 成本和质量的取舍结果是血的教训 半年漏出缺陷历史占比62%你有遇到这种纠结情况吗?解决思路我们的解决方案把线上场景走过的代码分支路径做采集,每个场景的代码路径(单系统内)称为一个场

2、景码,根据线上场景码在测试环境做案例补充,日积月累线上发生的场景能实时采集吗能反哺测试环境吗解决方案概览场景码自动采集器 实现了一套对测试场景的编码算法,该算法能将交易的代码分支链路编码为32位bits的场景码,相同特征的交易具备相同的场景码 对于java应用,该算法将以javaagent形式插入分支跟踪的字节码,挂载到应用系统。在系统运行过程中采集每一笔交易的场景码,最终汇总到场景码分析平台场景码分析平台 空白分支分析/空白场景码分析 精准推荐 剔除重复测试场景、场景码自动采集原理控制逻辑则可以理解为交易执行的代码链路,链路由代码经过的分支串联构成,链路不同则说明交易场景不同交易场景码=对分

3、支链路的编码(sim-hash)交易一链路:1-2-4 010101010100交易二链路:1-3-4 01010101010112431243采集场景码遇到的挑战1 不同的分支类型IfWhileFor2 交易链路可能会中断异步线程存储转发3 不同系统属性联机系统批量系统为啥要降维没关系的函数,为啥非要做组合?!为啥要降维链路长,高度敏感!参数不一致下游影响本来无关的数据形态影响场景码覆盖率低的原因如何降维 场景码降维-从多维到一维/二维/三维的试探主要算法主要算法:在试探过程中,我们把每个函数看成一个独立个体,单个函数内的分支组合,和两个个体的组合实验数据实验数据 一层函数 60%二层函数

4、37%三层函数 24%效果效果 能以此让测试人员补充场景吗?如何降维 场景码降维算法-血缘函数场景码主要算法:1 通过静态代码分析每个函数分支使用的变量做血缘分析,追溯修改该变量的函数(追溯多层),从而建立函数和函数之间的血缘关系2 场景码降维重构:线上依然采集单系统内交易全分支场景码,再根据函数血缘关系切割成新的场景码效果数据原始场景码原始场景码降维后场景码降维后场景码场景码数量347712293测试覆盖率6%49%12345678910应用目标补充回归案例裁剪重复案例推荐精准案例应用之一 补充回归案例 一期按空白分支补充A(int a,int b)if()if()B(int a1,int

5、b1)if()if()A(int a,int b)if()if()B(int a1,int b1)if()if()生产环境覆盖分支测试环境覆盖分支空白分支,热度N N特点:知道生产分支热度,按优先级补充案例应用之一 补充回归案例 能轻松补充吗?知道分支含义真正进入此分支如何构造数据?如何快速补充?十万八千里应用之一 补充回归案例p 目标:提供相似场景已有的信息,让测试人员更直观构造空白分支的数据p 主要算法:1 找同一接口离空白分支最近的场景码,最近的判断优先找同一行数最近已覆盖分支2 若未找到,则沿着调用关系找最近2.相似场景1 代码链路2 自动采集特征1)自动化案例和接口名称2)使用的数据

6、形态名称3)关联的功能点4)案例验证点3 人工标识的场景标签已有的场景3.差异分支空白分支代码链路人工分析并转成自动化案例1.生产导出代码链路到分析平台4.构建案例 找相似场景应用之一 补充回归案例 二期 补充组合场景空白分支补充完生产环境血缘函数场景码补充组合场景应用之二 裁剪案例和精准推荐 建立案例与场景码关系库案例1案例2案例4案例3案例5场景码1场景码2场景码3变更代码块代码分支案例和场景码关系库精准推荐每个自动化案例都通过场景码做标识,每次代码的变更识别出变更的分支

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
尹小芳在2011至2014年间于百度担任测试开发工作,之后加入微众银行微粒贷,担任测试经理和贷款科技部门测试专家。她提出了一种基于代码链路分析的测试方法,旨在降低测试成本并提高效率。该方法通过采集每个交易的场景码,实现对线上发生场景的实时采集,并反哺测试环境。场景码自动采集器能将交易代码分支链路编码为32位场景码,而场景码分析平台可以进行空白分支分析和精准推荐,剔除重复测试场景。此外,通过降维算法,将多维场景码转化为一维、二维或三维,有效提高了测试覆盖率。该方法已成功应用于补充回归案例和裁剪重复案例,实现了线上100%分支覆盖,并增加了组合场景,显著降低了测试成本。未来,这一技术有望应用于运维工作,实时采集并识别遗漏场景。
"如何通过场景码提高测试覆盖率?" "如何利用血缘函数降维场景码?" "场景码技术在微众银行微粒贷的应用效果如何?"
客服
商务合作
小程序
服务号
折叠