经过这么多年的发展和完善,淘宝已经形成一套自己的项目流程规范和测试的管理规范。
软件研发周期包括以下几个主要阶段:需求分析、设计、编码、测试、实施、维护。由这个模型产生的问题是:测试阶段何时介入?由于一直以来的被动形式和探讨更好的保证质量,现在的项目淘宝的测试人员已经在PRD需求阶段开始介入项目。
在需求和设计人员完成了项目定义,并形成需求文档后,会由项目的测试负责人参与需求评审。同时参加评审的人员还有开发人员,设计人员,前端,运维。在这个评审的过程中,各方面人员可以尽早的发现项目定义和需求阶段的问题。测试人员参与评审,目的在于,利用测试人员对业务以及用户应用场景的了解,发现需求中不合理的地方。
在这个过程中,对参与评审的测试人员对于产品应用场景有相当程度的了解,因此,一般多为有业务背景、有测试经验的人员或QA来完成。
测试人员在需求阶段介入,可以及早的发现问题,使产品的后续研发过程可以更顺利的完成,以保证最终产品的有效性。但该部分的影响因素主要在于测试人员的前瞻性,需要对该项目或者业务很熟悉的前提上才能凸显作用。这在本项目中该阶段的无为,很好的反应该部分的问题,在进行技术支持的人员也需要承受很多的工作时,决定因素在于负责测试的人员,如果是新人应该不断的重复深入理解PRD,抛出各种疑问和问题尽量保证该阶段的质量工作。
技术设计阶段,也需要有经验的开发和测试人员参与设计文档的评审。开发人员从产品实现的角度,对设计方案的可行性进行评估;而测试人员则从用户的角度,对设计方案的实施性提出看法,保证最终项目产品的可用性。而需求人员在这个过程中的作用,检查设计文档是否遵循产品定义和需求分析文档。
在编码阶段,测试人员开始进入编写测试用例的工作。在此期间,也是一些普通测试人员熟悉产品,了解需求的过程。
测试阶段的开始,在能够实现独立功能的单元模块开发完成时。此时,测试人员开始进行基于完成的单元进行功能测试。依据需求文档和测试用例,检查各模块内部的主要的基本功能。测试确认接收测试开始,测试执行阶段工作由此开始,一直持续到项目发布。
在项目发布后的实施和维护阶段,理论上测试人员参与很少,项目还未到该阶段不做详述。在实施初期,会有少量的测试人员协助实施人员进行项目的实施工作。而在维护阶段,则有专门的部门来完成,测试人员基本上就不再参与了。