软件测试分析与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第2章 软件测试基础

2.1 软件测试的定义

关于软件测试的定义,不同学者有不同的观点,了解软件测试的定义,对于日后的工作很有帮助。

首先要明确测试的定义,测试,就是以检验产品是否满足需求为目标的过程。

而软件测试,自然是为了发现软件(产品)的缺陷而运行软件(产品)。

在IEEE 标准中,软件测试的定义为使用人工或自动的手段运行或测定某个系统的过程,其目的在于检验软件是否满足规定的需求或弄清预期结果与实际结果之间的差别。

在软件的发展过程中,软件测试的定义也是一个逐步发展的过程。

早期,G.J.Myers 给出的定义:程序测试是为了发现错误而执行程序的过程。这个定义被软件测试业界所认可,并经常被引用。但实际上,这一定义还不能完全反映软件测试的内涵,仍局限于“程序测试”。

随后,G.J.Myers进一步提出了有关程序测试的3个重要观点,那就是:

(1)测试是为了证明程序有错,而不是证明程序无错误。

(2)一个好的测试用例在于它能发现至今未发现的错误。

(3)一个成功的测试是发现了至今未发现的错误。

要完整地理解软件测试,就要从不同方面和视角去辩证地审视软件测试。概括起来,软件测试就是贯穿软件整个开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现软件产品中存在的各种问题——与用户需求、预先的定义不一致的地方。

以下是关于软件测试的各种观点。