测试过程需不需要践行敏捷?
原创- 2020-09-23 09:22:41
- 1846
本篇目录
测试过程在瀑布式开发中作为开发流程中的一个环节,只能在实现软件基础后开始运行,这种模式很大程度上导致了人力资源的浪费。而在敏捷开发模式中,为了解决人力资源浪费的问题,团队的开发过程需要践行敏捷,同样,测试阶段也要践行敏捷。
测试过程有没有必要性?
测试人员如同食品生产的质检员,能够依据交付成果检验产品的完成标准,并对产品判定“合格”与否。也就是说,测试人员需要测试产品的各功能点,对出现 BUG 的部分进行汇总分析,最终提交到开发人员手上。
假若产品的交付并未经过测试这一步骤,那么我们就无法保证交付成果是符合用户需求的。换句话说,面对一辆并未经过质检的刚出厂的车,你敢开吗?
如何让测试过程变得敏捷起来?
1. 提高开发过程中的质量
在敏捷开发过程中,测试不再只是在某一特定阶段内进行,而是贯穿于整个开发流程中去。也就是提高产品开发的内建质量——团队中各职能成员都要对最终交付的产品质量负责,测试人员当然也不例外。
- 适当减少在一个迭代中的工作量
在一个迭代过程中,如果产品需要做的功能点太多,就导致团队成员的任务量过满:开发人员会由于赶进度而忽视了代码的规范性要求;测试人员会因为测试出的BUG 太多而不断进行“开发—测试”的返工,从而增加人力成本。
因此,适当减少一个迭代周期中的工作量,才能让开发、测试人员将更多的精力投入到提高代码质量、提高测试效率中去。
- 达到测试的完成标准
产品完成的定义(Definition of Done )主要从两方面来说:
首先,测试用例针对每个已经完成的用户故事。这意味着测试人员需要熟悉每一个用户故事,并能够针对用户故事构建相对应的测试用例。测试用例可以分为正面测试用例和反面测试用例,以便更好地佐证其标准的准确性。
其次,执行并通过全部测试用例。测试人员在构建完整的测试用例后,还需要不断地更新、修改。客户需求的变动也应该在第一时间在告知测试人员,以便测试人员及时更改测试用例。执行并通过全部的测试用例后,产品负责人将产品交付客户。
- 测试人员的多职能
敏捷团队要求测试人员必须是多职能的。传统项目中,工作人员职能单一,因此无法实现技能互通,这大大降低了各环节的生产效率。敏捷团队中最重要的一个特征就是“跨职能”:团队成员拥有多种技能,当某一环节需要更多的人手时,其他成员可以暂代这一位置。当然,跨职能是指成员要掌握多种技能,但并非团队成员都需要精通各种技能。
因此,敏捷团队中测试人员也需要是多职能的。这就意味着,测试人员不仅需要精通测试,还要掌握其他环节所需的技能。
- 代码集体所有权
代码集体所有权意味着代码归整个开发团队所有,并非单独所有。当测试环节发现问题的时候,其他测试或开发人员可以看到并修改代码的任意部分。代码集体所有权能够有效地提高团队开发效率,降低BUG 风险。
- 结对编程
结对编程通常是由两个开发人员一起,而测试人员与开发人员一起进行结对编程主要体现在构建自动化测试程序中。在这种情况下,测试人员主要负责测试架构的合理性以及简单的代码编写,而开发人员则需要保证代码的高质量。开发人员与测试人员进行结对编程不仅会提高开发人员的测试意识,还会提高测试人员的代码编写能力,更有助于敏捷团队的形成。
2. 提高测试的效率
手动测试是一件十分枯燥、乏味的工作,当然,也是一件效率低下的工作。那么,如何提高测试的效率呢?
- 优先级排序
测试任务同开发任务一样,都需要进行优先级的排序。先进行优先级高的测试任务,能够在无法保证测试周期的前提下,影响不到整体开发进度。
- 自动化测试
提高测试效率,首先会想到的就是进行自动化测试。自动化测试较大的优势是能够让程序进行一些大量的机械操作,以便减少测试人员消耗在手工测试上的时间,提高测试效率。提高测试的效率,能够加快测试周期,在较短的周期内运行更多的测试。
关于测试过程需不需要践行敏捷这一问题,答案当然是:需要。首先,让测试过程变得敏捷起来,能够解决团队中只有开发人员践行敏捷的弱点。其次,通过测试过程敏捷化,也能够更好地提升整个敏捷团队的工作效率。