Scrum敏捷开发有一个明显特征就是重团队,轻部门,每个团队里面包含了开发、设计、测试各种角色,Scrum团队以小著称,团队中的测试人员一般只有一到两名。
在传统的瀑布式开发 中,测试人员经常因进入测试阶段的条件不满足而需要较长的等待。而在Scrum敏捷开发中,测试人员需要尽可能早的开展工作,“等待”在Scrum开发的测试中已属一种错误概念。
测试人员应具备三方面的能力:编码,测试和分析。不同的阶段对测试的要求不同,在功能测试中偏重编程能力,在系统配置测试中偏重分析能力,Scrum团队中的测试人员需要将这三种能力融会贯通,才能适应迭代过程中的诸多变化。
测试是软件开发中必不可少的一部分,那么Scrum团队中测试人员又要如何开展测试工作呢?
首先,测试人员要尽可能早地开始测试,不要等待到功能完全做好才开始。在产品开发的过程中,新需求和新功能在迭代中不断涌现,每次迭代结束都会产生一个可工作的软件,测试人员不能等到所有迭代结束之后再开始测试,而应该尽早开始进行测试。
其次,测试人员要尽可能多地采用自动化测试。敏捷项目初期,产品停留在初步设计中,产品功能不多,复杂度小,手动测试就可以保证质量。而到了中后期,因不断有新需求、新功能的加入,产品复杂度显著增大。若仍然采用手动测试,恐怕难以覆盖产品的各个功能、非功能点,而且手工测试在面对功能诸多的产品时,就会暴露出易遗忘的缺点。因此,可以用自动化测试来提高工作效率。
然后就是,测试人员要学会做好需求分析,做好对设计逻辑的分析。测试人员要更多的思考需求的可实现性,将自身作为第一用户积极参与项目和系统的需求分析,设计和开发。积极地参与前期工作,并迅速反馈给设计和开发人员。
最后要强调的是 ,测试人员需要转变测试等待开发的思想。测试人员需要了解开发,需要读懂代码,才能够更好的帮助开发人员分析和分离复杂问题。有时候,测试人员可以成为开发人员的后备力量。当团队中需要更多的人编码时,测试人员应该站出来担当其职。
开发和测试是相辅相成的。一旦基本验证测试通不过,那就说明产品违反了最初客户定义的需求,也就不能够提交。如果功能测试通不过,那么测试人员要及时与开发人员沟通。如果是缺陷,则在每日站会中提出;如果不是,那么继续下一项工作。这个过程充分体现了Scrum敏捷开发所提倡的团队交流与合作机制,也是体现了测试人员对于整个开发工作的重要作用。