请教打桩与驱动

请教打桩与驱动,第1张

先说下概念:单元本身不是一个独立的程序,一个完整的可运行的软件系统并没有构成,所以必须为每个单元测试开发驱动单元和桩单元.驱动单元(Driver):所测函数的主程序,他接受测试数据,并把数据传送给所测试单元,最后再输出实测结果.当被测试单元能完成相关功能时,也可以不要驱动单元.桩单元(Stub):用来代替所测单元的子单元.以下是我个人的理解:驱动单元:当测试一个孤立的单元时,其本身是不能运行的,因此,就要用驱动将数据传给被测单元,然后再把被测单元运算所输出的数据传给驱动单元,比较实际输出和预期输出是否一致.例子:测试一个加法函数void driber(){ int sum=0sum=add(1,1)if(2==sum) printf("test case CAL_ST_SRS001_001 OK!\n")else printf("test case CAL_ST_SRS001_001 fail!\n)}桩单元:测试一个被测单元是,,该单元要调用一个函数,而在被调用函数不是100%正确时,我们可以从测试的角度模拟被调用的单元.(是在测试角度)例子:模拟加法函数的桩int stub_add(int a,int b){ if((a==1)&&(b==1)) return 2if((a==2)&&(b==-1)) return 1if((a==3)&&(b==0)) return 3if((a==4)&&(b==1)) return 5............. }昨天刚刚学,,现学现用!^&^~~~

单元本身无法构成一个切实可运行的程序系统,所以我们需要为单元测试来开发桩模块和驱动模块,从而完成我们的单元测试目的,这是桩模块和驱动模块的作用。

驱动模块是用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。

桩模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。

如果需要解释清楚桩模块和驱动模块,首先您需要理解渐增式和非渐增式联调 。

将若干个模块连接成一个可运行的系统通常有两种方式:一种是“非渐增式”,即先独立地测试每一模块,然后将所有这些模块连接到一起运行;另一种是“渐增式”,即在已测试过的N个模块的基础上再增加一个模块,再对N十1个模块进行测试。

什么是桩模块和驱动模块?什么是桩模块和驱动模块?

非渐增式是先分别测试6个模块A、B、C、D、E、F,然后将 6个模块连接到一起再进行测试。

若用这种方式,在测试某个模块X时,需要为它设计一个驱动模块和若干个桩模块(图 6.12)。驱动模块的作用是模拟X的调用模块,桩模块的作用是模拟X的下层模块。例如测试图 6.11的模块B时,要为它设计一个驱动模块,其作用是将测试数据传送给模块B,并显示B产生的结果,另外,由于模块B要调用模块E,所以还需设计一个名字为E的模块,它将接受B的控制并模拟E的功能。

另一种方式是渐增式,它不是分别测试每个模块,而是逐步将要测试的模块同已测试的模块连接起来。若用渐增方式,模块测试和联合测试这两步是结合起来进行的。

渐增式又有“由顶向下”、“由底向上”等多种。对图6.11的程序若采用“由底向上”的方式,则是先顺序地或并行地 测试模块 E、C、F,此时需为每个模块准备一个驱动模块,但不必准备桩模块,然后为B准备一个驱动模块将B与E连接起来测试,又为D准备一个驱动模块将D和F连接起来测试,这过程将继续至测试最后一个模块A。

驱动程序一般指的是设备驱动程序(Device Driver),是一种可以使计算机和设备进行相互通信的特殊程序。相当于硬件的接口, *** 作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被比作“ 硬件的灵魂”、“硬件的主宰”、“硬件和系统之间的桥梁”等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11476830.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存