1 引言
系统测试是在将软件产品交付给客户使用之前完成的最终产品测试。此测试一般在完成开发和功能验证测试之后进行。某些入口标准用来确定对于系统测试的代码准备状态(举例来说 , 回归状态,缺陷后备,等等)。必须达到这些标准,从而正式地开始系统测试并要求结果。 在一般的系统测试中,目标是用类似客户的配置在高压下对系统进行类似客户的工作量(举例来说,多平台、多软件版本,等等)。 正式的系统测试执行包含压力、寿命期运行、内存泄漏分析、多应用程序、复杂且各种各样的拓扑、高可用性及中断测试、混合的版本测试、全平台测试、产品集成测试,及文档测试。
本文介绍了团队所采用的将一组系统测试子集作为敏捷开发环境的一部分,并与代码开发活动并行的方法。我们将展示出我们的方法可以交付更好的系统测试应用程序,让实验方法将包含与代码开发并行的系统测试子集的价值和效率最大化,并提高团队的沟通和技能。这些成功 导致 (led)了在完整的系统测试开始时改进了的完整的 软件验证团队( SVT ) 的加速的时间,以及改进了的产品质量的预期好处。
在六个迭代中,系统测试核心团队与开发团队并行工作。这能够让传统的系统测试应用程序的子集的开发和执行在每个迭代的过程中执行。该并行导致了此处描述的各个方面的成功。
2 敏捷的过程实现模型
在开发的一年之后,使用现有的瀑布实践并交付开放的 alpha 和 beta,我们的项目转换了工具,并实现敏捷的开发模型。整个团队需要将敏捷的开发原则作为“现场实验”,从而满足特定客户的需求。第一个迭代是过渡的,通常着重于交付在瀑布开发模型下开发了几个月的代码。当第一个迭代开始时,整个团队包括大约五十五个人,包括设计人员、开发人员、测试人员、信息开发人员和客户交付团队。
迭代 1 用作过渡的迭代,用于完成已经处于开发中的可交付件。敏捷开发过渡适当地启动,并且带有对前一或两个迭代的适度的开发承诺。主要的焦点在于在团队和集成的过程之间构建并交流新的项目和人与人之间的文化,例如,并行的早期系统测试,这将会用于在新的环境中令团队成功。
九个系统测试人员(整个系统测试团队的子集)在先前的瀑布开发周期中兼职参与。在开发代码的过程中,他们关注构建技术技能、计划、测试案例开发,和应用程序单元测试。这样做,他们练就了项目所用的技术中的技能,但没有获得内行的经验。
当转变为敏捷开发时,九个系统测试人员中的五个全职参与项目。因此,在第一个迭代之前,系统测试团队已经了解了新技术,创建了测试应用程序,并且像团队一样一起工作。这些早期的测试及开发活动令敏捷周期的开始有更高的生产率。
3 系统测试团队参与的目的
五个系统测试人员面临的挑战是确保代码质量足以达到在任一已知的迭代中开发的功能的 beta 级交付。为了迎接这个挑战,他们决定在每个迭代中运行传统的系统测试应用程序开发和执行的子集,预期最终的迭代进行一组更复杂的具体客户的,基于场景的测试。系统测试团队与项目的高级架构师会面,并一起为了增强和执行选择一个现有的系统测试应用程序。然后,该应用程序将用于在迭代过程中的压力和寿命期运行,并且在最终的迭代里大量地使用。目的是在项目最终在世界范围内交付时,系统测试人员有限且同时的参与会为最终的完全的系统测试迭代建立起坚固的基础.