《软件系统开发技术》课件第6章.ppt

《软件系统开发技术》课件第6章.ppt

  1. 1、本文档共196页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

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

渐增式又有“由顶向下”、“由底向上”等多种。对图6.14的程序若采用“由底向上”的方式,则是先顺序地或并行地(如分别由3个人完成)测试模块E、C、F,此时需为每个模块准备一个驱动模块,但不必准备桩模块,然后为B准备一个驱动模块将B与E连接起来测试,又为D准备一个驱动模块将D和F连接起来测试,这过程将继续至测试最后一个模块A。对图6.14也可用“由顶向下’’方式测试,下一节还要进一步讨论。

将渐增式和非渐增式加以比较,我们可看出:

1)非渐增式需要较多的人工,以图6.14为例,采用非渐增式共需准备5个驱动模块和5个桩模块(假定A不需要驱动模块,C、E、F不需要桩模块)。而用渐增式,如果是“由顶向下”,则可利用前面已测试过的模块,而不必另外准备驱动模块,如果是“由底向上”,也可利用已测式过的模块,不必再准备桩模块。对图6.14来说,如用“由顶向下”方式则只需要5个桩模块而不要驱动模块,如用“由底向上”方式则只要5个驱动模块而不需要桩模块。2)渐增式可以较早地发现模块界面之间的错误,非渐增式则要到最后将所有模块连接起来时才能发现这类错误。

3)渐增式有利于排错。如果模块界面间有错,如采用非渐增式,这类错误要到最后联合测试时才能发现,此时很难判断错误发生在程序的哪一部分,但如果用渐增式,这类错

误就较容易定位,它通常与必威体育精装版加上去的那个模块有关。4)渐增式比较彻底。对图6.14的例子采用渐增式测试,在测试模块B时,模块A(由顶向下方式)或模块E(由底向上方式)也要再次执行,虽然A或E前面已测试过,但与模块

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

中,渐增式所需的机器时间比非渐增式多。

但是,从另一方面来看,非渐增式比渐增式需要较多的驱动模块和桩模块,而编写这些模块也需要一定的机器时间,所以这又抵销了上面的一部分机器时间。6)使用非渐增方式,在开始时允许几个测试人员并行工作,这对大型系统来说,是很有意义的。

上面6点中,第1)~4)点是渐增式的长处,第5)~6)点是它的短处,考虑到目前计算机领域的一些特点:硬件价格大幅度下降、人工费用上升、软件错误也在增加……等,又

考虑到错误发现得越早则纠正它的代价就越低等等,上述第1)~4)点就显得更加重要,而第5)点却意义不大,第6)点则是渐增式的唯一缺点了。6.7.2由顶向下和由底向上渐增式

上节已得出结论:渐增式是比较优越的,本节讨论两种主要的渐增方式:“由顶向下”和“由底向上”。

必须指出的是:“由顶向下设计”和“由顶向下测试”是两回事,一个用“由顶向下”方式设计的程序既可用“由顶向下”方式测试,又可用“由底向上”方式测试。1.由顶向下

由顶向下渐增式首先测试顶模块(主模块),下一步再测试哪个模块则有多种选择,唯一的限制是:该模块的调用模块中至少有一个已测试过了。

下面以图6.16为例进行讨论。该程序中模块J包含了读操作,模块I包含了写操作。我们首先要测试顶模块A,此时需要编写分别模拟B、C、D的三个桩模块。由于顶模块本身一般都不执行输入输出操作,所以测试数据要由某个(或几个)桩模块提供给它,同样,顶模块的工作结果也需要由某个(或几个)桩模块输出,以便供测试人员分析。如何编写这些桩模块呢?既然A调用B,说明A希望B做某些工作,例如回送给A某个有意义的结果。如果桩模块B仅仅回送给A一个固定的结果,这往往是不够的。因为A对B的某次调用可能希望B产生一个特殊的值,但是,如何将几个不同的测试数据传送给A呢?一种方法是编写几个不同的桩模块B,检查某个测试用例时,相应地使用某个桩模块;另一种方法是将测试数据放在某个文件中,使桩模块B读该文件,再将数据传送给A。

可以想象,无论使用哪一种方法,桩模块的编写都是比较复杂的,这是由顶向下方式的困难之一。图6.16图6.17模块A

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档