导语:DevOps时代下,要想构建能够支撑起数字化转型要求的研发能力,与之适配的测试能力必不可少,打破以往项目内产品、开发、测试团队各自为战,认知存异的窘况,通过测试前置、打通自动化、测试贯穿,真正意义上提升团队研发效率和质量。本文将 TestX - 测试协同团队结合自身产品能力,经过探索和实践总结出一套高效高质开发工作流分享给大家~
DevOps模式的转换,使得持续交付成为软件研发能力的核心诉求,其关键抓手是实现软件业务价值持续、高效向业务用户交付。
整个持续交付流程包括计划、编码、构建、测试、发布、部署、运维和监控环节,实现整个迭代闭环,对于其中任一环节,都要遵循以下要求:
参照要求,先后引入了Scrum敏捷研发模型、持续构建、持续部署等一系列最佳实践,相比于其他环节,测试领域存在的执行效率低、反馈时间长、测试价值认可等瓶颈问题逐步催生出“持续测试”理念。
随着敏捷宣言四大核心价值观提出,团队更高目标是为客户带来价值的行为和结果,而非传统死板完成既定事项,这里我们先回看下四大核心价值观:
1. 个体和互动高于流程和工具;
2. 工作的软件高于想尽的文档;
3. 客户合作高于合同谈判;
4. 响应变化高于遵循计划。
持续测试作为 DevOps 开发流程中的重要一环,“四个高于”的要求对其同样适用,在软件研发生命周期过程中,持续测试提供了持续的反馈机制,在产品交付管道中充当催化剂,每个阶段的测试反馈确保缺陷在开发工程的早期能被解决。
在传统测试流程中,测试人员通常采用的实践为:规划测试工作 - 识别测试内容 - 制定测试策略 - 创建手工测试 - 执行测试 - 报告测试进度。可看出,传统测试重点关注测试工作是否可以按计划完成,耗费大量人力成本在进行低效手动测试工作,且并未创建稳健可维护的自动化测试框架。
随着敏捷研发的广泛应用,增强了自动化测试比例,呈现出以底层运行速度快、消耗小的单元测试为主的正三角模式,强调持续发现缺陷并迅速修复。
进而到了 DevOps 时代,持续测试不仅仅是在整个交付流程中执行自动化测试,还需要持续对业务和技术风险分析,以及整个持续集成过程的流程改进。从本质上来说,它是伴随 DevOps 发展出来的一种文化,要求团队中每个成员都把产品质量当作是共同的责任,它也是一种管理风险的方法,可通过提高测试流程的有效性和效率来消除测试瓶颈。
基于上文提及介绍,「 TestX - 测试协同」平台的研发团队以【持续测试】为核心理念,在实践中探索出高效高质开发工作流,结合实际问题,沉心打磨自身产品。团队内维持两周一迭代的节奏,与开发工作同步,拓宽测试时间窗口,下图为团队总结完整工作流程图:
异地团队协同工作磨合之初,遇到的问题及阻碍无异于以下:
「 TestX - 测试协同」团队经研讨后,决定借助自身产品特性探索新的需求研发工作流,加强引入自动化测试与其结合,团队角色面向确定性开展工作。
前期需求采集分析完成设计后,在迭代规划会上,产品就需求设计与团队一起进行解读、工作量评估,将完整需求内容落实在 TAPD 排单中,需求单必要内容包含:
内容项 | 具体描述 | 备注 |
---|---|---|
需求来源 | 提出人/团队、产生需求背景/业务某种场景 | |
产品方案 | 需求背景、相关功能模块定位/链接、设计详述 | |
前置条件 | 属于产品方案一部分:功能的前置条件 | |
步骤与预期 | 属于产品方案一部分:拆解细节需求功能在不同场景及操作下的交互方式及设计跳转逻辑 | |
设计稿 | 原型交付设计师后,落地设计稿 |
研发过程中,应该以代表业务价值的需求作为一个整体进行交付。产品与开发依据优先级明确功能点、前后端/其他模块接口细节、技术难点风险点以及工期。因此在开发实现编码前,测试用例可以完成编写及评审,每个需求可达到开发完成后随即测试通过,处于可交付的状态。借助「TestX - 持续测试」,我们做到:
1. 在持续测试平台,编写测试用例,团队共同发现完善需求细节,输出相应验收标准(Acceptance Critreia,简称 AC)。
2. 在持续测试平台,创建用例评审(评审标题为 TAPD需求单标题),选中相关测试用例。平台自动创建需求评审群内,可与关联方讨论需求细节,明确开发工作点。
实际效果:
完成以上步骤后,迭代过程中,开发按照需求优先级顺序进行编码:
利用自动化测试保证需求变更不引入新的问题,同时减少前后端联调拉扯时间。
在 SIT 集成测试通过后,利用持续测试平台提供一键发起测试计划功能,创建测试计 划并修改群名为【评审中】,机器人可在评审群中提醒相关人员进行验收。后续流程:
探索实践中不断接收到团队内来自各方的反馈。
开发小哥收起了商业假笑😊,他说:需求拆解更清晰、工作范围更明确、一事一毕,再也不用一边battle一边开发一边删了重写,增加了与产品有产出的有效紧密沟通,每次交付的都是完整业务价值的成品。
产品妹子露出了会心一笑😏,她说:需求和用例建立了关系,对高优需求交付风险把控一目了然,追踪需求进度更方便,每个需求的完整链路数据留痕记录,这些内容沉淀也为团队合作持续改进提供指引。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。