(2)自底向上增量式测试

  自底向上增量式测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的,即从程序模块结构的底层模块开始集成和测试。

  由于是从底层开始集成,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经集成并测试完成,所以不再需要使用桩模块进行辅助测试;在模块测试过程中需要从子模块得到的信息可以直接运行子模块得到。

  采用自底向上增量式测试方法进行集成测试如下图所示:

  (3)混合增量式测试

  混合增量式测试是把自顶向下测试和自底向上测试这两种方式结合起来进行集成和测试;这样可以兼具两者的优点,而摒弃其缺点。

  常见的两种混合增量式测试方式:

  1)衍变的自顶向下的增量式测试:基本思想是强化对输入/输出模块和引入新算法模块的测试,并自底向上集成为功能相对完整且相对独立的子系统,然后由主模块开始自顶向下进行增量式测试

  2)自底向上-自顶向下的增量式测试:首先对含读操作的子系统自底向上直至根节点模块进行集成和测试,然后对含写操作的子系统做自顶向下的集成与测试

  第三,不同集成测试方法的比较。

  (1)非增量式测试与增量式测试的比较

  非增量式测试的方法是先分散测试,然后集中起来再一次完成集成测试;假如在模块的接口处存在错误,只会在后的集成测试时一下子暴露出来。

  增量式测试是逐步集成和逐步测试的方法,把可能出现的差错分散暴露出来,便于找出问题和修改;而且一些模块在逐步集成的测试中,得到了较多次的考验;因此,可能会取得较好的测试效果。

  结论:增量式测试要比非增量式测试具有一定的优越性。

  (2)自顶向下与自底向上增量式测试的比较

  自顶向下增量式测试:主要优点在于它可以自然的做到逐步求精,一开始能让测试者看到系统的框架;主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定困难。

  自底向上增量式测试:优点在于,由于驱动模块模拟了所有调用参数,即使数据流并未构成有向的非环状图,生成测试数据也无困难;主要缺点在于,直到后一个模块被加进去之后才能看到整个程序(系统)的框架。