什么是动态测试?(类型、技术、示例)

动态测试

在软件测试中,动态测试是一种用于测试软件代码动态行为的方法或技术。执行该测试主要是为了测试具有动态变量或非恒定变量的软件产品的行为,以及检测软件运行环境中的薄弱或易受攻击的区域。应该执行软件代码来测试软件产品的动态行为。

测试需要 2V 来完成测试过程,并结合验证和确认。在这 2 个 V 中,验证称为静态测试,验证称为动态测试。

为什么要进行动态测试?

执行动态测试的主要目的是确保软件产品在安装过程中和安装后都能正常运行,保证应用程序稳定,没有任何重大缺陷。动态测试有助于确保软件产品的一致性。

考虑一个银行应用程序,它具有不同的屏幕,例如“我的帐户”部分、资金转账、账单支付等。所有这些屏幕都具有将一些字符作为输入的金额字段。

考虑到我的帐户屏幕将金额显示为 Rs。25,000 美元,资金转账为 25,000 美元,账单支付屏幕为 25,000 美元,金额相同。但是金额的显示方式不尽相同,导致软件产品不一致。

一致性不仅限于工作,还涉及性能、使用、兼容性等不同因素,因此动态测试变得如此重要。

动态测试的类型

动态测试分为两类 -

  • 白盒测试 -在这种软件测试方法中,测试人员知道内部结构/设计。白盒测试主要用于根据软件代码检查软件产品的运行情况。白盒测试由具有编程知识的开发人员或白盒测试人员完成。

  • 黑盒测试 -在这种测试方法中,测试人员不知道内部结构、代码或设计。黑盒测试主要用于验证被测软件产品的工作或功能。黑盒测试需要执行整个测试套件。黑盒测试由测试人员完成,不需要任何编程知识。

黑盒测试分为两种类型 -

  • 功能测试 -验证开发的功能是否符合指定的功能。功能测试是通过执行 QA(质量保证)团队编写的功能测试用例来完成的。在此测试中,通过提供输入、验证结果并将获得的结果与估计的结果进行比较来测试软件产品。

    以下是最重要的不同级别的功能测试 -

    • 单元测试- 单元是可以测试的一小段软件代码。单元测试是在被测软件产品的单个单元上完成的。开发人员通常负责单元测试。

    • 集成测试- 此测试是通过组合可以由开发人员或测试人员测试的所有单元来执行的。

    • 系统测试- 进行此测试是为了确保被测软件产品满足所有要求。系统测试一般在整个系统准备好后进行。当代码可供 QA 团队使用时,系统测试由测试人员执行。

    • 验收测试- 执行此测试以验证软件是否满足所有业务要求以及它是否已准备好使用或部署。验收测试通常由最终用户完成。

  • 非功能测试- 这种测试方法不强调功能方面,而是侧重于非功能方面,如内存泄漏、性能、健壮性等。该测试在所有测试级别进行。以下是最重要的不同级别的非功能测试:

    • 性能测试- 验证软件的响应时间,并检查在所需负载下是否符合要求。

    • 恢复测试- 此测试方法用于验证系统从崩溃和故障中恢复的能力。

    • 兼容性测试- 此测试方法用于验证软件在不同环境中的行为。

    • 安全测试- 这种测试方法是为了验证软件的健壮性,以确保只有授权用户/角色才能访问软件。

    • 可用性测试- 这种测试方法由最终用户完成,以验证软件的可用性。

动态测试技术

动态测试的不同技术是不同的任务,例如测试的需求分析、测试计划、设计测试用例和实现、测试环境的设置、测试用例的执行、缺陷报告和测试关闭。动态测试中执行的测试取决于测试中前一任务的完成情况。

动态测试的过程从设计测试用例开始。在我们进入这个过程之前,让我们讨论动态规划要遵循的策略。测试策略主要强调可用资源和可用时间。在这些因素的基础上,记录了测试范围和目标、测试阶段或周期、环境、假设或挑战、风险等。

定义测试策略后,一旦被管理层接受,则开始实际的流程测试用例设计。

  • 测试设计和实施 - 在此阶段,确定要测试的功能、测试条件、覆盖项和测试用例。

  • 测试环境设置- 我们必须确保测试环境必须与生产环境相似。在此阶段,安装构建并管理测试机器。

  • 测试执行- 在此阶段,执行测试用例。

  • 缺陷报告- 基于测试用例的执行,如果预期结果和实际结果不同,则测试用例被标记为失败并且必须记录缺陷。

动态测试的优势

  • 动态测试可以找到未被发现的错误,这些错误被认为是困难的或复杂的,而静态分析没有涵盖这些错误。

  • 在动态测试中,对软件进行端到端的测试,以确保软件没有错误,从而提高软件和项目的质量。

  • 它是检测安全威胁的重要工具。

动态测试的缺点

  • 它在执行需要大量资源的软件或代码时会消耗大量时间。

  • 它增加了项目或软件的成本,因为它在软件开发生命周期的后期开始。因此,任何在后期解决的问题都会增加成本。