[摘要]

  为了有效地开展软件测试活动,测试人员首先需要对软件测试有个统一的认识。本文将从软件测试目的、软件测试类型和什么是好的测试几个方面谈谈我对软件测试的认识。

  [正文]

  随着客户对软件产品的质量要求越来越高,软件测试在整个软件研发中的地位也在逐步地提高,相应地要求测试人员掌握的测试知识和技能等也在增加。为了有效地开展软件测试活动,首先测试人员需要对软件测试有个统一的认识。本文将从软件测试目的、软件测试类型和什么是好的测试几个方面谈谈我对软件测试的一点理解。

  1)软件测试目的

  针对软件产品开展测试活动之前,首先需要明确本轮测试的主要目的是什么,然后才能确定测试策略和采用的测试方法,以及可以选择哪些度量对测试过程和测试对象的质量进行评估。不同的组织和软件产品、软件开发和测试阶段的不同,需要实现的测试目的是不尽相同的。总体而言,软件测试的目的主要包括下面四种:

  ● 发现缺陷。软件测试就是为了发现缺陷而检查或者执行测试对象的过程。其基本思路是假设测试对象是存在问题的,强调测试人员不断地设想和思考开发人员可能出现的错误,例如:理解的错误、不良的习惯等,对测试人员的主观能动性要求很高。

  ● 增强对软件产品质量的信心。软件测试就是为了建立一种信心,确信测试对象能够按照期望的设想或者结果工作。这里的期望的设想或者结果指的是用户需求、软件需求文档或者功能设计文档等软件工作产品。

  ● 为决策者提供信息。测试过程中可以得到关于测试对象质量和风险的状态和信息,例如:测试执行的通过率、发现缺陷的趋势、修改缺陷的趋势等,这些信息是决策者确定是否可以发布软件产品的判断基础,并可以帮助他们分析其中存在的风险和收益。

  ● 预防缺陷。通过收集和分析测试过程中得到的测试对象质量信息和测试过程的信息,例如:缺陷在不同模块中的分布、在不同阶段的分布,以及其中的经验和教训,有助于将来的项目中避免重复某些错误,从而逐步提高测试的成熟度,达到预防缺陷的目的。

  上面简单讲了4 中主要的测试目的,需要注意的是它们之间并不是完全独立和对立的。在实际的测试过程中,应该根据不同组织特点、项目特点、测试阶段和测试技术等方面的具体情况,选择合适的软件测试,或者它们的组合。

  2)软件测试类型

  软件测试不仅仅只是运行测试对象进行相关的检查活动,也不应该只是软件开发生命周期的一个阶段,软件测试应该贯穿于整个软件开发过程。因此,软件测试包括了静态测试和动态测试两部分。

  发现测试对象中的缺陷是软件测试的一个重要目的。缺陷发现和修复的越早,其需要的成本越低;同时,在早期发现和修复缺陷可以防止将缺陷引入到开发的下个阶段,从而避免缺陷的“雪崩”效应;另外,尽早发现和修复缺陷也可以对后续的开发活动起到缺陷预防的作用。因此,静态测试是测试人员在软件开发生命周期中,特别是早期可以选择的一个重要测试技术。

  除了静态测试,动态测试也是测试人员在测试过程中需要完成的重要活动。通过选择和采用合适的测试技术和方法,测试人员不仅可以科学地选择测试对象的输入以及输入组合;也可以不断提高和改进测试人员的测试效率和测试有效性。图1 是软件测试类型的架构图。

  3)什么是好的测试

  尽管不同的测试,其采用的测试目的和采用的测试类型可能不同的,同时测试过程中定义的测试阶段、测试活动和测试方法也不尽相同,但是一个良好的测试应该具备下面的特点:

  ● 每个开发活动都有测试活动相对应;

  ● 每个测试级别都有其特定的测试目的;

  ● 与开发活动对应的每个测试级别,都应该进行相应的测试设计和执行;

  ● 测试人员应尽早介入测试;

  ● 通过风险分析和评估确定测试的重点和优先级,以替代穷尽测试;

本文转载自51Testing软件测试网,查看更多:http://www.51testing.com/html/news.html