Download presentation
Presentation is loading. Please wait.
1
第6章 传统软件测试策略
2
本章要点 了解传统软件测试策略包含的阶段和各自内容 熟悉单元测试的概念和原则 熟悉单元测试关注的几个方面的内容
了解单元测试环境建立和使用的主要方法 熟悉集成测试的概念和原则 熟悉集成测试分析的内容 了解几种常见的集成测试策略 熟悉系统测试的概念 了解常见的系统测试方法 熟悉验收测试的概念和分类 了解验收测试的主要内容 了解回归测试相关概念
3
传统软件测试过程则分为单元测试、集成测试、系统测试与验收测试几个阶段,与软件开发活动逆向形成对应关系。
单元测试确保每个模块独立正确的运行,多采用白盒测试,通过覆盖技术确保覆盖尽量多的出错点,对应着软件详细设计阶段; 集成测试建立在模块间的接口之上来测试软件结构,多采用黑盒测试,辅以白盒测试,对应着软件概要设计阶段; 系统测试检验软件是否满足功能、性能和行为方面的需求,基本完全采用黑盒测试,对应着软件需求分析阶段; 验收测试是检验软件产品是否符合要求的最后一道工序,它需要用户的参与与评审。
4
6.1 单元测试 单元测试对软件设计的最小单元即模块的正确性进行验证,主要测试模块在语法、格式和逻辑上可能存在的错误。不同的软件形式、不同的开发技术中,单元的具体含义可能不同。一般来说,单元指的是软件里最小的、可以独立执行编码的单位,并且它应该具有以下特征: 单元必须可测; 单元的行为或者输出可观测; 单元有明确的可定义的边界或接口。 在单元测试中,每个模块的测试工作可以独立的、并行的开展。
5
单元测试要针对每个程序模块进行测试,需要根据详细设计规约的源代码,了解模块的输入输出和内部逻辑结构。在测试时主要考虑五个方面的内容。
6
在进行单元测试时,被测试的单元本身不是独立的程序,需要为其开发驱动模块和桩模块。驱动模块是接受测试数据,并把数据传送给被测试的模块,然后打印相关结果的“主程序”;桩模块是替代那些被被测试模块调用的模块,可能要使用子模块的接口,才能做一些少量的数据操作,并验证打印入口处的信息,然后返回。 构造单元测试环境的主要工作包括: 构造最小运行调度系统,即驱动模块,用以模拟被测模块的上一级模块; 模拟实现单元接口,即桩模块,用以模拟被测模块需要调用的模块接口; 模拟生成测试数据或状态,为单元运行准备动态环境。
7
6.2 集成测试 集成是指将经过单元测试的模块按设计要求把它们连接起来,组成所规定的软件系统的过程。集成测试,也叫组装测试、联合测试等,使单元测试的逻辑扩展,是在单元测试的基础上,测试将所有的软件单元按照概要设计规约要求组装成模块、子系统或系统的过程中,各部分功能能否达到或实现相应技术指标及要求的活动。集成测试主要是测试软件单元的组合能否正常工作。
8
集成测试是一个灰色地带,要做好集成测试不是一件容易的事情。集成测试应当针对概要设计规约尽早开始,并遵守一些原则:
集成测试应当尽早开始,并以概要设计规约为基础; 集成测试应当根据集成测试计划和方案进行,排除测试的随意性; 在模块和接口的划分上,测试人员应当和开发人员进行充分的沟通; 项目管理者保证测试用例经过了审核; 集成测试应当按照一定的层次进行; 集成测试的策略选择应当综合考虑质量、成本和进度三者之间的关系; 所有公共的接口都必须被测试到; 关键模块必须进行充分的测试; 测试结果应该被如实记录; 当接口发生修改时,涉及的相关接口都必须进行回归测试; 当测试计划中的结束标准满足时,集成测试结束。
9
集成测试策略有很多种,主要可以分为增量式和非增量式两种类型。
集成测试分析可以从以下几个方面进行: 体系结构分析 模块分析 接口分析 集成测试策略分析 集成测试策略有很多种,主要可以分为增量式和非增量式两种类型。 非增量式集成测试 增量式集成测试 自顶向下增量式集成测试 自底向上增量式集成测试
11
6.3 系统测试 系统测试是对已集成好的软件系统进行的彻底的测试,以验证软件系统的正确性和性能等是否满足需求分析所定义的要求。系统测试的测试用例应该根据需求分析规约来设计,并在实际使用环境下运行。 统测试是一个庞大的工程,在测试之前应该做好如下准备工作: 收集软件规格说明书,作为系统测试的依据; 收集各种软件说明书,作为系统测试的参考; 仔细阅读软件测试计划,最好制定单独的系统测试计划,作为系统测试的根据,并收集已编好的测试用例; 如果没有现成的系统测试用例,则需要做大量工作来编写测试用例。
12
具体说来,系统测试主要包括以下方法: 功能测试 性能测试 压力测试 安全性测试 恢复性测试 健壮性测试 可用性测试 用户界面测试 文档测试
13
6.4 验收测试 验收测试是部署软件之前的最后一个测试。验收测试目的是确保软件准备就绪,应该着重考虑软件是否满足合同规定的所有功能和性能,文档资料是否完整,人机界面和其他方面是否令用户满意等。验收测试的结果有两种可能: 软件功能和性能满足软件需求规格要求,用户可以接受; 软件不满足需求规格要求,用户无法接受。
14
一个软件产品可能拥有很多用户,不能由每个用户验收,此时多采用α和β测试,来发现那些只有最终用户采用可能发现的问题。
α测试是在软件开发公司内模拟软件系统运行环境下的一种验收测试,软件开发公司组织内部人员,模拟各类用户行为对即将面市的软件产品进行测试,试图发现并修改错误。当然,α测试也需要用户的参与。 经α测试测试调整的软件产品接下来进行β测试。β测试是指软件开发公司组织各方面典型用户在日常工作中实际使用β版本,并要求用户报告异常情况,提出批评意见。一般包括功能性、安全性、易用性、可扩展性、兼容性、效率、文档等方面的内容,然后软件开发公司再对β版本进行修改和完善。
15
验收测试主要包括配置复审、合法性检查、文档检查、软件一致性检查、软件功能和性能测试与测试结果评审等内容。
软件文档检查 软件代码测试 软件功能和性能测试 测试结果交付内容
16
6.5 回归测试 回归测试不是一个测试阶段,而是一种可以用于单元测试、集成测试、系统测试和验收测试各个测试过程的测试技术。
回归测试指软件系统被修改或扩充后重新进行的测试,回归测试是为了保证对软件修改后,没有引入新的错误而重复进行的测试。每当软件增加了新的功能,或软件中的缺陷被修正,这些变更都可能影响软件原来的结构和功能。为了防止软件变更产生的无法预料的副作用,不仅要对内容进行测试,还要重复进行过去已经进行的测试,以证明修改没有引起未曾预料的后果,或证明修改后软件仍能够满足实际的需求。 在软件系统运行环境改变后,或者发生了一个特殊的外部事件,也可以采用回归测试。
18
本章习题 传统软件测试过程划分为几个阶段?主要目的和对应的开发阶段是什么? 单元测试主要测试哪些内容?
什么是集成测试分析?可以从哪些方面进行? 常用的集成测试策略有哪些? 系统测试有哪些常用的方法? 验收测试的主要内容是什么? 为什么要进行回归测试,如何进行?
Similar presentations