《软件工程案例开发与实践》由会员分享,可在线阅读,更多相关《软件工程案例开发与实践(17页珍藏版)》请在金锄头文库上搜索。
1、软件工程案例开发与实践软件工程案例开发与实践北京交通大学出版社北京交通大学出版社14.5 14.5 软件测试过程软件测试过程 单元测试的主要内容是模块接口测试。单元测试的主要内容是模块接口测试。 模块接口测模块接口测试中的被测模块并不是一个独立的程序,在考虑测试模块试中的被测模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相关联的模块。这些辅助模块可分为两种:与被测模块相关联的模块。这些辅助模块可分为两种:(1 1)驱动模块:相当于被测模块的主程序。它接收测试)驱动模块:相当于被测模块的主程序
2、。它接收测试数据,把这些数据传送给被测模块,最后输出实测结果。数据,把这些数据传送给被测模块,最后输出实测结果。例如,模块例如,模块A A要调用模块要调用模块B B,现在测试模块,现在测试模块B B时,要编写一时,要编写一个驱动模块(代替模块个驱动模块(代替模块A A的功能)来调用模块的功能)来调用模块B B,( (假设模假设模块块A A是正确的是正确的) ) 检查是否模块检查是否模块B B的缺陷。的缺陷。(2 2) 桩模块:用以代替被测模块调用的子模块。桩模块桩模块:用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不需要把子模块所有功能都带进可以做少量的数据操作,不需要把子模块所有
3、功能都带进来,但不允许什么事情也不做。来,但不允许什么事情也不做。14.5.1 单元测试单元测试 14.5.2集成测试集成测试 集集成成测测试试是是根根据据实实际际情情况况对对程程序序模模块块采采用用适适当当的的集集成成测测试试策策略略组组装装起起来来,对对系系统统的的接接口口以以及及集集成成后后的的功功能能进进行行正正确确校验的测试工作。校验的测试工作。 通通常常,把把模模块块组组装装成成为为系系统统的的测测试试方方式式有有两两种种:一一次次性性集集成成测测试试方方式式 ;增增值值式式集成测试方式集成测试方式 .1. 1. 一次性集成测试方式一次性集成测试方式 一次性集成测试方式也称作非增值
4、式集成测试。一次性集成测试方式也称作非增值式集成测试。先分别测试每个模块,再把所有模块按设计要求放在一先分别测试每个模块,再把所有模块按设计要求放在一起结合成所需要实现的程序。起结合成所需要实现的程序。 如图如图12-612-6是所示按照一次性集成测试方式的实例。是所示按照一次性集成测试方式的实例。如图如图12-612-6(a a)所示表示的是整个系统结构,共包含)所示表示的是整个系统结构,共包含6 6个个模块。具体测试过程如下:模块。具体测试过程如下:(1 1)如图)如图12-612-6(b b)所示,为模块)所示,为模块B B配备驱动模块配备驱动模块D1D1,来模拟模块来模拟模块A A对对
5、B B的调用。为模块的调用。为模块B B配备桩模块配备桩模块S1S1,来模,来模拟模块拟模块E E被被B B调用。对模块调用。对模块B B进行单元测试;进行单元测试;(2 2)如图)如图12-612-6(d d)所示,为模块)所示,为模块D D配备驱动模块配备驱动模块D3D3,来模拟模块来模拟模块A A对对D D的调用。为模块的调用。为模块D D配备桩模块配备桩模块S2S2,来模,来模拟模块拟模块F F被被D D调用。对模块调用。对模块D D进行单元测试;进行单元测试;(3)如图)如图12-6(c)、图)、图11-5(e)、图)、图11-5(f)所示,)所示,为模块为模块C、E、F分别配备驱动
6、模块分别配备驱动模块D2、D4、D5。对模。对模块块C、E、F分别进行单元测试;分别进行单元测试;(4)如图)如图12-6(g)表示,为主模块)表示,为主模块A配备三个桩模块配备三个桩模块S3、S4、S5。对模块。对模块A进行单元测试;进行单元测试;(5)在将模块)在将模块A、B、C、D、E分别进行了单元测试之分别进行了单元测试之后,再一次性进行集成测试;后,再一次性进行集成测试;(6)测试结束。)测试结束。2. 增值式集成测试方式增值式集成测试方式增值式集成测试方式有三种:增值式集成测试方式有三种:(1)自顶向下增值测试方式)自顶向下增值测试方式 主控模块作为测试驱动,所有与主控主控模块作为
7、测试驱动,所有与主控模块直接相连的模块作为桩模块;根据集模块直接相连的模块作为桩模块;根据集成的方式(深度或广度),每次用一个模成的方式(深度或广度),每次用一个模块把从属的桩模块替换成真正的模块;在块把从属的桩模块替换成真正的模块;在每个模块被集成时,都必须已经进行了单每个模块被集成时,都必须已经进行了单元测试;进行回归测试以确定集成新模块元测试;进行回归测试以确定集成新模块后没有引入错误。这种组装方式将模块按后没有引入错误。这种组装方式将模块按系统程序结构,沿着控制层次自顶向下进系统程序结构,沿着控制层次自顶向下进行组装。行组装。 如图12-7所示表示的是按照深度优先方式遍历的自顶向下增值
8、的集成测试实例。具体测试过程如下:在树状结构图中,按照先左后右的顺序确定模块集成路线;(1)如图12-7(a)所示,先对顶层的主模块A进行单元测试。就是对模块A配以桩模块S1、S2和S3,用来模拟它所实际调用的模块B、C、D,然后进行测试; (2)如图12-7(b)所示,用实际模块B替换掉桩模块S1,与模块A连接,再对模块B配以桩模块S4,用来模拟模块B对E的调用,然后进行测试;(3)图12-7(c)是将模块E替换掉桩模块S4并与模块B相连,然后进行测试;(4)判断模块E没有叶子结点,也就是说以A为根结点的树状结构图中的最左侧分支深度遍历结束。转向下一个分支;(5)图12-7(d)所示,模块C
9、替换掉桩模块S2,连到模块A上,然后进行测试;判断模块C没有桩模块,转到树状结构图的最后一个分支;(6)如图12-7(e)所示,模块D替换掉桩模块S3,连到模块A上,同时给模块D配以桩模块S5,来模拟其对模块F的调用。然后进行测试;(7)如图12-7(f)所示,去掉桩模块S5,替换成实际模块F连接到模块D上,然后进行测试;(8)对树状结构图进行了完全测试,测试结束。(2)自底向上增值测试方式 组装从最底层的模块开始,组合成一个构件,用以完成指定的软件子功能。编制驱动程序,协调测试用例的输入与输出;测试集成后的构件;按程序结构向上组装测试后的构件,同时除掉驱动程序。 (3) 混合增值测试方式 自顶向下增值的方式和自底向上增值的方式各有优缺点。通常是把以上两种方式结合起来进行组装和测试。14.5.3系统测试系统测试 系统测试是将已经集成好的软件系统与计算机硬件、外设、某些支撑软件、数据和人员等结合在一起,在实际运行环境下,对计算机系统进行一系列的确认测试。 再见!再见!