正在加载图片...
②单元测试的步骤 通常单元测试在编码阶段进行。在源程序代码编制完成,经过评审和验证,确认没有语 法错误之后,就开始进行单元测试的测试用例设计。利用设计文档,设计可以验证程序功能 找出程序错误的多个测试用例。对于每一组输入,应有预期的正确结果 模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些 辅助模块去模拟与被测模块相联系的其它模块。这些辅助模块分为两种: ■驱动模块:相当于被测模块的主 程序。它按收测试数据,把这些数据传「测试用例 驱动模块 测试结果 送给被测模块,最后输出实测结果 ■桩模块:用以代替被测模块调用 被测模块 的子模块。桩模块可以做少量的数据操 作,不需要把子模块所有功能都带进来 桩模块 桩模块 桩模块 但不允许什么事情也不做 图54单元测试的测试环境 被测模块、与它相关的驱动模块及 桩模块共同构成了一个“测试环境”,见图5.4 如果一个模块要完成多种功能,且以程序包或对象类的形式出现,例如Ada中的包 MODULA中的模块,C++中的类。这时可以将这个模块看成由几个小程序组成。对其中的每 个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。对支持某些标准规程的 程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。 (2)集成测试 在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑: 在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失 一个模块的功能是否会对另一个模块的功能产生不利的影响: ·各个子功能组合起来,能否达到预期要求的父功能 全局数据结构是否有问题 ■单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。 单个模块的错误是否会导致数据库错误。 选择什么方式把模块组装起来形成一个可运行的系统,直接影响到模块测试用例的形 式、所用测试工具的类型、模块编号的次序和测试的次序、以及生成测试用例的费用和调试 的费用。通常,把模块组装成为系统的方式有两种方式: ①一次性集成方式 它是一种非增殖式集成方式。也叫做整体拼装。使用这种方式,首先对每个模块分别进 行模块测试,然后再把所有模块组装在一起进行测试,最终得到要求的软件系统 由于程序中不可避免地存在涉及模块间接口、全局数据结构等方面的问题,所以一次试 运行成功的可能性并不很大 ②增殖式集成方式 又称渐増式集成方式。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较 大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。最后通过增殖逐 步组装成为要求的软件系统。 自顶向下的增殖方式:将模块按系统程序结构,沿控制层次自顶向下进行集成。由于 这种增殖方式在测试过程中较早地验证了主要的控制和判断点。在一个功能划分合理的程序 结构中,判断常出现在较高的层次,较早就能遇到。如果主要控制有问题,尽早发现它能够 减少以后的返工 自底向上的增殖方式:从程序结构的最底层模块开始组装和测试。因为模块是自底向7 ② 单元测试的步骤 通常单元测试在编码阶段进行。在源程序代码编制完成,经过评审和验证,确认没有语 法错误之后,就开始进行单元测试的测试用例设计。利用设计文档,设计可以验证程序功能、 找出程序错误的多个测试用例。对于每一组输入,应有预期的正确结果。 模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些 辅助模块去模拟与被测模块相联系的其它模块。这些辅助模块分为两种: ▪ 驱动模块:相当于被测模块的主 程序。它接收测试数据,把这些数据传 送给被测模块,最后输出实测结果。 ▪ 桩模块:用以代替被测模块调用 的子模块。桩模块可以做少量的数据操 作,不需要把子模块所有功能都带进来, 但不允许什么事情也不做。 被测模块、与它相关的驱动模块及 桩模块共同构成了一个“测试环境”,见图 5.4。 如果一个模块要完成多种功能,且以程序包或对象类的形式出现,例如 Ada 中的包, MODULA 中的模块,C++中的类。这时可以将这个模块看成由几个小程序组成。对其中的每 个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。对支持某些标准规程的 程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。 (2) 集成测试 在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑: ▪ 在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失; ▪ 一个模块的功能是否会对另一个模块的功能产生不利的影响; ▪ 各个子功能组合起来,能否达到预期要求的父功能; ▪ 全局数据结构是否有问题; ▪ 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。 ▪ 单个模块的错误是否会导致数据库错误。 选择什么方式把模块组装起来形成一个可运行的系统,直接影响到模块测试用例的形 式、所用测试工具的类型、模块编号的次序和测试的次序、以及生成测试用例的费用和调试 的费用。通常,把模块组装成为系统的方式有两种方式: ① 一次性集成方式 它是一种非增殖式集成方式。也叫做整体拼装。使用这种方式,首先对每个模块分别进 行模块测试,然后再把所有模块组装在一起进行测试,最终得到要求的软件系统。 由于程序中不可避免地存在涉及模块间接口、全局数据结构等方面的问题,所以一次试 运行成功的可能性并不很大。 ② 增殖式集成方式 又称渐增式集成方式。首先对一个个模块进行模块测试,然后将这些模块逐步组装成较 大的系统,在组装的过程中边连接边测试,以发现连接过程中产生的问题。最后通过增殖逐 步组装成为要求的软件系统。 ▪ 自顶向下的增殖方式:将模块按系统程序结构,沿控制层次自顶向下进行集成。由于 这种增殖方式在测试过程中较早地验证了主要的控制和判断点。在一个功能划分合理的程序 结构中,判断常出现在较高的层次,较早就能遇到。如果主要控制有问题,尽早发现它能够 减少以后的返工。 ▪ 自底向上的增殖方式:从程序结构的最底层模块开始组装和测试。因为模块是自底向 图 5.4 单元测试的测试环境
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有