您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[2023 DOIS DevOps 国际峰会 · 北京站暨 BizDevOps 企业峰会]:薛飞飞-精准测试的探索与实践 - 发现报告

薛飞飞-精准测试的探索与实践

AI智能总结
查看更多
薛飞飞-精准测试的探索与实践

资深测试开发工程师 01 02 目录Content 03 04 05 06 01 背景与目标 传统测试痛点 业务测试的现状 Ø黑盒功能测试受主观人为因素太大Ø大量的回归测试用例,回归成本高Ø测试质量无客观数据可衡量Ø自动化用例无法更有针对性的发挥其价值Ø过程中存在大量重复无效且盲目的工作Ø敏捷模式下测试效率低下 精准测试要解决的问题 n测什么 n测的怎么样 n用例怎么精简 Ø量化变更影响范围 Ø计算增量/全量覆盖率Ø定义有效覆盖率Ø辅助链路覆盖率 Ø建立用例和代码关联关系 02 精准测试核心理念什么是精准测试? 精准测试的定义 精准测试是一套软件测试辅助分析系统,通过对测试过程进行监控,将采集到的监控数据进行分析,得到精准的量化数据。利用这些数据促进测试过程的不断完善,形成度量及分析闭环,核心组件包括用例和代码的双向追溯、测试用例精简、测试用例自动生成等。 在测试用例执行过程中,自动建立任意运行模式的软件系统的用例和代码间高度关联的追溯机制,获取代码覆盖率并进行精准回归。 精准测试核心思想 逆向追溯 通过去被测服务上收集测试覆盖率(全量/增量),建立测试用例与代码的关联关系,根据直观的覆盖率数据评估“我测的怎么样” n正向追溯 通过对指定方法、版本或分支进行代码diff找出差异代码,根据全链路分析找出受影响的服务/接口/方法;同时依赖代码和用例的关联知识库确定用例回归范围,从而准确评估“我要测什么” n逆向追溯 正向追溯案例 •获取测试用例对应的代码覆盖率 •建立测试用例与代码的关联关系,可追溯到接口、方法、代码行级别 逆向追溯案例 •代码(接口、方法、代码行)与测试用例执行信息自动关联 •通过逆向追溯可以快速找到变更代码对应的测试用例范围,协助QA评估测试范围 精准测试的实现方案 覆盖率+代码分析+用例代码关联 精准测试整体方案 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 调用链路分析-案例 服务端-调用链路分析结果 服务端-覆盖率流程 覆盖率执行结果 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 服务端-有效覆盖率 当前痛点 “有效覆盖率” •历史冗余废弃代码多,去测试覆盖意义不大•全量代码量大,待覆盖范围广,很难有抓手•用例已覆盖的逻辑到底有没被真实业务走到?•到底还有哪些真实业务场景没有被用例覆盖? 真实业务关键逻辑追踪可视化 精准指导用例设计和测试覆盖,查漏补缺 辅助代码重构和冗余废弃代码治理 有效覆盖率效果 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 服务端-测试用例与代码关联方案 如何建立测试用例和代码之间的关联关系? 识别 在被测系统的入口处获取和识别到用例标识 传递 实现用例标识在程序节点间传递 服务端-测试用例与代码关联 移动端覆盖率 •插桩:配置、引入SDK•SDK:集成启动、收集、上报覆盖率功能、标识caseID•Server端:收集覆盖率文件,建立caseId与代码的映射关系,并持久化存储 覆盖率采集: •Android使用Jacoco•iOS使用LLVM 移动端-用例和代码关联 手动测试用例关联: 移动端-用例和代码关联 自动化测试用例关联: 精准测试应用场景 精准测试SDK 天玑平台 04 平台建设及收益平台架构设计 平台能力 精准测试平台收益 •核心服务平均全量行覆盖↑20%+•有效测试行覆盖提升40%左右 用 例 精 简 •通过用例聚合分析排除无效或重复用例,使全量用例集精简10%+ 拦 截 召 回 •通过发布卡点拦截和召回有效缺陷10+/月,缺陷逃逸率降低15%+ 赋 能 研 发 降 本 提 效 在商城、库存,交易,前台等多个大型技改项目中应用: •测试过程通过工具赋能,整体提效20%左右(测试分析、精简用例、减少无效的测试覆盖和回归动作等) •自动化:实现多个百万级代码工程的调用链路分析计算,准确率达到99%,分析效率在5分钟内•工具化:实现了老旧服务的微服务拆分和代码迁移,解决了之前完全靠人肉分析搬迁的动作,在这个点上研发提效50%+ 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 基于AIGC的精准测试探索 基于AIGC生成自动化测试用例 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 基于AIGC生成自动化测试用例 2.调用链路->自动化测试用例 1.prompt长度受限2.代码调用链较深时用例设计效果一般 2 0 2 3 D e v O p s国 际 峰 会暨B i z D e v O p s企 业 峰 会·北 京 站 06 未来演进 未来规划 Ø精准测试原子能力sdk的开源建设 Ø版本变更对全链路影响综合风险评估能力搭建Ø测试用例自动生成,健全用例知识库Ø多维信息融合建模的用例推荐算法 Ø结合chatGPT能力,探索精准测试流程新方向 Thanks DevOps时代社区荣誉出品