收藏 分享(赏)

打桩测试.doc

上传人:ysd1539 文档编号:6864364 上传时间:2019-04-25 格式:DOC 页数:4 大小:32KB
下载 相关 举报
打桩测试.doc_第1页
第1页 / 共4页
打桩测试.doc_第2页
第2页 / 共4页
打桩测试.doc_第3页
第3页 / 共4页
打桩测试.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、在我们进行单元测试的时候,单元本身无法构成一个切实可运行的程序系统,所以我们需要为单元测试来开发桩模块和驱动模块,从而完成我们的单元测试目的,这是桩模块和驱动模块的作用。如果需要解释清除桩模块和驱动模块,首先您需要理解渐增式和非渐增式联调 。将若干个模块连接成一个可运行的系统通常有两种方式:一种是“非渐增式” ,即先独立地测试每一模块,然后将所有这些模块连接到一起运行;另一种是“渐增式”,即在已测试过的 N 个模块的基础上再增加一个模块,再对 N 十 1 个模块进行测试。 img /img非渐增式是先分别测试 6 个模块 A、B、C、D、E 、F ,然后将 6 个模块连接到一起再进行测试。 若

2、用这种方式,在测试某个模块 X 时,需要为它设计一个驱动模块和若干个桩模块(图 6.12)。驱动模块的作用是模拟 X 的调用模块,桩模块的作用是模拟 X 的下层模块。例如测试图 6.11 的模块 B 时,要为它设计一个驱动模块,其作用是将测试数据传送给模块 B,并显示 B 产生的结果,另外,由于模块 B要调用模块 E,所以还需设计一个名字为 E 的模块,它将接受 B 的控制并模拟E 的功能。 另一种方式是渐增式,它不是分别测试每个模块,而是逐步将要测试的模块同已测试的模块连接起来。若用渐增方式,模块测试和联合测试这两步是结合起来进行的。 渐增式又有“ 由顶向下 ”、 “由底向上”等多种。对图

3、6.11 的程序若采用“ 由底向上”的方式,则是先顺序地或并行地 测试模块 E、C、F ,此时需为每个模块准备一个驱动模块,但不必准备桩模块,然后为 B 准备一个驱动模块将 B 与 E连接起来测试,又为 D 准备一个驱动模块将 D 和 F 连接起来测试,这过程将继续至测试最后一个模块 A。 渐增式与非渐增式的比较 1) 非渐增式需要较多的人工,以图 6.11 为例,采用非渐增式共需准备 5个驱动模块和 5 个桩模块(假定 A 不需要驱动模块, C,E ,F 不需要桩模块)。而用渐增式,如果是“ 由顶向下 ”则可利用前面已测试过的模块,而不必另外准备驱动模块,如果是“ 由底向上 ”,也可利用已测

4、式过的模块,不必再准备桩模块。对图 6.11 来说,如用“由顶向下” 方式则只需要 5 个桩模块而不要驱动模块,如用“由底向上 ”方式则只要 5 个驱动模块而不需要桩模块。 2) 渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现这类错误。 3) 渐增式有利于排错。如果模块界面间有错,如果用非渐增式,这类错误要到最后联合测试时才能发现,此时很难判断错误发生在程序的哪一部分,但如果用渐增式,这类错误就较容易定位,它通常与最新加上去的那个模块有关。4) 渐增式比较彻底。对图 6.14 的例子采用渐增式测试,在测试模块 B 时,模块 A(由顶向下方式) 或模块 E

5、(由底向上方式)也要再次执行,虽然 A 或 E 前面已测试过,但与模块 B 连接起来也许又会产生一个新的条件,而这个条件在分别测试 A 或 E 时可能是被遗漏的。换句话说,渐增式以前面测试过的模块作为驱动模块或桩模块,所以这些模块将得到进一步的检查。 5) 渐增式需要较多的机器时间。以 图 6.11 为例如用由底向上渐增式,在测试模块 A 时,模块 B、C、D、E、F 也要执行,若用非渐增式,在测试模块 A 时,只需执行模拟 B、C、D 的桩模块。类似地,如用由顶向下渐增式,在测试模块 F 时,模块 A、B、C 、D、E 可能都要执行,而用非渐增式,则只需执行模块 F 本身以及它的驱动模块。所

6、以整个测试过程中,渐增式所需的机器时间比非渐增式多。 6) 使用非渐增方式,在开始时允许几个测试人员并行工作,这对大型系统来说,是很有意义的。 第 1)4)点是渐增式的长处,第 5) 6) 点是它的短处。 由顶向下和由底向上渐增式 有两种主要的渐增方式:“由顶向下” 和“由底向上”。由顶向下由顶向下渐增式首先测试顶模块(主模块),下一步再测试哪个模块则有多种选择,唯一的限制是:该模块的调用模块中至少有一个已测试过了。决定测试顺序的基本原则是:1) 尽早测试关键的模块。所谓关键的模块是指较复杂、较可能出错或含有新的算法的模块。2) 尽早测试包含输入输出操作的模块。因为这些模块被测试后,向程序送入

7、测试数据以及检查输出结果就方便了。由底向上由底向上与由顶向下的测试顺序正好相反,它首先测试最底层的模块,下一步再测试哪个模块则有多种选择,唯一的限制是:该模块的所有下层模块都已测试过了。同由顶向下一样,由底向上的测试顺序也与程序中的关健部分有关。用由底向上方式测试时,需要为每个模块准备一个驱动模块,它的作用是调用被测试的模块,包括设置输入参数、显示输出结果(或将实际输出与预期的输出作比较)。一般说来、驱动模块的作用是比较标准的,编写驱动模块比编写桩模块容易,可以用工具来实现。由于驱动模块直接与被测试模块联系,所以不必担心有其他模块介入的问题。 由底向上方式不能像由顶向下方式那样,是在测试中途获

8、得一个程序框架,因为由底向上方式的程序框架要到测试最后一个模块(顶模块)时才能形成,它实际上就是整个程序了。先说下概念:单元本身不是一个独立的程序,一个完整的可运行的软件系统并没有构成,所以必须为每个单元测试开发驱动单元和桩单元驱动单元(Driver) :所测函数的主程序,他接受测试数据,并把数据传送给所测试单元,最后再输出实测结果当被测试单元能完成相关功能时,也可以不要驱动单元桩单元(Stub):用来代替所测单元的子单元以下是我个人的理解:驱动单元:当测试一个孤立的单元时,其本身是不能运行的,因此,就要用驱动将数据传给被测单元,然后再把被测单元运算所输出的数据传给驱动单元,比较实际输出和预期输出是否一致例子:测试一个加法函数void driber() int sum=0;sum=add(1,1);if(2=sum)printf(“test case CAL_ST_SRS001_001 OK!n“);elseprintf(“test case CAL_ST_SRS001_001 fail!n);桩单元:测试一个被测单元是, ,该单元要调用一个函数,而在被调用函数不是正确时,我们可以从测试的角度模拟被调用的单元 (是在测试角度)例子:模拟加法函数的桩int stub_add(int a,int b)if(a=1)if(a=2)if(a=3)if(a=4).

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报