软件应用程序包含各种模块的集成。模块是用特定语言编写的程序,由子程序、子例程、函数、类和过程组成。模块测试是一个过程,您需要测试这些模块的每个单元,以确保它们符合最佳编码标准。除非模块通过测试阶段,否则它不能进入应用程序测试过程。
模块测试,又名组件测试,有助于及早发现应用程序测试中的错误。在测试的后期阶段,这对测试人员来说是一个巨大的解脱。模块测试是并行测试的门户,允许测试人员同时测试多个模块。
由于以下原因,测试人员更喜欢模块测试 -
更少的时间消耗- 最好将应用程序分成小部分,也就是子程序或小代码单元。开发人员可以创建单元测试用例并将它们分配给不同的测试人员,而不是处理所有事情。
支持并行测试- 它允许独立于单个应用程序测试多个模块。由于模块尺寸更小,测试人员可以更加关注它们,从而产生更好的最终产品。
降低复杂性- 一次性测试完整的应用程序可能是一件复杂而乏味的事情。在模块测试中,您可以将广泛的应用程序分解为小部分或单元级别,从而降低测试整个应用程序的复杂性。
成功测试过程的一些关键模块测试技巧 -
设计测试是进行模块测试之前要做的第一件事。为了准备测试用例,您必须考虑两个基本因素——模块规范和被测源代码。
分析被测模块的代码逻辑势在必行。您可以通过使用多种白盒方法来做到这一点。您可以通过应用黑盒技术进一步扩展这些测试用例。
设计好测试用例后,下一步就是关联测试模块。您可以使用增量或非增量方法来做到这一点。
假设您通过自顶向下或自底向上的方法选择增量方法。在自上而下的方法中,您需要测试更高级别的模块并逐渐向更低级别的模块移动。同时,自下而上的方法与自上而下的模块测试完全相反。
对于增量方法,您必须单独测试所有模块,然后将它们集成到整个程序中。
您需要准备测试数据并通过驱动程序将其提供给模块以执行测试。下一步是监控测试并存储结果。
模块或组件测试通过将过程分为两部分来进行 - 小组件测试 (CTIS) 和大组件测试 (CTIL)。
小型组件测试是一个完全独立执行的过程,没有将一个组件与其他组件集成。
同时,大型组件测试是在不将组件彼此隔离的情况下执行的测试过程。通常,当一个组件依赖于另一个组件并将它们隔离时,可能会导致功能问题。
在没有依赖组件的情况下,您可以使用虚拟对象作为替代。这些虚拟对象被称为存根(称为函数)和驱动程序(调用函数)。
集成测试- 在集成测试中,测试人员按顺序组合两个组件并一起测试系统。动机是检查不同单元的组合以及它们如何相互作用。它还涉及评估子系统集成到单个系统中的方式的过程。
假设您正在检查电子商务应用程序的登录和注册功能。您可以将登录和注册视为单独的单位。
现在假设您向购物篮中添加了一些商品并开始结帐。但是,在结帐之前,如果您是新用户,则必须登录应用程序或注册。现在,您可能会在登录后丢失购物车中的所有物品。所以集成测试的工作就是检查上面这两个功能之间的集成。
模块测试- 在模块测试中,测试单个组件,然后与其他组件集成。基于前面的例子,在模块测试中,你可以独立测试注册、登录、添加商品到购物车等,并将它们集成到一个完整的应用程序中。
简而言之,我们可以说集成测试是模块测试的下一步。
驱动程序是在没有调用函数的情况下用于调用最低模块的函数的虚拟程序。
存根是接受来自顶层模块的输入或请求并成功响应它们的代码或片段。
让我们考虑一个组织正在开发一个大型 Web 应用程序。作为敏捷测试人员,您必须更快地完成测试过程才能更快地投放市场。因此,您不能等待应用程序最终开发几个月。因此,您需要在登录页面开发完成后立即对其进行测试。您必须执行所有测试用例,确保登录页面的所有功能都按预期工作。
您可以将测试过程分为不同的部分 -
测试用户界面的拼写错误、对齐方式、格式、徽标等。
使用负面测试技术,例如身份验证和授权。这是早期发现缺陷的理想步骤。
使用 SQL 注入等技术测试页面的安全功能。
一旦您记录了所有缺陷,您就可以将它们传递给开发团队,以便对即将到来的页面进行必要的更改。
现在,如前所述,您只需要测试登录页面,因为其他页面尚待开发。例如,如果您输入登录凭据并按回车键会发生什么。您没有用于验证登录页面功能的必要组件。
如果您在输入正确的凭据时有一个页面显示“登录成功”,而对于错误的凭据则显示“错误的用户名/密码”,这可能会得到解决。存根就是用来解决这个问题的。
模块测试仍然是测试周期的重要组成部分,也是集成测试的前身。由于它支持并行测试,因此有助于加快整体测试过程,这在敏捷时代极为重要。此外,它还有助于及早发现错误,使您能够提前纠正错误并最大限度地减少测试团队的整体测试工作。