软件测试流程综述

2015-09-09 19:00阚丹丹
电脑知识与技术 2015年16期
关键词:软件测试

阚丹丹

摘要:为了解决测试工作中开发人员由于对测试工作流程不了解而配合不到位等问题,该文对软件测试的基本流程进行了介绍,对测试过程的测试需求分析、测试策划、测试设计和实现、测试执行以及测试总结各阶段的实际操作过程分别进行了阐述,以便初学者更容易上手和开发人员在测试全过程中更好地配合。

关键词:软件测试;测试流程;测试过程

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)03-0094-03

Review of the Software Testing Process

KAN Dan-dan

(Jiangsu Automation Research Institute,Lianyungang 222006, China)

Abstract: In order to solve problems of developers due to working process of the test does not understand and cooperate with such problems as inadequate, this paper introduces the basic process of software testing, test requirements analysis of the test process, test planning, test design and implementation, test execution and test summary in different stages of the actual operation process are expounded, so that beginners are easier to get started and developers to better cooperation in the whole test process.

Key words: software testing; testing process

由于计算机系统的复杂性以及开发过程和涉及的人员易于出错,所以即使是保证一个相对简单的程序没有缺陷也是不可能的[[1]]。对一个给定系统进行充分地测试以确定其没有缺陷是不可能实现的。为了尽可能多地发现并改正缺陷,测试人员必须集中精力使测试过程尽可能地高效和有效。

有效测试的关键是使过程尽可能地高效。正规的软件测试工作过程应包括:编制测评大纲(或测试需求和测试计划)、编写测试用例、准备测试数据、搭建测试环境、测试执行、编写测评报告进行测试总结和评估等多项内容。各阶段流程及生成的主要文档如图1所示:

图1 测试流程及主要产品

1 测试需求分析与策划阶段

测试需求分析与策划阶段是软件测试提纲挈领的一个阶段,在该阶段对软件需求及可测性进行分析,提取出测试项,规定测试环境、测试类型、测试范围及主要测试方法,在该阶段生成的测试文档测评大纲(或者是测试需求和测试计划)往往需要经过委托方、用户代表和开发方代表等的审查认可。

软件要提交测试(这里指成型的软件产品的确认测试或系统测试)首先需要有完整齐套的过程文档。除了测试所依据的标准、规范外,一般软件测试的输入文档应包括:

1)软件需求规格说明书(根据软件具体情况,可分为软件需求、接口需求和数据库需求);

2)软件设计说明书(根据软件具体情况,可分为概要设计、详细设计、数据库设计、接口设计等);

3)软件使用说明书或用户手册。

1.1测试需求分析

针对一个待测软件,可以依据软件需求规格说明等文档,逐条提取出测试需求,主要包括功能测试需求、接口测试需求、性能测试需求、强度测试需求、边界测试需求、人机交互界面测试需求、安装性测试需求、安全性测试需求、恢复性测试需求等。测试需求的提取需要遵循的原则是:测试需求要对软件需求进行全面的覆盖。

测试需求分析阶段在实际实施的过程中主要是依据软件需求规格说明的内容逐项进行分析,从软件需求规格说明文档的相关章节中提取各测试类型的测试项。

1)功能性测试需求

功能性测试需求来自于软件需求规格说明的软件功能描述。每个功能模块至少提取一个功能测试项,每个测试项至少生成一个测试用例。为了避免由于软件需求文档描述不完整而导致的测试需求提取不全面问题,还需要通过与用户和承研单位交流获取软件测试需求。

2) 性能测试需求

性能测试需求来自于软件相关文档的技术指标或性能要求。通常包括系统响应时间、资源利用率、系统容量、并发访问量、配置要求等,尤其要注意的是同一个软件系统针对不同配置或不同目标有不同性能要求的情况。软件需求规格说明中的每项性呢指标均要提取一个性能测试需求。

3)其它测试需求

其它测试需求包括强度测试、边界测试、安装性测试、安全性测试、恢复测试等测试需求通常可以从相应需求中发现与其对应的描述。每一个描述信息可以生成至少一个测试需求。同样需要注意与用户和承研单位交流以获取一些软件需求文档中未描述到的内容。

常见的测试类型主要有:代码审查、代码走查、文档审查、静态分析、功能测试、性能测试、余量测试、接口测试、人机交互界面测试、强度测试、逻辑测试、边界测试、安全性测试、安装性测试、恢复性测试、兼容性测试、内存使用缺陷测试、容量测试、数据处理测试。

1.2测试策划阶段

测试需求分析确定了要进行的测试类型和测试项,下面需要进行的就是测试策划,制定测试策略。

软件开发的最终目的是为了满足客户需求,以客户需求作为评判软件质量的标准,则软件缺陷可以包括下面几个因素:

1)软件未满足客户要求的所有功能和性能(即部分功能未实现);

2)软件实现了客户不需要的功能(即实现了多余功能);

3)软件功能实现错误;

4)软件的用户好性不好。

测试策划阶段就是制定适合的测试方案,尽可能地发现软件的各类缺陷。

在测试策划阶段可以依据软件功能等需求和测试需求分析设计测试项,即需要测试的点。每个测试项需要追踪到相应的测试需求,规定测试内容、测试范围、测试环境要求、前提约束、数据准备及该测试项的结束条件,制定好相应的测试方法,还要分析测试环境与软件实际使用环境的差异和对测试结果的影响。

2 测试用例设计阶段

测评大纲确定了软件需要进行的测试类型和每个类型要测试的点,而测试说明则是对测评大纲的拆分、细化和具体化,是测试项的具体设计和实现。在测试说明中,针对每一个测试项至少设计一个测试用例。

测试用例(TestCase)目前没有经典的定义。比较通常的说法是:指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等[[1]]。

设计测试用例首先要对测试项进行分解,然后根据一定的测试用例设计方法设计测试用例,确定测试用例执行顺序,进行测试数据准备、测试资源准备、测试程序开发、测试环境建立和校核等工作。

由于测试用例规定了测试的前提、方法甚至是操作步骤,直接关系到测试质量的好坏,关系到整个测试工作的成效,因此测试用例设计阶段是软件测试过程中非常重要的一个阶段。

下面是一个测试用例的模板:

软件测试根据测试级别和类型的不同可能有不同的分类方法,不同的叫法和不同的解释。比如,从软件是否执行角度看,可分为静态测试和动态测试。从对应的软件开发过程角度看,可分为单元测试、集成测试、配置项测试和系统测试。从代码透明度方面来分,可分为黑盒测试,白盒测试。各种类型的测试设计测试用例时都要使用一定的测试技术。常用的测试技术功能分解法、等价类划分、因果图法、猜错法等,如图2所示。

图2 常用的测试技术

3 测试执行阶段

测试执行前,需要搭建满足测试需求的环境。在搭建测试环境时,要尽量减少测试环境和实际使用环境之间的差异。可以通过实装、模拟(通用接口测试工具)有机结合构建被测软件外围测试环境,实现被测软件与外部设备的数据通信;使用相应的测评驱动环境构建测评流程,完成相应的功能输入、关键数据的处理,以及通过接口人工干预的异常功能流程的测评,实现构建最小差异的测评环境。测试工作具体实施的阶段,直接关系到测试的真实效果。该阶段主要包括如下内容:

图3 测试执行过程

在软件测试具体执行的过程中,有可能发现测试用例设计阶段未考虑到的地方,这时可以增加一些实际操作且对用例进行补充或者根据软件的特殊场景,对某些测试用例进行反复执行,以确保测试的充分性。

4 测试总结阶段

在测试完成后,需要对测试结果进行总结,对软件质量进行评估,以利于软件改进和后续开发软件质量的提升。测试总结主要是依据测试工作产品对测试工作过程进行总结,对被测软件及其文档进行评价。

测试工作总结除了对正常的测试工作进行总结外,有几点内容需要重点分析,如:

1)测试需求规格说明、测试计划和测试说明的变化情况及其原因;

2)因测试异常终止未实施的测试;

3)无法解决的测试问题;

4)测试数据和文档分析。

对被测软件的分析和评价主要包括:

1)被测软件与软件需求之间的差异;

2)被测软件评价;

3)被测软件文档评价;

4)性能评估。

5 结论

本文对软件测试的基本流程进行了介绍,对测试过程的测试需求分析、测试策划、测试设计和实现、测试执行以及测试总结各阶段的实际操作过程分别进行了阐述,对于初入软件测试行业者具有很好的指导意义,同时有利于软件开发人员在测试的各个阶段根据需求在环境搭建、数据准备、产品评审等方面的配合,促进测试工作的顺利开展。

参考文献:

[1] 朱少民.全程软件测试[M] .北京:电子工业出版社,2007.

[2] ALAN ZHOU软件系统测试工作指南 Version 2.2[Z].

猜你喜欢
软件测试
软件测试方向人才培养“1+X”融合研究
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
基于MBD模型自动生成测试用例的软件测试方法
计算机软件测试方法的研究
EXCEL和VBA实现软件测试记录管理
关于软件测试技术应用与发展趋势研究
一种航空机载软件测试项目的进度改进模型
军用软件测试文档生成设计与实现
软件测试工程化模型及应用研究