在项目开发期间或部署之前开始测试是否更有效?
QA 测试应该在项目的哪个阶段或阶段开始?
在开发期间开始测试为时已晚,在部署之前开始测试通常会导致灾难、错过最后期限和高昂的意外成本。
测试应尽早开始。如果您有原型设计阶段,那么测试人员应该在任何需求/故事固化之前参与原型设计。
早期参与不仅使人们能够在项目中发表意见,而且使测试人员能够开始设计测试、建模、审查等,这可能会防止错误并有助于提高整个项目的质量。
我注意到您没有问在项目开发期间还是在部署之前开始测试是否更好;你问哪个更有效率。您也没有指定要最大化谁的效率。您没有说谁将进行测试,但是由于您在部署之前提到了测试,因此我假设您指的是由开发人员以外的其他人进行的测试,无论开发人员是否进行自己的单元测试。最后,您询问了何时开始测试,而不是测试人员应该何时参与。
如果测试人员工作过度,被迫在太多项目之间共享他们的时间,那么在开发完成后进行测试可能会更有效地利用他们的时间;这样,测试人员就不需要重做工作来补偿开发过程中不断变化的决策。
如果测试人员没有过度劳累,作为整个团队的一部分,让测试人员尽早参与可能会更有效率。例如,通过这种方式,测试人员可能能够影响在问题出现在代码中之前消除问题的决策。此外,假设测试人员有时间,只要他们想要测试的接口基本稳定,就应该开始测试。
我不确定您所说的“部署前”是什么意思——在您的组织中,开发和部署之间是否还有其他阶段?如果您能澄清这一点,我也可以尝试解决您问题的这一方面。
您应该澄清您的问题以定义“开始测试”的含义。
看一下这张图(取自这里):
测试有很多方面。
它们在软件开发生命周期 (SDLC) 的所有阶段定义和运行:
- 验收测试与业务需求同时定义 - 例如,它们在 SDLC 的最开始定义并在最后运行;
- 系统测试与SRS一起定义,通常针对每个 alpha/本地版本运行;
- 集成测试是组件的“中档”测试;它们被定义并经常运行,例如在每周例会中;
- 依此类推,直到几乎同时定义和运行的非常低级的单元测试;
因此,您的问题的答案是:
您应该在整个 SDLC 的所有阶段定义和运行不同类型的测试。
PS 一个常见的错误是没有从 SDLC 的一开始就分配 QA 工程师。如果发生这种情况,他们通常没有时间进行测试定义。我总是问自己,如果我什么都没有定义,我该如何运行它?
测试团队应该从一开始就参与到项目中。尤其重要的是收集系统需求和设计阶段。基本上,您必须设计您的系统以实现可测试性。如果您的系统没有被设计为支持测试自动化,那么实现测试自动化是相当困难的。
它还取决于您的组织您使用哪种测试(单元测试、功能测试、E2E 测试等)以及您的支持基础设施是什么,例如持续集成、夜间构建等。
您也可以考虑使用测试驱动开发过程。