软件测试中桩模块与驱动模块的概念与区别(转载)

桩模块和驱动模块(以C语言为例):

  很多人对桩模块和驱动模块的概念会搞不清楚,那么下面来介绍这两个概念:

  模块结构实例图:

  假设现在项目组把任务分给了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模块就是驱动模块。

  知识点:

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

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

原文地址:http://blog.csdn.net/snlying/article/details/6370067

时间: 2024-12-18 03:22:20

软件测试中桩模块与驱动模块的概念与区别(转载)的相关文章

Python类、模块、包的概念及区别

类 类的概念在许多语言中出现,是面向对象编程的基础,很容易理解.抽象出不同物体的共同特征,根据相似性原则,把彼此相似的物体归于相同的类概念, 它将数据和操作进行封装,以便将来的复用. 模块 模块,在Python中一个文件就可以认为是一个模块.在创建了一个脚本文件后,定义了某些函数和变量.你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量.模块名就是文件名去掉.py后缀. 模块也可以简单的划分为built-in模块和自定义模块 built-in 模块就是Python内置的一些模块,比

驱动模块和桩模块的概念和区别

转:http://blog.csdn.net/xhf55555/article/details/6819010 桩模块和驱动模块(以C语言为例): 很多人对桩模块和驱动模块的概念会搞不清楚,那么下面来介绍这两个概念: 模块结构实例图: 假设现在项目组把任务分给了7个人,每个人负责实现一个模块.你负责的是B模块,你很优秀,第一个完成了编码工作,现在需要开展单元测试工作,先分析结构图: 1.由于B模块不是最顶层模块,所以它一定不包含main函数(A模块包含main函数),也就不能独立运行. 2.B模

20150313 驱动模块分离概念

20150313 驱动模块分离概念 2015-03-13 Lover雪儿 还记得以前刚开始学习编写程序的时候,无论再多的代码,再多的功能都是使劲的往同一个.C文件中塞,最后导致的直接结果就是,代码多,功能复杂,严重的妨碍了我们代码可移植性甚至良好的阅读性,接下来,我们开始来学习将一个驱动程序进行拆分,根据各种代码的性质或者功能来写入不同的.C文件中,此处,我们来尝试使用平台设备来实现IMX257蜂鸣器的驱动分离代码. 前面我们实现了beep驱动,博客地址http://www.cnblogs.co

编译型语言、解释型语言、静态类型语言、动态类型语言概念与区别

最近在研究Python和Erlang.反复提到动态类型语言.动态语言.解释型语言这些概念.这些概念很生涩,在这里做一个总结. 编译型语言和解释型语言 1.编译型语言 需通过编译器(compiler)将源代码编译成机器码,之后才能执行的语言.一般需经过编译(compile).链接(linker)这两个步骤.编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件. 优点:编译器一般会有预编译的过程对代码进行优化.因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行

集群,分布式,微服务概念和区别理解

集群,分布式,微服务概念和区别理解 2018年02月04日 01:19:12 竹上 阅读数:18684 概念: 集群是个物理形态,分布式是个工作方式. 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方.而集群指的是将几台服务器集中在一起,实现同一业务. 分布式中的每一个节点,都可以做集群.而集群并不一定就是分布式的. 举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同

[转]浅析VO、DTO、DO、PO的概念、区别和用处

上一篇文章作为一个引子,说明了领域驱动设计的优势,从本篇文章开始,笔者将会结合自己的实际经验,谈及领域驱动设计的应用.本篇文章主要讨论一下我们经常会用到的一些对象:VO.DTO.DO和PO. 由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念: 概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来. DTO(Data Transfer Object):数据传输对象,这个

【转】控制台,终端,tty,shell等概念的区别

转自:http://www.2cto.com/os/201403/282583.html http://blog.sina.com.cn/s/blog_bcdac52b0101i2r1.html 控制台,终端,tty,shell等概念的区别 使用linux已经有一段时间,却一直弄不明白这几个概念之间的区别.虽然一直在用,但是很多概念都感觉模糊不清,这样不上不下的状态实在令人不爽.下面就澄清一下这些概念. 这些概念本身有着非常浓厚的历史气息,随着时代的发展,他们的含义也在发生改变,它们有些已经失去

软件测试作业2 — 软件测试中的错误Failure, Error, Fault的区别

软件测试中的错误Failure, Error, Fault的区别: Failure: External, incorrect behavior with respect to the requirements or other description of the expected behavior(预期行为出错或与其他的外部行为描述不符).指软件在运行时出现的功能的丧失,类似于看病时病人发病的症状. Fault: A static defect in the software(软件中的静态缺陷

block,inline和inline-block概念和区别

block,inline和inline-block概念和区别 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 大体来说HTML元素各有其自身的布局级别(block元素还是inline元素): 常见的块级元素有 DIV, F