什么是模块测试?(定义、示例)


一个软件应用程序包含各种模块的集成。模块是用特定语言编写的程序,由子程序、子例程、函数、类和过程组成。模块测试是一个过程,您需要测试这些模块的每个单元以确保它们符合最佳编码标准。除非模块通过测试阶段,否则它不能进行应用程序测试过程。

模块测试,又称组件测试,有助于尽早发现应用程序测试中的错误。这在测试的后期阶段可以为测试人员带来极大的便利。模块测试是并行测试的途径,允许测试人员同时测试多个模块。

为什么模块测试是软件测试的重要组成部分?

测试人员出于以下原因更喜欢模块测试:

  • 减少时间消耗 - 将应用程序分成较小的部分(例如子程序或小型代码单元)更好。开发人员可以创建单元测试用例并将它们分配给不同的测试人员,而不是处理所有事情。

  • 支持并行测试 - 它允许独立地测试来自单个应用程序的多个模块。由于模块体积较小,测试人员可以更加关注它们,从而产生更好的最终产品。

  • 降低复杂性 - 一次性测试整个应用程序可能是一项复杂而繁琐的事情。在模块测试中,您可以将大型应用程序分解成较小的部分或单元级别,从而降低整体测试应用程序的复杂性。

模块测试最佳实践

一些成功的测试过程的关键模块测试技巧:

在进行模块测试之前,首先要设计测试。为了准备测试用例,您必须考虑两个重要因素:模块规范和被测源代码。

必须分析被测模块的代码逻辑。您可以使用多种白盒方法来做到这一点。您可以通过应用黑盒技术进一步扩展这些测试用例。

设计测试用例后,下一步是关联要测试的模块。您可以使用增量或非增量方法来实现。

假设您选择自顶向下或自底向上方法的增量方法。在自顶向下方法中,您需要测试更高级别的模块,并逐渐转向较低级别的模块。同时,自底向上方法与自顶向下的模块测试正好相反。

对于增量方法,您必须分别测试所有模块,然后才能将它们集成到完整的程序中。

您需要准备测试数据并通过驱动程序将其提供给模块以执行测试。下一步是监控测试并存储结果。

模块测试策略

模块或组件测试是通过将过程分成两部分来进行的:小型组件测试 (CTIS) 和大型组件测试 (CTIL)。

小型组件测试是在完全隔离的情况下执行的过程,而无需将一个组件与其他组件集成。

同时,大型组件测试是在不将组件彼此隔离的情况下执行的测试过程。通常,当一个组件依赖于另一个组件时,隔离它们可能会导致功能问题。

在没有依赖组件的情况下,您可以使用虚拟对象作为替代。这些虚拟对象称为存根(被调用函数)和驱动程序(调用函数)。

集成测试与模块测试

集成测试 - 在集成测试中,测试人员按顺序组合两个组件并一起测试系统。其目的是检查不同单元的组合以及它们如何相互交互。它还涉及评估子系统如何集成到单个系统中的过程。

假设您正在检查电子商务应用程序的登录和注册功能。您可以将登录和注册都视为单独的单元。

现在假设您将一些商品添加到购物车并转到结账。但是,在结账之前,您必须登录应用程序或如果您是新用户则注册。现在,您可能会在登录后丢失购物车中的所有商品。因此,集成测试的工作是检查上述这两个功能之间的集成。

模块测试 - 在模块测试中,测试单个组件,然后将其与其他组件集成。基于之前的示例,在模块测试中,您可以独立测试注册、登录、将商品添加到购物车等,并将它们集成到完整的应用程序中。

简而言之,我们可以说集成测试是模块测试的下一步。

什么是存根和驱动程序?

驱动程序是在没有调用函数的情况下用于调用最低模块函数的虚拟程序。

存根是接受来自顶级模块的输入或请求并成功响应它们的代码或代码片段。

用示例简化模块测试

让我们考虑一个组织正在开发一个大型 Web 应用程序。作为敏捷测试人员,您必须加快测试过程以更快地投放市场。因此,您不能等待应用程序开发数月才能最终发布。因此,您需要在登录页面开发后立即对其进行测试。您必须执行所有测试用例,以确保登录页面的所有功能都能按预期工作。

您可以将测试过程分成不同的部分:

测试用户界面是否存在拼写错误、对齐、格式、徽标等。

使用负面测试技术,例如身份验证和授权。这是在早期发现缺陷的理想步骤。

使用 SQL 注入等技术测试页面的安全功能。

一旦您记录了所有缺陷,您可以将其传递给开发团队,以便对后续页面进行必要的更改。

现在,如前所述,您只有登录页面需要测试,因为其他页面尚未开发。例如,如果您输入登录凭据并按 Enter 键会发生什么情况。您没有验证登录页面功能的必要组件。

如果您只有一个页面在您输入正确的凭据时显示“登录成功”,而在输入错误的凭据时显示“用户名/密码错误”,则可以解决此问题。存根用于解决此问题。

结论

模块测试仍然是测试周期中的重要组成部分,并且是集成测试的前身。因为它支持并行测试,所以它有助于加快整个测试过程,这在这个敏捷时代非常重要。此外,它还有助于尽早发现错误,让您能够提前纠正错误,并最大限度地减少测试团队的整体测试工作。

更新于:2021年8月20日

3000+ 次查看

启动您的职业生涯

通过完成课程获得认证

开始
广告