什么是动态测试?(类型、技术、示例)
动态测试
在软件测试中,动态测试是一种用于测试软件代码动态行为的方法或技术。此测试主要用于测试软件产品在动态变量(或非恒定变量)下的行为,以及检测软件运行时环境中的薄弱或脆弱区域。软件代码应被执行以测试软件产品的动态行为。
测试需要 2 个 V 来完成测试过程,并结合了验证和确认。在这两个 V 中,验证被称为静态测试,而确认被称为动态测试。
为什么要进行动态测试?
执行动态测试的主要目的是确保软件产品在安装期间和安装后都能正常运行,从而保证应用程序稳定且没有重大缺陷。动态测试有助于确保软件产品的一致性。
考虑一个银行应用程序,它具有不同的屏幕,例如“我的账户”部分、“资金转账”、“账单支付”等。所有这些屏幕都具有金额字段,该字段接受一些字符作为输入。
假设“我的账户”屏幕显示金额为 25,000 卢比,“资金转账”屏幕显示金额为 25,000 美元,“账单支付”屏幕显示金额为 25,000 美元,这都是相同金额。但是,金额的显示方式并不相同,从而导致软件产品不一致。
一致性不仅限于工作方式,还涉及性能、使用情况、兼容性等不同因素,因此动态测试非常重要。
动态测试的类型
动态测试分为两类:
白盒测试 - 在这种软件测试方法中,测试人员知道内部结构/设计。白盒测试主要用于检查软件产品根据软件代码的功能。白盒测试由具有编程知识的开发人员或白盒测试人员执行。
黑盒测试 - 在这种测试方法中,测试人员不知道内部结构、代码或设计。黑盒测试主要用于验证被测软件产品的运行或功能。黑盒测试需要执行整个测试套件。黑盒测试由测试人员执行,不需要任何编程知识。
黑盒测试分为两种类型:
功能测试 - 用于验证开发的功能是否符合规定的功能。功能测试通过执行由质量保证 (QA) 团队编写的功能测试用例来完成。在这种测试中,通过提供输入、验证结果并将获得的结果与预期结果进行比较来测试软件产品。
以下是功能测试中最重要的不同级别:
单元测试 - 单元是可测试的一小段软件代码。单元测试是在被测软件产品的单个单元上进行的。开发人员通常负责单元测试。
集成测试 - 此测试通过组合所有可以由开发人员或测试人员测试的单元来执行。
系统测试 - 此测试用于确保被测软件产品满足所有要求。系统测试通常在整个系统准备就绪后进行。当代码提供给质量保证团队时,测试人员会执行系统测试。
验收测试 - 此测试用于验证软件是否满足所有业务需求,以及它是否已准备好使用或部署。验收测试通常由最终用户执行。
非功能测试 - 这种测试方法不强调功能方面,而是关注非功能方面,例如内存泄漏、性能、健壮性等。此测试在所有测试级别中进行。以下是非功能测试中最重要的不同级别
性能测试 - 用于验证软件的响应时间,以及在所需负载下检查其是否符合要求。
恢复测试 - 此测试方法用于验证系统从崩溃和故障中恢复的能力。
兼容性测试 - 此测试方法用于验证软件在不同环境中的行为。
安全测试 - 此测试方法用于验证软件的健壮性,以确保只有授权的用户/角色才能访问软件。
可用性测试 - 此测试方法由最终用户执行,以验证软件的可用性。
动态测试的技术
动态测试的不同技术是不同的任务,例如测试的需求分析、测试计划、设计测试用例和实施、测试环境的设置、测试用例的执行、缺陷报告和测试结束。动态测试中执行的测试取决于测试中先前任务的完成情况。
动态测试的过程从设计测试用例开始。在我们深入了解这个过程之前,让我们讨论一下动态编程要遵循的策略。测试策略主要强调可用资源和可用时间。根据这些因素,测试范围和目标、测试阶段或周期、环境、假设或挑战、风险等都将被记录在案。
在定义测试策略并获得管理层批准后,实际的测试用例设计过程开始。
测试设计和实施 - 在此阶段,将识别要测试的功能、测试条件、覆盖项和测试用例。
测试环境设置 - 我们必须确保测试环境必须与生产环境相似。在此阶段,将安装构建并管理测试机器。
测试执行 - 在此阶段,将执行测试用例。
缺陷报告 - 根据测试用例的执行情况,如果预期结果与实际结果不相同,则测试用例将被标记为失败,并且必须记录缺陷。
动态测试的优点
动态测试可以发现未发现的错误,这些错误被认为是难以或复杂,并且无法通过静态分析覆盖。
在动态测试中,软件将进行端到端测试,以确保软件无错误,从而提高软件和项目的质量。
它是检测安全威胁的重要工具。
动态测试的缺点
它会消耗大量时间,因为它会执行软件或代码,这需要大量的资源。
它会增加项目或软件的成本,因为它在软件开发生命周期的后期开始。因此,在后期修复的任何问题都可能增加成本。