桩模块和驱动模块

    在写软件工程第二遍文档时,在测试计划测试条件那里,提到了一个自己没有听过的词,那就是桩模块,出于好奇,自己上网对其究竟是什么查了查,看完一下子就明白了。

  Ø  概念

   u  桩模块

    桩模块:集成测试前要为被测模块编制一些模拟其下级模块功能的“替身”模块,以代替被测模块的接口,接受或传递被测模块的数据,这些专供测试用的“假”模块称为被测模块的桩模块。

   u  驱动模块

    在这里还是不得不提和其密不可分的另一个概念,那就是驱动模块。

     1.驱动模块:在大多数场合称为"主程序",它接收测试数据并将这些数据传递到被测试模块,

     2.桩模块就是用来代替所测的子模块,它不能为空,但也不需要那个子模块的所有功能都实现,只要实现在一部分就行了;

     3.驱动模块就是用来代替主模块,用它来调用子模块。

     简而言之:被测模块上层为驱动模块,是调用被测模块的,被测模块下层为桩模块,是被被测模块调用的。

  Ø  举例说明

   u  图示说明

    假设现在项目组把任务分给了7个人,每个人负责实现一个模块。你负责的是B模块,你很优秀,第一个完成了编码工作,现在需要开展单元测试工作,先分析结构图:

 

    1、由于B模块不是最顶层模块,所以它一定不包含main函数(A模块包含main函数),也就不能独立运行。   

    2、B模块调用了D模块和E模块,而目前D模块和E模块都还没有开发好,那么想让B模块通过编译器的编译也是不可能的。

      那么怎样才能测试B模块呢?

    需要做:

    1、写两个模块Sd和Se分别代替D模块和E模块(函数名、返回值、传递的参数相同),这样B模块就可以通过编译了。Sd模块和Se模块就是桩模块。

    2、写一个模块Da用来代替A模块,里面包含main函数,可以在main函数中调用B模块,让B模块运行起来。Da模块就是驱动模块。

     小结

     a)桩模块的使命除了使得程序能够编译通过之外,还需要模拟返回被代替的模块的各种可能返回值(什么时候返回什么值需要根据测试用例的情况来决定)。

     b)驱动模块的使命就是根据测试用例的设计去调用被测试模块,并且判断被测试模块的返回值是否与测试用例的预期结果相符

    Ø  总结

    驱动模块是调用被测对象,桩是被测对象调用的虚拟块,虚拟块也是由测试人员写的一个模块,就是那个所谓的桩。

    驱动模块是为了驱动被测模块而编写的模拟块,而桩模块相当于被测模块要调用的块的虚拟。

    驱动模块主要完成以下事情:

      1、接受测试输入;

      2、对输入进行判断;

      3、将输入传给被测单元,驱动被测单元执行;

      4、接受被测单元执行结果,并对结果进行判断;

      5、将判断结果作为用例执行结果输出测试报告。

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值