1、第 6章 传统软件测试策略本章要点 传统软件测试过程则分为单元测试、集成测试、系统测试与验收测试几个阶段,与软件开发活动逆向形成对应关系。 单元测试确保每个模块独立正确的运行,多采用白盒测试,通过覆盖技术确保覆盖尽量多的出错点,对应着软件详细设计阶段; 集成测试建立在模块间的接口之上来测试软件结构,多采用黑盒测试,辅以白盒测试,对应着软件概要设计阶段; 系统测试检验软件是否满足功能、性能和行为方面的需求,基本完全采用黑盒测试,对应着软件需求分析阶段; 验收测试是检验软件产品是否符合要求的最后一道工序,它需要用户的参与与评审。6.1 单元测试 单元测试对软件设计的最小单元即模块的正确性进行验证,
2、主要测试模块在语法、格式和逻辑上可能存在的错误。不同的软件形式、不同的开发技术中,单元的具体含义可能不同。一般来说,单元指的是软件里最小的、可以独立执行编码的单位,并且它应该具有以下特征: 单元必须可测; 单元的行为或者输出可观测; 单元有明确的可定义的边界或接口。 在单元测试中,每个模块的测试工作可以独立的、并行的开展。 单元测试要针对每个程序模块进行测试,需要根据详细设计规约的源代码,了解模块的输入输出和内部逻辑结构。在测试时主要考虑五个方面的内容。 在进行单元测试时,被测试的单元本身不是独立的程序,需要为其开发驱动模块和桩模块。驱动模块是接受测试数据,并把数据传送给被测试的模块,然后打印
3、相关结果的“主程序 ”;桩模块是替代那些被被测试模块调用的模块,可能要使用子模块的接口,才能做一些少量的数据操作,并验证打印入口处的信息,然后返回。 构造单元测试环境的主要工作包括: 构造最小运行调度系统,即驱动模块,用以模拟被测模块的上一级模块; 模拟实现单元接口,即桩模块,用以模拟被测模块需要调用的模块接口; 模拟生成测试数据或状态,为单元运行准备动态环境。6.2 集成测试 集成是指将经过单元测试的模块按设计要求把它们连接起来,组成所规定的软件系统的过程。集成测试,也叫组装测试、联合测试等,使单元测试的逻辑扩展,是在单元测试的基础上,测试将所有的软件单元按照概要设计规约要求组装成模块、子系
4、统或系统的过程中,各部分功能能否达到或实现相应技术指标及要求的活动。集成测试主要是测试软件单元的组合能否正常工作。 集成测试是一个灰色地带,要做好集成测试不是一件容易的事情。集成测试应当针对概要设计规约尽早开始,并遵守一些原则: 集成测试应当尽早开始,并以概要设计规约为基础; 集成测试应当根据集成测试计划和方案进行,排除测试的随意性; 在模块和接口的划分上,测试人员应当和开发人员进行充分的沟通; 项目管理者保证测试用例经过了审核; 集成测试应当按照一定的层次进行; 集成测试的策略选择应当综合考虑质量、成本和进度三者之间的关系; 所有公共的接口都必须被测试到; 关键模块必须进行充分的测试; 测试结果应该被如实记录; 当接口发生修改时,涉及的相关接口都必须进行回归测试; 当测试计划中的结束标准满足时,集成测试结束。 集成测试分析可以从以下几个方面进行: 体系结构分析 模块分析 接口分析 集成测试策略分析 集成测试策略有很多种,主要可以分为增量式和非增量式两种类型。 非增量式集成测试 增量式集成测试 自顶向下增量式集成测试 自底向上增量式集成测试