【正确答案】渐增式测试有以下两种不同组装模块的方法。
(1)自顶向下结合。该方法不需要编写驱动模块,只需要编写桩模块。其步骤是从顶层模块开始,沿被测程序的软件结构图的控制路径逐步向下测试,从而把各个模块都结合起来,这里又有两种组合策略。
①深度优先策略:先从软件结构中选择一条主控路径,把该路径上的模块一个个结合进来进行测试,以便完成一个特定的子功能,接着再结合其他需要优先考虑的路径。主控路径一般选择系统的关键路径或输入、输入路径。
②宽度优先策略:逐层结合直接下属的所有模块。
自顶向下测试的优点是:
①能较早地发现高层模块接口、控制等方面的问题。
②初期的程序概貌可让人们较早地看到程序的主功能,增强开发人员的信心。
自顶向下测试的缺点是:
①桩模块不可能提供完整的信息,因此把许多测试推迟到用实际模块代替桩模块之后。
②设计较多的桩模块,测试开销大。
③早期不能并行工作,不能充分利用人力。
(2)自底向上结合。该方法仅需编写驱动模块,不需编写桩模块。其步骤为:
①把底层模块组合成实现一个个特定子功能的族。
②为每一个族编写一个驱动模块,以协调测试用例的输入和测试结果的输出。
③对模块族进行测试。
④按软件结构图依次向上扩展,用实际模块替换驱动模块,形成一个个更大的族。
⑤重复②至④步,直至软件系统全部测试完毕。
自底向上测试的优点是:
①随着上移,驱动模块逐步减少,测试开销小一些。
②比较容易设计测试用例。
③早期可以并行工作。
④底层模块的错误能较早发现。
自底向上测试的缺点是:
①系统整体功能最后才能看到。
②上层模块发现得晚,上层模块的问题是全局性的问题,影响范围大。
由于自顶向下渐增式测试和自底向上渐增式测试的方法各有利弊,实际应用时,应根据软件的特点、任务的进度安排选择合适的方法。一般是将这两种测试方法结合起来,底层模块使用自底向上结合的方法组装成子系统,然后由主模块开始自顶向下对各子系统进行集成测试。
【答案解析】