2)经验和对策

  从测试的角度,上面谈了中途接手项目中存在的7个主要风险和挑战。虽然存在比较多的困难和不确定因素,测试人员还是可以利用已有的测试经验和知识,采取一些合适的手段和方法来应对这些问题。

  下面根据笔者在中途接手测试项目方面的经验,对上面提到的这些问题提供一些参考的信息和建议。这些建议并不是肯定适合的,在进行具体项目的时候,还需要考虑不同企业组织和不同项目的背景。同时,下面的经验并不是对应解决上面的每个风险和挑战,而是从整体上对如何进行中途接手项目的测试提供了一些实践。

  (1)合适的测试经理或专家

  对于测试工作而言,测试经理应该是整个测试团队的灵魂,对于中途接手项目的测试中体现的尤为明显。中途接手项目中,测试团队的测试经验相对欠缺,因此测试工作的计划、估算、执行以及控制等尤为重要,因此需要更加慎重的选择合适的测试经理来领导这样的项目。合适的测试经理,除了需要具备的一些能力和知识外,例如:熟悉测试过程、具备测试管理能力等,针对中途接手的项目测试,测试经理具备下面几个方面的能力也非常重要:

  测试经理应该对项目产品相关的功能、协议等有很深厚的经验和知识,能够从全局上把握软件产品的风险、测试的重点和优先级。在项目测试初期,好能够在测试团队中能够起到知识方面的引路人;

  测试经理应该有良好的沟通能力,包括对内沟通和对外沟通。由于项目是从国外研发中心转移过来,因此需要测试经理有很熟练的英语沟通能力。

  对于有的组织和项目而言,测试经理并不是技术方面的专家。那么,在面对中途接手的项目测试中,测试经理需要选择产品相关的测试技术专家(测试领域的专家,例如:数据通信领域的专家)对整个测试过程中的技术进行把关。协助测试经理进行测试活动的计划、估算、协调和控制,同时帮助测试经理进行测试团队的构建和发展,使得测试团队能够胜任中途接手项目的测试。

  (2)合适的软件测试过程

  选择了合适的测试经理或者测试专家,基本上可以保证测试团队对测试工作的适应性。测试质量中除了人的因素外,另外一个很重要的因素是过程的因素。测试质量的提高和保证,需要一个完善的测试过程来控制和保证。

  当然,软件测试过程的选择,需要考虑企业组织的成熟度和测试项目的特性。一般来说,测试过程包含下面几个阶段:测试计划和控制、测试分析和设计、测试实现和执行、测试出口评估和报告以及测试结束活动。

  测试过程定义中,需要明确每个测试过程阶段的输入和输出、每个测试阶段的主要测试活动以及每个测试阶段中的质量检查点。明确定义软件测试过程以及相关的测试活动和输出,可以从制度上保证测试工作的顺利进行,并且可以有针对性的进行测试活动的控制。软件开发的产品质量是通过整个开发过程的质量控制来保证的。同样,测试质量也需要测试过程质量来保证。

  (3)完善以前版本相关文档

  收集和整理项目以前版本的相关文档,包括开发文档和测试文档。从测试的角度来说,有两方面的内容:一是学习以前的相关软件需求和设计文档(可能是已有的,或者通过开发团队收集和整理的文档),来了解软件的主要功能和实现方式;另一个是整理和收集测试相关的文档,比如每个版本的测试计划、概要测试用例、详细测试用例以及以前版本的缺陷信息等。

  假如对每个功能进行全面的分析,需要花费巨大的人力和时间成本,这可能是不太现实的。我们的经验是和开发团队合作,召集各个领域和应用方面的技术专家,来对以前系统进行需求方面的文档化,至少对每个功能特征进行部分的描述,同时对一些复杂的功能接口、用户接口等进行详细的需求分析,形成比较详尽的系统需求文档。

  针对测试文档,根据前面得到的一些基本文档提供的信息,分析软件的主要功能和重要功能,提供一些测试用户场景以及它们的输出预期。也可以通过探测性测试,得到软件的一些表现行为和结果输出。将这些用户场景和测试输出等进行文档化,作为后续项目测试的基础,也可以作为回归测试的输入和重点。

  (4)软件新增功能的文档化

  对新增加和升级的功能特征进行文档化,从确定开发和测试的系统版本开始,我们需要对每个增加的功能、升级修改的功能进行详尽的需求文档化,作为后续开发测试活动的参考和基线。这样,可以在后续的开发设计、测试设计等方面拥有共同的输入和参考点。这对于系统的研发非常重要,这个环节没有做好,项目的开发将一直处于混乱状态,例如:系统需求不明确、开发条目不清晰、测试输出预期没有标准等,无法保证项目产品的质量。