2020-04-25

敏捷测试在P1项目的应用

作者 货拉拉技术

敏捷测试定义

提到敏捷测试(Scrum Testing),我们必须要知道什么是敏捷测试,它与传统测试有什么区别。  

首先我们看一个图(传统测试与敏捷测试):

从图中我们可以看出,传统测试跟我们软件开发中的瀑布模型一一对应。遵循需求—设计—编码—测试—发布。敏捷测试强调互动和增量,每一个story都是可以设计,编码和测试的。提倡快速设计和编码,快速测试(测试期间保持与产品,开发,市场互动),快速发布。

敏捷测试在P1项目中的应用

1:经常地交付可工作的软件,采用较短的项目交付周期

P1是公司Q1的重点项目,V1.0 必须在2020-03-01上线交付,所有P1项目成员必须按照这个时间点交付。由于项目时间短,所以在测试过程中,我们一直有一个原则:保证核心业务流程正常,不影响业务使用。也就是Scrum Testing核心原则:交付可工作的软件

2:不论团队内外,传递信息效果最好效率方式是面对面的交流

  在P1项目测试过程中,有3个Scrum meeting是我们必须开的,第一个Scrum meeting是测试小组的每日晨会,了解每个feature 的blocked issues,由测试负责人汇总问题,将问题反馈给对应的开发负责人,严重问题必须做到3个小时内解决,不能因为blocked issues影响到测试进度。第二个Scrum meeting是Bug分级会,由于测试时间有限,在V1.0版本测试中,测试提了接近400多个bug,在有限的时间解决400多个bug,基本是不可能,这个时候由测试负责人发起每日bug分级会(邀请HK产品,开发,测试,项目管理),将BUG分为3类:(1)影响核心业务流程,必须解决,(2)UI问题,严重影响用户体验的要修复。隐藏比较深,不影响使用可以移到下个小版本解决。(3)翻译问题,暂不解决,版本优先保障英语可用。第三个Scrum meeting是由项目管理发起,了解项目整体测试情况,利于提前发现项目风险。

3:所有项目成员必须相互合作,项目进行中每一天都不例外

  为了保障项目中高效的解决问题,项目组成员开启了小黑屋集中办公模式,出现问题能面对面沟通,开发人员能快速定位和快速解决问题,测试能快速验证问题。极大的提高了沟通效率,为项目交付节省了时间。

4:坚持不懈地追求技术卓越和良好设计

一方面要求测试的技术要不断提高,在处理每个测试任务时,都应该找到最有效的办法。另一方面,在前期要更多地参与产品需求评审,设计评审,及时发现产品需求和设计的问题。只有良好的设计,才能更好地支持系统的功能扩充和不断的迭代。在P1项目中,测试人员做到了比产品更懂需求,比开发更懂用户。测试人员技能得到了很大提升,由测试驱动开发,驱动架构更合理,驱动产品设计更贴近用户和市场。也就是我们常说的测试驱动开发(TDD)。

5:简化测试流程

传统的测试流程,应该遵循测试环境,灰度环境,预发布环境,生产环境。由于V1.0是国外市场的第一个版本,没有线上用户。另外一点就是我们的测试环境已经当成了开发环境,开发和测试在同一套环境测试会出现很多风险。最后项目负责人和测试负责人决定,第一个版本的测试,验证,验收都在生产环境进行,为测试争取了时间,为开发发布减少了时间。

结论

敏捷测试就是符合敏捷宣言思想,遵守敏捷开发原则,在敏捷开发环境下能够很好地和其整体开发流程融合的一系列的测试实践,这些实践具有鲜明的敏捷开发的特征,如TDD、ATDD、结对编程、持续测试等。在次总结下传统测试与敏捷测试的区分:

1)传统测试更强调测试的独立性,将“开发人员”和“测试人员”角色分得比较清楚。而敏捷测试可以有专职的测试人员,也可以是全民测试,强调整个团队对测试负责。

2)传统测试更具有阶段性,从需求评审、设计评审、单元测试到集成测试、系统测试等,从测试计划、测试设计在到测试执行、测试报告等,但敏捷测试更强调持续测试、持续的质量反馈。

3)传统测试强调测试是由“验证”和“确认”两种活动构成的,而敏捷测试没有这种区分,始终以用户需求为中心,每时每刻不离用户需求,将验证和确认统一起来。

4)传统测试强调任何发现的缺陷要记录下来,以便进行缺陷根本原因分析,达到缺陷预防的目的,并强调缺陷跟踪和处理的流程,区分测试人员和开发人员的各自不同的责任。而敏捷测试强调面对面的沟通、协作,强调团队的责任。

作者介绍

贺永念,货拉拉高级测试工程师