测试基地实训指导
上QQ阅读APP看书,第一时间看更新

第2章 测试原理及其技术

2.1 测试原理

在企业级的测试中,使用人工或自动化手段运行或测试某个系统的过程,其目的在于检验对象是否满足规定的需求或研究预期结果与实际结果之间的差别。

软件测试是为了发现错误而执行程序的过程,它是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例,并利用这些测试用例运行程序以及发现错误的过程,即执行测试步骤的过程。

软件测试有许多种不尽相同的定义,其中堪称权威的就是IEEE提出的“软件测试是使用人工或自动化手段运行或测定某个系统的过程,其目的在于检验它是否满足规定的某个需求或是发现预期结果与实际结果之间的差别”。

2.1.1 软件测试概述

在认知上,通常认为软件测试就是利用各种手段来发现产品的缺陷,然后将问题转给研发部门解决,以此往复,最终的目的就是确保产品是符合预期需求的。在此期间,可能不会一次性就完成某一产品的测试任务,通常的做法就是对产品进行及时地、有效地测试。

软件在生存周期的各个阶段都是有可能产生错误的,测试在软件生存周期中占据着重要的地位。从软件的整个生存周期来看,测试通常被理解为对程序的测试,而且测试的依据是产品使用说明书、设计的文档和规格说明书等,一旦设计的相关文档产生错误,那么测试的质量自然就难以保证了。

2.1.2 软件测试的分类

按测试技术分类,软件测试可分为白盒测试与黑盒测试两种。

(1)白盒测试

白盒测试通常也称结构测试,或逻辑驱动的测试,做白盒测试就像做解剖生物实验一样,可以一边解剖一边看被解剖的“器官”是否是正常的逻辑过程;表现在程序上就是将程序内部的结构测试程序理清楚,通常是通过测试检查程序的内部动作是否符合设计规格说明书要求,检验每一个逻辑模块涉及到的通路是否都能够按照既定设计去工作。

(2)黑盒测试

与白盒测试相对应的是黑盒测试,通常也将它称为产品功能测试,它好比通常所说的“以貌取人”,只看它的表面——功能;黑盒测试就是为了检验产品的每个功能是否都能正常运行,而且测试主要针对软件产品的使用和界面的交互,以及软件与使用者交互的功能的测试。

按阶段划分测试类型可分为单元测试、集成测试、系统测试、验收测试和回归测试5种。

(1)单元测试

单元测试指软件开发过程中第一次接触代码的测试,其所进行的是测试阶段及任务中级别和规模最小的测试。进行单元测试时,需要在软件的每一个功能单元都独立分开的情况下开始。单元测试的主要方法有数据流、控制流、排错、分域等。

(2)集成测试

集成测试又叫组装测试,是第一次看到软件产品全貌的测试。集成就是将所有的单元按照相应的要求组合起来,所以该方法是建立在单元测试基础上的一种测试。

(3)系统测试

系统测试是将软件、网络、外设、硬件等一切与产品使用相关的元素结合在一起而进行的综合测试,在此期间不仅要进行信息系统的各种组装、确认、测试,而且还要对整个产品系统进行测试。本阶段的测试目的是验证系统产品是否能满足最终的需求规格,不但要找出与需求规格不符的地方,而且还要提出更为完善的测试方案。

(4)验收测试

验收测试是通过用户和产品的开发方共同指定的测试方对产品进行测试,测试的结果不仅影响用户对产品的看法,重点是决定了产品是否被最终用户所接受,是一种基于用户观点的验证性测试。

(5)回归测试

回归测试是指旧代码修改后,需要重新对其进行测试,以确认修改没有引入新的错误。该阶段的工作在整个软件测试过程中占了很大的比重,因为软件产品在开发的各个阶段都可能会进行多次回归。尤其在目前常用的快速迭代和渐进开发中,当有多个新版本的软件产品连续发布时,回归测试将会更加频繁,而且在要求更为严格的软件开发中,可能每天都要进行若干次回归。