模块测试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ValDC_Morning/article/details/78676090

本博客主要分享关于模块测试(单元测试)的相关概念。
以及再进行模块测试中的各种测试方法,和他们各自的优缺点。

大型测试的软件程序(超过500条语句的程序)需要特别的测试对策。

大型程序测试的第一个步骤:模块测试

模块测试(或单元测试)是对程序中的单个子程序、子程序或过程进行测试的过程。

一开始并不是对整个程序进行测试,先测试构成程序的较小模块上面。

1、模块测试的优点
(1)模块测试对较小单元进行测试,是一种管理组合的测试元素的手段。
(2)模块测试减轻了调试的难度(准确定位并纠正某个已知错误的过程)的难度。
(3)模块测试通过为我们提供同时测试多个模块的可能,将并行工程引入软件测试中。

模块测试的目的是将模块的功能与定义模块的功能规格进行比较。

{
从三个方面讨论模块测试:
1、测试用例设计方式
2、模块测试及集成的顺序
3、对执行模块测试的建议

一、测试用例设计
1、模块的规格说明
一般规定了模块的输入参数和输出参数以及模块的功能
2、模块的源代码

模块测试总体上是面向白盒测试的,对完整的程序,白盒测试不容易展开;
后续测试过程着眼于发现其他类型的错误(这些错误不一定与逻辑结构有关,比如程序未能满足用户需求)

模块测试的测试用例设计过程:使用一种或多种白盒测试方法分析模块逻辑结构,然后使用黑盒测试方法对照模块的规格说明以补充测试用例。

二、增量测试
将模块组装成工作程序的方式
增量测试和非增量测试
两种增量方法:自顶向下和自底向上开发或测试过程

1、软件测试是否应先独立测试每个模块,然后将这些模块组装成完整的程序?这种方法称为非增量测试(崩溃测试)
2、先将下一步要测试的模块组装到测试完成的模块集合中,再进行测试,称为增量测试或集成。

传统的非增量测试:
先对每一个模块进行单独地模块测试,将每一个模块视为一个独立的个体。这些模块可以同时或者按次序进行测试,最后将这些模块组装或者集成为完整的程序。
这里写图片描述
测试单独的模块需要一个特殊的驱动模块(driver module)和一个或多个桩模块(stub module)。测试模块B,设计测试用例,将测试用例作为输入参数由驱动模块传递给模块B。驱动模块是人们编写的一个小模块,用来将测试用例驱动或传输到被测模块中(也可以由测试工具替代)。驱动模块还必须向测试人员显示模块B的结果。此外,模块B调用了模块E,所以还必须使用一个额外的组件,该组件在模块B调用模块E的时候接受模块B的控制指令。就由桩模块来完成,它是一个被命名为“E”的特殊模块,用来模拟E的功能。当所有的模块测试都完成之后,就将这些模块组装成完整的程序。

增量测试 不同于独立地测试每个模块,增量测试首先将下一个要测试的模块组装到前面已经测试过的模块集合中去。

Conclusion:

1、非增量测试所需工作量要多一些,需要准备驱动模块和桩模块。
自底向上的增量测试只需要驱动模块不需要桩模块;
自顶向下的增量测试只需要桩模块不需要驱动模块。
增量测试的工作量要少一些,因为使用前面测试过的模块来取代非增量测试中所需要的桩模块(自底向上)或驱动模块(自顶向下(从顶部开始测试))

2、若使用增量测试,可以较早发现模块中与不匹配接口、不正确假设相关的编程错误(尽早对模块进行了集成测试)。采用非增量测试,如果先前对各个模块测试都没有发现问题,各个模块内部并没有错误,但是集成综合测试的时候,可能有接口不匹配等问题,造成整个程序出现问题,发现问题的时间太晚,导致最后修正难度增大,而且找出问题更不容易。

3、如果使用了增量测试,调试会进行的容易一些。假定存在着与模块之间接口或假设相关的编程错误,那么如果使用非增量测试,直到整个程序组装之后,错误才浮现出来,此时,定位错误难度很大,它可能存在于程序内部的任何一个位置。 如果使用增量测试,这种类型的错误就很容易发现,因为该错误很可能与最近添加的模块有关。

4、增量测试会将测试进行得更彻底,增量测试使用先前测试过的模块,取代了非增量测试中使用的桩模块或驱动模块。因此,到最后一个模块测试完成时,实际的模块经受到了更多的检验。

5、非增量测试所占用机器的时间显得少一些。完成一次增量测试所需执行的机器命令多于采用非增量测试方法所需的指令。但是非增量测试要比增量测试需要更多的驱动模块和桩模块,开发这些驱动模块和桩模块是要占用机器时间的。

6、模块测试阶段开始时,如果使用的是非增量测试,就有更多机会进行并行操作(所有模块可以同时测试),在模块开始之时,项目的人员数量常常处于最高峰。

}

猜你喜欢

转载自blog.csdn.net/ValDC_Morning/article/details/78676090