云效测评之测试提效

简介: 业务发展过程中都会不可避免的面临服务增长,应用负责度增加,可持续测试的难度不断增加。对于测试团队而言,一方面要应对不断膨胀的测试用例,维护成本越来越高,开发效率开始降低。

提升测试速度

分布式测试

核心思想是通过增加计算资源,并发的对测试Case进行执行,在执行后对测试结果进行解析合并,从而提升单次测试的执行速度。

分三个阶段执行

  1. 测试用例解析分发
  2. 分组测试用例执行
  3. 分组测试结果合并


image.png


分布式测试的本质是执行资源的堆叠,去换取更快的执行速度。理论上把每一个测试用例拆分到一个容器内执行,可以获得极致的反馈速度。但并不是所有场景下都适合采用分布式测试,比如用例之间存在依赖的。


精准测试

分布式测试很大程度上解决了测试执行速度的问题。但是在任何情况下都会全量执行用例的会存在一些问题:

  • 对计算资源的浪费
  • 引入大量的无效执行
  • 用例稳定性问题导致排查时间浪费


什么是精准测试

通过建立测试用例与业务方法的关联关系,在代码发生变化时,精准的推荐出需要运行的用例。通过精准的圈定测试范围,可以带来效率和速度的双重收益。


基本要素

  • 测试用例与应用代码方法关联关系的建立。定义为基线
  • 代码发生变更,根据基线中用例与应用代码方法的关联关系,准确推荐出变化的方法关联的测试用例变化的测试用例


如何建立测试基线

  • 通过字节码注入的方式,埋入trace调用,并在调用中传入用例与业务方法的签名。通过采集trace日志,拿到所有测试用例与方法调用链路,建立起用例与方法的关联关系。
  • 通过AST解析的方式


如何进行用例推荐

方法的变化通常是新增、删除、更新。

image.png

提高测试有效性

编写和运行测试用例能够有效的覆盖代码的逻辑,其中测试覆盖率是一个重要的抓手,通过测试覆盖率来暴露问题,并促进问题的解决。


通常自动化测试集存在单元测、手工测试、API测试、UI测试等不同类型

image.png

单元测试

对于单元测试而言,覆盖率数据产生在单测执行的机器上,我们会根据执行机上的原始代码信息,编译后的class信息,以及变更的代码信息,计算出单元测试的覆盖率报告。

image.png

手工/自动化测试

云效提供了一个覆盖率采集客户端和一个覆盖率报告计算解析的平台。当我们再任意测试平台触发任意类型的自动化测试时,会通知覆盖率平台与采集客户端进行交互,完成计算与报告。

image.png

增量覆盖率

某一次测试过程中,变化的代码的测试覆盖率情况。

变化的代码 = 被测分支代码与目标对比分支的diff

增量覆盖率 = 变化的被覆盖的代码行/变化的代码行

image.png



通过增量覆盖率的反馈,开发/测试人员可以针对性的去补充各类测试用例,尽可能的保障在各阶段存在的测试遗漏。

image.png


线上覆盖率

通常上线的业务会部署多个副本,为了减少风险,会在其中的少量副本上进行覆盖率采集,会生成线上覆盖率报告。通常认为被覆盖到的代码都是有效代码,而剩下那些长时间没有流量覆盖的代码,需要谨慎删除/重构


通过这种方式,可以去指导开发人员进行代码重构,完成代码瘦身。


相关实践学习
流水线运行出错排查难?AI帮您智能排查
本实验将带您体验云效流水线Flow的智能排查能力,只需短短1-2分钟,即可体验AI智能排查建议。
ALPD云架构师系列 - 云原生DevOps36计
如何把握和运用云原生技术,撬动新技术红利,实现持续、安全、高效和高质量的应用交付,并提升业务的连续性和稳定性,这是云原生时代持续交付共同面对的机会和挑战。本课程由阿里云开发者学堂和阿里云云效共同出品,是ALPD方法学云架构师系列的核心课程之一,适合架构师、企业工程效能负责人、对DevOps感兴趣的研发、测试、运维。 课程目标 前沿技术:了解云原生下DevOps的正确姿势,享受云原生带来的技术红利 系统知识:全局视角看软件研发生命周期,系统学习DevOps实践技能 课程大纲: 云原生开发和交付:云研发时代软件交付的挑战与云原生工程实践 云原生开发、运行基础设施:无差别的开发、运行环境 自动部署:构建可靠高效的应用发布体系 持续交付:建立团队协同交付的流程和流水线 质量守护:构建和维护测试和质量守护体系 安全保障:打造可信交付的安全保障体系 建立持续反馈和持续改进闭环
目录
相关文章
|
云安全 安全 小程序
等保测评|全面理解渗透测试
在数字化转型的大潮中,企业和组织纷纷拥抱互联网以拓展市场和服务客户,这不仅促进了业务发展,也带来了网络安全的新挑战。为了保护在线的机密文件和知识产权不受黑客攻击,渗透测试成为一种关键的安全评估手段。它通过模拟攻击来查找系统漏洞,帮助企业提前修补安全缺口。本文将介绍渗透测试的概念、必要性及主要执行方式,并探讨如何选择合适的测试服务机构,以确保企业的数字资产安全无虞。
|
5月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
6月前
|
测试技术
软考软件测评师大题——案例分析之白盒测试
历年下午案例试题一固定考察白盒测试,主要包含三大核心问题:推导逻辑条件、绘制控制流图及计算环路复杂度、确定线性无关路径集合。内容涵盖覆盖层级标准(语句、分支、判定、条件覆盖等)、控制流图构建规范(顺序、分支、循环结构转换原则)、环路复杂度计算公式以及线性无关路径生成方法。通过典型题型示例解析,如代码路径分析与验证指标,帮助考生掌握解题思路和技巧。
|
弹性计算 测试技术 持续交付
阿里云云效产品使用合集之如何进行自动化测试
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
Devops jenkins 测试技术
DevOps实践:持续集成与自动化测试的融合之道
【9月更文挑战第29天】在软件开发的快节奏竞赛中,DevOps如同一位智慧的舵手,引领着船只驶向效率与质量的彼岸。本文将揭开DevOps的神秘面纱,探索其核心理念如何通过持续集成(CI)和自动化测试的实践,实现软件开发流程的优化与加速。我们将一同见证代码从构思到部署的旅程,以及这一过程中的关键技术和工具如何协同工作,确保软件质量和交付速度的双重提升。
|
运维 Java Devops
阿里云云效操作报错合集之在流水线增加单元测试报错,是什么导致的
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
监控 搜索推荐 语音技术
测试使用SenseVoice大模型测评
测试使用SenseVoice大模型测评
382 4
|
运维 Devops jenkins
DevOps文化下的自动化测试实践
【7月更文挑战第17天】随着DevOps文化的兴起,自动化测试成为软件开发过程中不可或缺的一环。本文将深入探讨自动化测试在DevOps环境中的实施策略、工具选择和最佳实践,旨在帮助读者理解如何通过自动化测试提高软件交付的速度与质量。
|
弹性计算 运维 Java
解决方案测评(高效构建企业门户网站方案)基于ecs&云效&云解析DNS&VPC结合的自搭建方案报告
该文档是一个关于使用ECS、云效、云解析DNS和VPC结合的自搭建方案报告。主要内容包括前言部分,可能详细探讨了如何集成这些阿里云服务以构建自定义系统。由于提供的内容有限,具体的实施方案和细节未在摘要中体现。
424 2
|
域名解析 弹性计算 网络协议
阿里云云效企业门户网站部署解决方案全面测评
测评范围:账号注册、ECS实例创建、代码管理、流水线配置、域名解析。 优点: 注册登录简便,ECS创建直观,代码托管顺畅,云效项目创建与配置流程清晰,一键部署便捷。 改进点: 提供更多操作提示,增强新手引导,增加模板和最佳实践,优化大文件上传性能,完善容错机制。 结论: 云效提供高效企业门户解决方案,适合快速部署,需进一步优化高级功能和用户体验。