RadarTest精准测试-基于测试用例与代码追溯的白盒测试解决方案

编程有点难不难 2024-10-30 12:08:57

测吧(北京)科技有限公司是一家专注于为企业提供软件测试服务的公司,致力于通过专业的测试解决方案帮助企业提升软件质量和用户体验。公司核心业务包括企业内训、人员外包、技术咨询、测试工具与测试平台等业务。公司成立于 2017 年,凭借专业的技术能力已经为行业多家公司提供了技术服务。

人员外包

支持人员制、项目制不限项目周期长短价格6K~30K,提供不同级别的测试人员

技术咨询

定制解决方案协助企业落地实践提供专业技术培训

测试工具与测试平台

AI 智能测试工具测试管理平台自动化测试平台性能测试工具精准测试平台解决方案-RadarTest 精准测试平台

核心功能及可化效果-RadarTest 精准测试 平台

精准测试系统核心功能

代码调用链路分析及可视化代码覆盖率统计及可视化测试用例与代码的追溯关系基于代码变更的用例推荐

代码变更自动感知

采用无侵入方式的插桩方案,通过agent在服务运行时动态插桩,测试包与生产包完全一致支持java微服务架构;支持移动端Android、iOS支持CI/CD流水线打通,研发每次MR自动触发代码Diff以及调用链路分析,并将分析结果通知代码提交人

代码调用链路分析

采用多种调用链路分析,包括静态调用链路、动态调用链路、跨服务调用链路分析支持全量、增量以及指定模式的链路分析支持按分支对比、按提交版本对比支持HTTP、RPC接口类型支持GIT、SVN代码仓库

代码调用链路分析可视化

改动方法:包括变更类型、是否影响接口、方法圈复杂度以及影响接口详情受影响接口:接口类型、变更类型、关联的变更方法数量、影响链路数跨服务影响接口:影响的服务和接口信息支持方法、接口以及全部变更的链路展示

代码调用链路分析可视化

支持树型、列表型的调用链路展示

代码覆盖率采集和分析

支持多应用多环境的覆盖率同时采集支持全量、增量覆盖率统计支持覆盖率自动合并、移动端覆盖率多版本合并支持方法级的覆盖率合并生成报告可关联需求,从而统计需求覆盖率支持java、移动端Android/iOS、前端JS的覆盖率

代码覆盖率指标可视化

全量及增量覆盖率报告

覆盖率报告详情

代码覆盖率指标可视化

需求覆盖率

测试人员覆盖率

增量行覆盖率趋势图

全量行覆盖率趋势图增量行覆盖率散点图

测试用例与代码的双向追溯

提供OpenAPI与已有的测试用例管理平台、自动化测试平台对接支持手工测试用例、自动化测试用例与代码的关联提供浏览器插件用于手工测试用例与代码关联,并且与测试执行计划打通支持代码、用例的自动打标,对正向追溯结果可人工标记过滤

追溯关系可视化效果

正向追溯

逆向追溯

基于代码变更的测试用例推荐

基于MR自动推荐回归测试用例使用多维度代码特征和推荐算法,对推荐测试用例进行排序和去重,从而给出最精简的回归用例集合支持人工补充测试用例、圈选人工回归用例集合,通过推荐召回率、准确率与测试用例管理平台、自动化测试平台对接,可自动创建测试执行计划

基于代码变更的测试用例推荐

测试用例推荐结果示例

对于推荐的测试用例集合,可查看测试用例与代码关联的详细信息;召回率:100%准确率:>80%筛选率:>50%

测试分析报告

每一轮回归测试完成后自动生成测试报告,包括变更分析、用例推荐及执行结果、测试覆盖率结果,以及方法/接口覆盖率详情。

RadarTest 精准测试平台-价值收益与应用场景

提升测试效率:回归测试效率提升50%以上

减少盲目的大范围回归准确评估影响范围和测试范围

保障业务质量:测试增量覆盖率80%以上,线上问题漏测率减少50%

测试效果可度量,测试管理有依据指导测试用例补充,减少漏测

提升问题定位效率:问题定位效率提升80%

失败用例快速定位到关联代码解决bug难复现的问题

建立数字化度量体系:赋能团队能力

赋能开发:废弃/冗余代码发现赋能测试:流水线准入卡点、黑盒测试向白盒测试转型

应用场景 - 研发提测阶段

针对变更的调用链路分析的评估影响范围相比人工评估更全面。

此次变更改动了相对底层的流程引擎相关代码,这次修改受影响的不知常用的发起接口,还有一些特殊场景下的外部发起接口。链路分析结果比研发提测给出的接口更全面。

应用场景 - 功能测试阶段

覆盖率统计可以持续采集新功能测试阶段的覆盖率,根据未覆盖代码增补测试用例,直至增量覆盖率达到质量卡点目标。

根据第一轮增量测试覆盖率结果,排查未覆盖到的方法、分支,补充针对性的测试用例,增加5个测试用例后第二轮的测试覆盖率明显提升,补充用例示例:

补充case1,覆盖新增接口补充case2,覆盖其中的某个变更方法补充case3,覆盖方法中的某个分支补充case4,覆盖方法中的特定分支一些其他异常场景case

应用场景 - 回归测试阶段

用例推荐用于在集成测试或者回归测试阶段针对历史功能推荐出最小范围的回归用例集合,节省回归测试人力,提升回归测试效率。

由于此次修改较为底层,人工评估需要回归所有流程引擎的重要功能case共57条;且57条回归测试用例已提前完成录制关联,在集成测试阶段使用精准测试推荐出的回归测试用例21条,提升测试效率63%,且测试覆盖率不降低

和改动影响无关的case不推荐覆盖相同变更的case不推荐覆盖调用链路有包含关系的case仅推荐关联最长链路的case客户案例某银行客户案例

实施策略:

由于客户现场测试资产已经沉淀多年,历史项目比较多,优先选取质量要求高且敏捷迭代的项目进行落地,第一阶段首先应用精准测试的覆盖率功能,迭代版本增量覆盖率指标80%以上;第二阶段在重点项目推进接口自动化测试覆盖,逐步将接口自动化用例的覆盖率由原先的无统计提升到85%以上,并将接口自动化与精准测试系统对接,同时集成到CI流水线准入;第三阶段将测试平台与精准测试系统对接,建立测试用例与代码的关联关系,在回归测试阶段进行测试用例推荐,从而提升回归测试效率;最后将精准测试集成到DevOps体系工具链中,形成研发测试过程全闭环 。

验证系统:

银行核心系统,CS架构,柜面服务端调用核心系统,主要验证核心系统的测试覆盖率;使用手机银行客户端做用例录制和服务端用例推荐;

定制化开发:

问题1:C端柜面机访问柜面服务端,经过多级请求跳转,再到核心系统服务端,会导致请求header中的traceid信息丢失,无法获取调用链路信息;改造方案:通过伪装业务参数传递traceid,然后精准测试agent拦截并解析traceid,最终获取调用链路信息和用例与代码的追溯关系问题2:测试人员PC和测试手机不在一个网络,且不允许PC和手机连线,导致PC端的浏览器插件和测试手机无法通信,手机端无法进行用例录制;改造方案:PC端的浏览器插件和精准测试平台通信传递traceid,手机端仅和精准测试平台通信获取对应的traceid,实现用例录制功能;

配合支持:

研发配合做业务参数修改、和jekins打包平台打通;应用启动的配置修改;测试配合做用例录制和功能验证;

效果收益1:

在新核心项目迭代过程中,经过近半年时间20多个版本的迭代,基于精准测试平台的覆盖率分析能力,增量代码行覆盖率由20%提升到90%以上,增量代码分支覆盖率由10%提升到75%以上。

效果收益2:

持续更新测试用例与代码的关联,在日常迭代的回归测试环节使用精准测试平台的用例推荐能力,回归测试阶段的人力成本节省50%。

零售行业客户案例

客户背景:

世界500强的日用消费品公司,其产品包括个人护理、家居护理、美容和个人卫生等多个领域;其信息技术部门负责内部系统的开发和运维,包括部分自研系统和部分外采系统,随着更多的外采系统逐步转向自研,系统迭代的速度越来越快,对于系统质量的要求也越来越高;对于外采系统有单元测试覆盖率80%的要求,但仍然经常出现线上故障问题;

关注目标:

外采系统和自研系统的单元测试、功能测试的增量代码覆盖率

实施策略:

第一阶段首先应用精准测试的覆盖率功能,从全量覆盖率要求转向增量覆盖率要求,迭代版本增量覆盖率指标80%以上;第二阶段和自建的接口自动化平台对接,逐步提升接口自动化的覆盖,核心服务的增量覆盖率由原先的无统计提升到 80%以上;

验证系统:

GI、CRM、DSTC等java服务系统;测管平台使用jira接口自动化平台自研开发

定制化开发:

问题1:客户服务部署在k8s里,同时对外接口被屏蔽了,不能对接现有k8s系统,导致无法通过主动连接被测试服务获取覆盖率数据;改造方案:被测服务定时推送覆盖率文件,同时服务器端定时合并覆盖率数据;问题2:客户有项目使用svn作为源码管理,导致系统无法获取源码、对比增量代码;改造方案:增加SVN的支持,完整适配系统功能;

配合支持:

运维配合进行微软云服务环境的联调和验证;测试配合做jira系统、接口自动化测试平台对接,项目迭代需求测试和覆盖率功能验证;

效果收益1:

在自研CRM项目迭代过程中,经过3个月多个版本的迭代验证,基于精准测试平台的覆盖率分析能力,增量代码覆盖率由20%提升到90%以上,增量代码分支覆盖率由10%提升到75%以上;线上问题数量减少30%

效果收益2:

在外采DSTC项目迭代过程中,经过3个月多个版本的迭代验证,单元测试的增量代码覆盖率由50%提升到80%以上,功能测试的增量代码覆盖率从无统计到80%以上;外采系统的验收问题减少50%

0 阅读:2

编程有点难不难

简介:感谢大家的关注