测试一直是软件研发过程质量的重要保障,而在传统研发模式中,测试活动总是处于软件生命周期中相对滞后的环节。随着DevOps 模式在软件行业的推广落地,更频繁的交付进一步加重了业界对测试的担忧,测试不够高效往往成为导致交付延期的首要原因,测试环节也就成为了企业进行 DevOps 转型的最大瓶颈。
为了应对这样的挑战,“持续测试”概念被提出并慢慢成为了业界的必然追求。在 DevOps 过程中,持续测试提供了持续的反馈机制,在整个产品交付管道中充当催化剂,每个阶段的自动反馈确保缺陷在开发过程的早期就能被解决。
本篇文章将重点分享,长亮科技研发协同管理平台在DevOps的“持续测试”阶段,如何助力企业尽快获得软件发布业务风险的反馈。
依靠技术积累打造一体化持续测试平台
作为在测试领域落地DevOps实践的载体,持续测试是一项基础和持续的活动,应该贯穿于整个软件交付周期之中。对比在DevOps时代陷入困境的传统测试模式,持续测试首先要改变的是“测试后置”的状况,强调测试前置,通过尽早定义测试、测试与开发并行、在过程中保持紧密协作,从而实现快速反馈业务风险的目的。
围绕“通过持续测试获得效率提升”的终极目标,长亮科技MOne产品团队打造的一体化持续测试平台MOne Test,通过强大的测试管理功能,助力研发团队将测试作为基础活动贯穿于软件交付的整个过程中,大大缩短软件交付周期,让测试和研发同步迭代,实现持续测试,帮助团队将注意力回归高质量交付。
n全生命周期:能够覆盖从测试计划到测试执行、测试报告分析的不同阶段;
n丰富的团队协作:支持不同规模的测试团队,提供了满足团队协作和流程自动化的所有功能;
n持续测试:能将测试流程融入持续交付和 DevOps 体系;无缝对接缺陷管理工具(JIRA、MOne Project)和持续集成工具(Jenkins、MOne Pipeline)等;
n一体化:涵盖测试用例管理评审执行、接口WEB自动化、故障演练、性能测试(兼容JMeter原生jmx脚本)等功能;
在 MOne test中实践迭代内的持续测试
测试过程一般包括用例设计、用例评审、测试执行、测试报告这几个环节。MOne Test一体化持续测试平台在过程中增加了测试与其他角色的协作和反馈,同时打通了与项目管理平台的数据交互,目的是通过产品能力来帮助团队固化实践经验,从而实现迭代内的高效测试。
Ø高效组织与管理测试用例:在左侧树形结构的用例库中轻松组织用例,测试人员可灵活复用测试用例组建用例评审和测试计划,大大提升工作效率;
Ø对接主流的项目管理平台:例如JIRA、MOne Project等,测试用例可以快速的关联需求、缺陷,同时在测试用例执行过程中,可快速创建缺陷并同步至第三方缺陷平台;
Ø丰富的在线协作:团队中多种角色同时参与用例评审、用例执行中,工作状态实时同步,交叉测试避开重复工作,信息高效同步,不必依赖喊话。
高效测试需要以自动化为实践基石
在DevOps的高频交付场景下,团队该如何提升测试的执行效率?我们首先会想到的是自动化测试。可以说,自动化测试是持续测试的基础,只有自动化程度足够高,才能够满足持续交付的高频发版需求。
当前,大多数测试工具都是采用开源的接口自动化框架或者开源的接口测试工具,以实现接口自动化,例如:Postman、JMeter。但这种方式维护成本较高,并且缺少批量执行的功能,无法满足快速验证的需求。
MOne Test一体化持续测试平台,在设计上充分参考开源工具的页面布局,上手简单,并且支持批量执行,可实现“零代码”接口自动化。
Ø丰富的参数传递,满足数据构造的需求
参数类型主要有以下几种:
n参数构造器(快速生成用于测试的数据,例如:随机数、时间戳、身份证号码等)
n公共参数(将脚本中公共的数据统一放到公共参数统一管理,便于维护)
n步骤参数(可以快速引用之前步骤返回的数据,支持引用不同类型步骤返回的数据)
n交易数据(跨脚本之间的数据引用,以满足复杂的银行业务场景)
n项目环境变量(脚本执行时,可以通过项目环境(测试、SIT、UAT)的切换,快速变更脚本URL、公共数据,实现同一个脚本覆盖不同的运行环境)
Ø灵活的场景编排:支持使用API、API模板、数据库查询(MySQL、Oracle、PostgreSQL)、JavaScript脚本等步骤的相互组合,共同完成复杂业务场景的接口测试;
Ø支持批量执行,执行过程全程可视化:脚本执行步骤中每一个API请求(请求头、请求体、响应头、响应体、断言)都会被记录;执行失败以后,会醒目标记失败步骤,显示失败原因;
Ø将自动化测试能力融入DevOps体系:提供Jenkins插件,通过API key鉴权以后可以直接调度测试平台的批量任务;自研MOne Pipeline提供针对工具的操作步骤,轻松实现一键自动部署测试。
MOne Test助力某银行系统的接口自动化建设
n自动化脚本共覆盖重点交易2000个,开发自动化测试案例近3400个;
n批量任务每周及每次上线前对系统全量回归灵活扩展,多环境并发执行;
n通过交易生成固定系统起始日期,每执行完一轮测试,通过脚本恢复数据。
通过接口自动化的建设,该银行测试的效率获得了大幅提升,任务执行时可执行多脚本并发执行,从而极大缩短回归周期,降低上线风险。
结语
企业在实践持续测试的过程中,既需要技术上的支撑,比如持续开发、持续集成、持续部署的基础能力;也需要关注数据的沉淀,基于数据指标不断优化我们的行为,从而实现 DevOps 所推崇的持续改进的团队文化。
在接下来的文章中,我们将聚焦“持续部署”阶段的实践,请您继续关注。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。