集成测试技术

集成测试技术包括自底向上、自顶向下、三明治测试和线序测试。下面一一做介绍:

自底向上测试

自底向上测试技术是一种递增式的测试方法,这种技术首先对最底层的模块和系统组件进行集成测试。紧接着,测试分层次的递增执行,一直到最顶层。经常需要驱动程序或者能调用当前测试模块或系统组件的临时测试程序。自底向上测试首先通过能调用相关接口的驱动程序来测试最底层的模块或系统组件。在这些基本组件被测试之后,程序或系统组件层次结构的下一个逻辑层次开始测试并不断驱动向更高的层次。

自底向上测试是大而复杂的系统测试常用技术,要经过相当长的一段时间才能使系统可视化。软件的菜单或外部用户界面是最后被测试的,用户不能及早对这些界面或功能进行检查。自底向上测试技术有一个潜在的缺陷,就是需要花大量的时间来创建驱动程序,这可能会增加额外的错误。

自顶向下测试

自顶向下测试技术是一种增量式的测试方法,它在第一时间内对高层模块或系统组件进行集成测试。然后按照层次逐步进行测试,直到处于底层的模块或组件。这种技术要求建立一些桩模板。当一个模块或系统组件被测试的时候,他所调用的模块或组件由桩模板来代表,这些桩模板连同模拟出来的结果一起把控制返回给调用它们的模块或系统组件。当测试过程沿着程序结构向下进行的时候,每一个桩模块会用它所代表的实际代码来代替。模块的先后测试顺序没有一定之规,但唯一的规则是调用其他模板的模块或系统组件必须要先进行测试。

自顶向下测试可以较早地发现程序顶层的一些主要的设计缺陷,因为顶层的一些功能被测试的早,而这些功能又处在控制结构的顶层,这样就实现了对程序设计的早期验证。原型设计越早,就会越早实现演示版本。因为菜单通常处于控制结构的顶层,所以外部界面可以尽早地展现给用户。桩模板需要建立,但通常来说比驱动模块的创建要容易一些。从另一方面来讲,一些很重要的底层模块或系统组件直到后期才能够被测试,但发生在这些底层模块的问题一般不会导致系统的重新设计。

是指用来替换一部分功能的程序段。桩程序可以用来模拟已有程序的行为(比如一个远端机器的过程)或是对将要开发的代码的一种临时替代。因此,打桩技术在程序移植、分布式计算、通用软件开发和测试中用处很大。桩程序是一段并不执行任何实际功能的程序,只对接受的参数进行声明并返回一个合法值。这个返回值通常只是一个对于调用者来讲可接受的值即可。桩通常用在对一个已有接口的临时替换上,实际的接口程序在未来再对桩程序进行替换。

一段桩程序如

BEGIN ThermometerRead(Source insideOrOutside)

  RETURN 28

END ThermometerRead

三明治测试

三明治测试同时使用自顶向下和自底向上技术并且是对两种技术做出了折中。这一方法同时结合自顶向下和自底向上的方法,在分层控制结果的中间相遇。中间的结合点是由程序结构定义的。

这一方法一般用于大型程序,但是很难证明它也适用于小型程序。层次结构最高等级通常包括系统的用户界面,需要桩来模仿业务的功能。最底层包括需要驱动器以模仿更低级别模块的原始级别模块。

线序测试

线序测试是通过测试应用程序中一系列的,完成某个业务的程序单元,来确保关键功能能力的一种软件测试技术。

基本上,一条线就是一系列的功能组成的一个业务事务。把整个系统线序化,分离成一些单独的处理过程。每个功能单独测试,然后一次一个地增加到这条线中。接着就是测试这些业务事务线索。把测试过的线索当做子系统按照顺序集成和增量地进行测试,这样整个系统也就测试完成了。这种方法可以使早期系统测试和验收测试更加容易。



留言