软件测试定义

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

软件测试

软件测试是软件工程不可或缺的重要环节之一,是软件质量保证(Software Quality Assurance)的重要手段。软件测试的定义:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。”(IEEE 1983)

软件测试的目的,简单的说,是通过寻找错误,尽可能地为修正错误提供更多的信息,从而保证软件系统的可用性。

下图描述了软件测试的过程,直观的表现了软件测试在软件工程中的重要地位。

从图中可以看出,软件测试是贯穿软件工程始终的一个活动,由测试计划、单元测试、集成测试、系统测试、验收测试组成。此外,完整的测试活动还要有相应的缺陷跟踪系统,从而完成整个软件工程迭代开发的过程。

测试计划

当软件的系统需求确定之后,就可以制定软件的测试计划了。下面提供了一个测试计划的模版,其内容可以根据实际的项目内容进行调整。

一.引言

1、测试目的:说明本测试计划的具体编写目的,职称预期读者范围

2、背景:对被测对象及目标进行简要说明

3、定义:列出本文件中用到的专门术语的定义和外文首字母组词的原词组

4、参考文档:制定本计划所使用的工程文档

二.测试计划

1、软件说明:以图表形式并逐项说明被测软件的功能、输入和输出等质量指标

2、测试进度:测试的进度安排,包括进行测试的日期和工作内容

3、测试环境:测试工作对硬件环境、软件环境、测试人员等资源的要求

4、测试工具:软件测试所使用的工具

5、测试培训:为被测对象的使用提供培训的计划

三.测试设计

1、数据库测试:对数据库和数据库进程作为一个独立的子系统进行测试

2、接口测试:系统各组件之间的接口进行测试

3、单元测试:系统的各独立单元进行测试

4、集成测试:对软件各子系统进行测试,验证业务流程与数据处理是否达到要求

5、系统测试:对系统的功能、性能、压力、安全、用户界面等进行测试

6、验收测试:确保系统在交付客户能够正常的安装与配置

四.评价准则

1、优先级与处理方式:缺陷的分类与响应等级、处理方式

2、范围::所选择的测试用例能够检查的范围及其局限性

3、尺度:用来判断测试工作是否能通过的评价尺度

单元测试

在了解单元测试前,首先应掌握白盒测试与黑盒测试的概念。所谓白盒测试,指盒子(被测对象)是可视的,测试人员对软件系统的内部结构和原理十分清楚。白盒测试是一种覆盖型的测试,它要求被测模块所有独立的路径都被执行一遍。相反,黑盒测试是一种功能型测试,它关注被测对象的功能实现,测试人员是不清楚软件的内部逻辑。

单元测试是一种白盒测试,它是对软件基本组成单元进行的一种测试,是整个软件测试过程中最基本的活动,通常由开发人员与测试人员协同完成。单元测试的对象可以是一个类、一个功能模块或是一个组件。

执行单元测试,需要注意以下几方面:

单元测试的目标和任务:明确测试的目标,即被测功能模块能够被顺利的执行。

单元测试的依据与规范:明确测试依据,如系统需求与设计描述。要有统一代码书写规范。单元测试的方法与技术:一般采用白盒测试,有手工测试和自动测试等多种方法。

单元测试的过程与结果:应有详细的单元测试描述与计划文档,对测试结果也应编制成结果分析报告。

单元测试的评估与管理:通过缺陷跟踪系统提交测试结果,对于出现的严重的问题应做及时的反馈与跟踪。

集成测试

集成测试是在单元测试完成之后开始,是对某个子系统所有功能模块的测试。集成测试介于白盒测试与黑盒测试之间,因此也被称为灰盒测试。

集成测试是软件测试活动中最为关键的,从上图可以看到,它发生在单元测试完成之后,与系统设计相对应,之后是系统测试,集成测试的成功执行是系统测试开始的基础。

执行集成测试,要把握以下几方面内容:

制定集成测试策略:针对被测子系统的特点,制定适合的策略,如自顶向下的集成、自底向上的集成、三明治集成等。

加强集成测试分析:应编制集成测试分析报告,它对集成测试的用例设计具有指导作用,是整个集成测试中最重要的一个步骤。

设计执行测试用例:集成测试的主要内容。

系统测试

系统测试是将软件、硬件、数据、人员、文档结合在一起、在正式的运行环境中,进行的一种综合性测试。系统测试可以分为功能性和非功能性两大类,其中功能测试是系统测试的基础,主要用来验证软件系统是否严格按照需求规格说明的功能要求予以实现。非功能性测试主要包括性能测试、压力测试、容量测试、用户界面测试、安全性测试、可靠性测试、容错性测试、安装测试等内容。

在进行系统测试之前,要搞清楚系统测试与集成测试的区别。首先,二者测试的对象不同。系统测试是对整个系统及其环境进行的综合性测试,集成测试仅对某一个子系统进行测试,不涉及到软件环境。其次,二者关注的领域不同。系统测试更多从用户的角度出发,除关注软件功能能否实现外,更注重系统的性能、安全、界面效果等非功能特性。而集成测试则主要关注各模块间的接口能否实现成功调用。

软件系统的特点是错综纷纭的,因而系统测试的侧重点也有所不同。对基于J2EE架构的B/S 应用软件,系统测试更偏重于性能、压力、用户界面等方面的测试。因此,系统测试要根据软件特点来制定与执行。

验收测试

验收测试发生在系统测试之后,是一种黑盒测试。它是系统开发人员与用户共同进行的一项测试工作,其目的是按照之前约定的验收标准,通常在需求分析说明书中列出详细标准,使用户对系统进行验收和签字。

相关文档
最新文档