• 软件测试术语表
  • 首页

软件测试 - 自底向上测试



软件测试分为多个阶段,即单元测试、集成测试、系统测试和验收测试。自底向上方法是集成测试下的一个概念,其中通过组合多个组件进行验证,然后根据程序源代码的控制流从下往上移动到顶部。

什么是软件自底向上测试?

软件自底向上测试是集成测试的一种,其中首先测试每个组件,然后逐步将其与其他组件组合起来形成复杂的系统,直到测试整个软件。先验证较低级别的组件,然后是较高级别的组件。

自底向上测试是一种用户友好的测试方法,有助于提高软件质量。让我们以一辆汽车为例,它由多个模块组成,例如制动器、发动机、车轮、方向盘、燃油控制等。首先分别测试每个单独的模块,然后与其他模块集成。例如,首先验证制动系统,然后与方向盘结合。集成后,测试两个模块之间的通信、流程、同步等。两者都应该能够作为一个单元工作。因此,它有助于尽早发现错误,而不是在整辆汽车制造完成后再进行测试。

执行自底向上测试的步骤

执行软件自底向上测试的步骤如下:

步骤1 - 通过组合较低级别的组件创建组。

步骤2 - 实现用于验证的控制程序。这称为驱动程序,它有助于调节测试用例的输入和输出。

步骤3 - 只对底层组件进行测试。

步骤4 - 最后,移除驱动程序,并将各个集群通过从下往上移动到整个程序流程中组合起来。

自底向上测试示例

上图显示了自底向上测试的架构:

Bottom Up Testing

这里,各个组件如组件1和2所示组合在一起。然后,在驱动程序A和B的帮助下,必须验证每个组件。测试完成后,移除两个驱动程序,并将组件1和2与模块A集成,我们可以向上移动到其他顶级模块。

自底向上集成 - 流程图

自底向上测试由以下流程图表示:

Bottom Up Testing in Test Life Cycle

自底向上方法的集成顺序将是:

4,2
5,2
6,3
7,3
2,1
3,1

测试方法

+ Firstly, Test 4,5,6,7 individually using drivers.
+ Test 2 such that it calls 4 and 5 separately. 
If an error occurs we know that the problem is in one of the modules.
+ Test 1 such that it calls 3 and If an error occurs we know that
the problem is in 3 or in the interface between 1 and 3

虽然顶级组件最重要,但使用此策略最后进行测试。在自底向上方法中,在测试组件4、5、6、7时,组件2和3由驱动程序替换。它们通常比桩程序更复杂。

自底向上测试的优点

自底向上测试的优点如下:

  • 设计和提出不同的测试条件是一个非常简单的过程。
  • 可以很快得出测试结果。
  • 不需要了解软件的内部工作原理。
  • 低层组件经过彻底测试,并与面向对象的体系结构兼容。
  • 它有助于在软件开发生命周期 (SDLC) 的早期阶段发现错误。
  • 它通过将复杂模块分解成更小的单元然后验证它们来简化测试过程。
  • 它提供了软件的模块化和易维护性。
  • 它提高了软件的整体质量和性能。

自底向上测试的缺点

自底向上测试的缺点如下:

  • 在顶级模块中,进行自底向上测试变得困难。
  • 对于复杂的软件,完成自底向上测试需要大量时间,其中需要在与其他组件组合之前验证各个组件。
  • 它不涵盖软件的系统级功能的测试,因为只有在所有组件集成后,它们才准备就绪。
  • 它需要构建驱动程序和桩程序才能完成自底向上测试。

我们为什么要执行自底向上测试?

执行自底向上测试的原因如下:

  • 它有助于在软件开发生命周期 (SDLC) 的早期阶段识别缺陷。
  • 在与其他组件集成之前测试各个组件,因此自底向上测试有助于实现有效的调试。
  • 这是一种增量方法。
  • 它尽早识别软件中的潜在风险。
  • 自底向上测试的增量和迭代方法使其与敏捷开发方法兼容。

结论

本教程对软件自底向上测试进行了全面讲解。我们首先介绍了什么是软件自底向上测试,执行软件自底向上测试的步骤,自底向上测试的示例,自底向上测试的优点和缺点,以及为什么要执行自底向上测试。这将使您深入了解软件自底向上测试。建议您多加练习所学内容,并探索与软件测试相关的其他知识,以加深理解,拓宽视野。

广告