5)外部测试专家基于特定的测试目标执行测试

  聘请来自于组织外部的专家对特定的测试目标执行测试。外部专家并不对整个系统进行全面的测试,而只关注其中特定的领域,例如:可能只关注被测试对象的重要的质量属性(例如:易用性、安全性或性能等)。这些专家在特定的领域都有很深的造诣,可以在短时间内快速对被测试对象的特定方面进行评估,发现缺陷并提出改进意见。但是这些外部的测试专家的成本通常都很高,项目因此要有高额的投入。

  6)测试由组织外的团队执行

  这种形式实现了大化的测试独立,既能够以揭露软件中的缺陷为目的开展工作,也能不受发现的缺陷的影响。组织和经济上的独立性使其有更充分的条件按测试要求去完成工作。由于专业优势,独立测试工作形成的测试结果更具信服力。由于测试结果常常和软件的质量评价联系在一起,因此,由专业化的独立测试机构进行评价权威性更强。但是这种独立性也带来一些负面影响:知识传递可能不充分、需要明确的需求定义、需要很好的沟通平台以及外部组织的质量不确定等。这些影响因素在采用这种形式的测试组织时是需要加以考虑的。

  上面介绍了六种不同的测试独立性的形式。测试独立性的优点有:

  ● 对软件测试和软件中的错误抱着客观的态度,这种客观的态度可以解决测试中的心理学问题,既能够以揭露软件中的错误为目的进行工作,也能不受发现的错误的影响。

  ● 经济上的独立性使其工作有更充分的条件按测试要求去完成。

  ● 独立测试作为一种专业工作,在长期的工作过程中势必能够积累大量的实践经验,形成自己的专业优势。

  ● 软件测试是技术含量很高的工作,需要有专业队伍加以研究,并进行工程实践。专业化分工是提高测试水平、保证测试质量、充分发挥测试效用的必然途径。

  ● 由于专业优势,独立测试工作形成的测试结果更具信服力,而测试结果常常和对软件的质量评价联系在一起。因此,由专业化的独立测试机构进行评价的权威性更强。

  ● 独立测试机构的主要任务是进行独立测试工作,这使得测试工作在经费、人力和时间方面更有保证,不会因为开发的压力而减少对测试的投入,降低测试的有效性,从而可以避免开发组织侧重软件开发而对测试工作产生不利的影响。

  测试的独立性并不是越高越好。随着测试独立性的提高,也会带来一些问题:

  ● 组织的复杂度越来越高,管理成本增加,当测试团队不属于该组织的时候,对于测试团队的测试质量无法及时监控。

  ● 沟通效率降低,原来可能只是需要打个招呼的问题,现在需要通过复杂的配置管理、缺陷管理和文档管理系统来解决。

  ● 测试人员和开发人员的距离越来越远,项目团队氛围可能会下降,某些极端情况甚至出现开发人员和测试人员的对立现象。

  ● 测试人员重点关注测试相关技能,对开发技能的掌握比较差,不利于发现系统需求和设计方面的缺陷。

  ● 独立的测试团队可能降低开发人员的质量责任感,开发人员可能会觉得产品质量应该是测试团队的事情,而不是整个项目团队的责任。

  一个组织的测试活动可以采用多种测试独立性策略。不同的测试级别可以使用不同形式的测试独立性策略。低级别的测试采用独立性比较低的策略,高级别的测试采用独立性比较高的策略,例如:组件测试和集成测试由开发人员来完成,系统测试由企业内部独立的测试团队完成,验收测试由组织外引入的测试团队完成,如表1所示。具体的形式可以根据组织和项目的实际情况进行调整。

表1  测试团队和测试级别

独立性

级别

不同的开发人员

组织内独立的测试团队

组织外部的测试团队

组件测试

X

 

 

集成测试

X

 

 

系统测试

 

X

 

验收测试

 

 

X