很多测试从业者可能都会有这么个疑问:怎样才能做好产品测试?对于这个问题,可能是仁者见仁智者见智,没有放之四海而皆准的标准。在笔者看来,要做好测试管理工作首先得有测试理念,也可以说是产品测试要遵循的一些基本原则,这些原则为各级测试人员提供了总体思路和方向,基于这些原则开展测试工作不会差到哪去,笔者根据多年产品测试工作经验,总结出的测试基本原则如下:
原则1: 测试是否通过的依据是客户需求、规格及各种标准
产品测试的目的主要是检验开发出来的产品是否满足客户的需求、各种标准,产品测试的很多工作,包括产品测试策略、测试方案、测试用例设计都必须以此作为设计输入,其中需求是客户化的定性描述,规格是客户需求的定量描述,标准是产品必须遵循的各种标准,比如行业标准、国标等,产品测试是否通过的判断依据是客户需求及规格,或者是产品必须遵循的各种标准及规范,而不是内部的技术要求或限制。
原则2: 完全测试基本不可能,应制定合理的测试策略
产品完全测试是不可能做到的,特别是软件类测试更是如此,各种输入条件组合将是一个天文数字,我们不可能进行穷尽测试,所以需要基于客户需求和规格分析基础上制定相应的测试策略,在测试策略中要权衡投入/产出比的原则,测试既要充分也不要过分。当满足一定的测试出口准则时测试就应当终止。
那么在编制产品测试策略时,对测试内容如何进行考虑呢?一般来说要结合客户需求、质量目标来考虑,每个新产品开发时会确定一个质量目标,这个质量目标是基于客户需求来定的,以飞机为例,飞机的引擎控制、飞行技术、导航处理等质量要求是最高等级,而飞机上的娱乐措施质量等级相对来说可以降低一个等级,这样在测试内容深度和广度上可以差别考虑;另外针对一些系统增强型产品考虑继承性功能测试策略时,重点要考虑产品新修改的影响分析,可以重点对修改影响比较大的继承性功能进行测试,而对于其它继承性功能进行抽测即可。
原则3: 为了减少投入成本,测试应该尽早介入
根据统计表明,在产品开发早期引入的缺陷占产品开发过程中出现所有缺陷数量的50%~60%。此外,IBM的一份研究结果表明,缺陷成本存在放大趋势。如需求分析阶段的一个错误可能会导致N个设计错误,越是测试后期,为修复缺陷所付出的代价就会越大。因此在产品需求分析和设计阶段,测试人员应进行测试需求分析和测试策略制定;在产品功能模块开发完成时协助开发人员进行自测,产品研发样机出来测试进行系统测试等,以提高产品质量,降低产品开发成本。
原则4: 由第三方测试团队进行测试,必要时组织客户化测试
由于心理因素,人们潜意识都不希望找到自己的错误。基于这种思维定势,人们难于发现自己的错误。因此,由独立测试部门或者第三方测试机构进行产品测试将更客观、公正,测试活动也会达到更好效果。
第三方或者独立的测试团队进行测试的这个原则,并不是认为所有的测试完全由他们来完成。在测试人员进行测试之前开发人员也需要通过自测来发现自己开发过程中的问题,开发人员对自己的工作产品进行认真的测试,这也是开发人员的一个职责之一。
另外有些产品应用场景比较复杂,研发过程中限于测试环境和应用环境的差异性,有些测试内容可能无法很好进行测试,此时要考虑进行客户化测试,比如在产品经过公司内部严格测试后,再找一些关系比较好的客户,在客户实际的应用环境中,邀请客户参与对产品的测试,这样往往能发现一些深层次的问题,有助于提升产品的质量。
原则5: 根据缺陷的集群性,适时开展专项测试
Pareto(排列图)原则表明“80%的错误集中在20%的产品模块中”。实际经验也证明了这一点,通常情况下,大多数的缺陷只是存在测试对象的极小部分。缺陷并不是平均而是集群分布的。因此,测试过程中要充分注意错误集群现象,对发现问题较多的模块,应该引起重点关注,必要时要组织专项分析和测试。
当然要做好测试工作仅仅有一定测试原则还是不够的,还需要在产品测试流程指引下在产品开发不同阶段进行相应的测试活动,确保产品测试工作的充分性、有效性,支撑产品开发整体上按计划高质量的成功上市。