《软件测试的艺术》精华摘要(五)

上一篇 / 下一篇  2010-12-28 09:42:56 / 个人分类:读书笔记

模块(单元)测试

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

      动机:

         1、由于模块测试的注意力一开始集中在程序的较小单元上,因此它是一种管理组合的测试元素的手段。

                     2、模块测试减轻了调试(准确定位并纠正某个已知错误的过程)的难度。因为一旦某个错误被发现出来,我们就知道它在哪个具体的模块中。

                      3、模块测试通过为我们提供同时测试多个模块的可能,将并行工程引入软件测试中。

       5.1测试用例设计

           需要使用两种类型的信息:模块的规格说明和模块的源代码,规格说明一般都规定了模块的输入和输出参数以及模块的功能。

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

       5.2增量测试

           非增量测试:崩溃(big-bang)测试

           增量测试:集成

           测试单独的模块需要一个特殊的驱动模块(driver module)和一个或多个桩模块(stub module)。

           1、非增量测试所需的工作量要多一些。

           2、如果使用了增量测试,可以较早地发现模块中与不匹配接口、不正确假设相关的编程错误。

           3、使用增量测试,调试会进行得容易些。

           4、增量测试会将测试进行得更彻底。

           5、非增量测试所占用的机器时间显得少一些。

           6、模块测试阶段开始时,如果使用的是非增量测试,就会有更多的机会进行并行操作。

                  5.3自顶向下测试自底向上测试

            自顶向下测试是从程序的顶部或初始模块开始。测试开始之后,挑选哪一个后续模块进行增量测试没有唯一正确的方法,唯一的原则是:要成为合乎条件的下一个模块,至少一个该模块的从属模块(调用它的模块)事先经过了测试。

            1、如果程序中存在关键部分,那么在设计模块序列时就应将这些关键模块尽可能早地添加进去。所谓“关键部分”可能是某个复杂的模块、某个采用新算法的模块或某个被怀疑容易发生错误的模块。

            2、在设计模块序列时,应将I/O模块尽可能早地添加进来。

            优点:

1、 如果主要的缺陷发生在程序的顶层将非常有利

2、 一旦引入I/O功能,提交测试用例会更容易

3、 早期的程序框架可以进行演示,并可激发积极性

缺点:

1、 必须开发桩模块

2、 桩模块要比最初表现的更复杂

3、 在引入I/O功能之前,向桩模块中引入测试用例比较困难

4、 创建测试环境可能很难,甚至无法实现

5、 观察测试输出很困难

6、 使人误解设计和测试可以交迭进行

7、 会导致特定模块测试的完成延后

            自底向上的策略开始于程序中的终端模块(此类模块不再调用其他任何模块),要成为合乎条件的下一个模块,该模块所有的从属模块(它调用的模块)都已经事先经过了测试。

            优点:

1、 如果主要的缺陷发生在程序的底层将非常有利

2、 测试环境比较容易建立

3、 观察测试输出比较容易

缺点:

1、 必须开发驱动模块

2、 直到最后一个模块添加进去,程序才形成一个整体

  5.4、执行测试


TAG: 单元测试 集成 增量测试 非增量测试 自顶向下测试 自底向上测试

引用 删除 tyTesting2015   /   2015-11-20 10:37:38
5
 

评分:0

我来说两句

日历

« 2024-04-19  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 148360
  • 日志数: 20
  • 建立时间: 2010-11-07
  • 更新时间: 2012-04-01

RSS订阅

Open Toolbar