什么是动态测试?类型、技术和示例
动态测试
动态测试 是一种用于测试软件代码动态行为的软件测试方法。动态测试的主要目的是使用动态变量或非常量变量来测试软件行为,并找出软件运行时环境中的薄弱环节。必须执行代码才能测试动态行为。
我们都知道,测试就是验证和确认,测试需要 2 个 V 才能完成。在 2 个 V 中,验证称为静态测试,另一个“V”确认称为动态测试。
动态测试示例
让我们通过一个例子来了解如何进行动态测试:
假设我们正在测试一个登录页面,其中有两个字段“用户名”和“密码”,并且用户名仅限于字母数字。
当用户输入用户名“Guru99”时,系统会接受。而当用户输入 Guru99@123 时,应用程序会抛出一条错误消息。此结果表明代码正在动态运行 根据用户输入。
动态测试是指通过提供输入并将应用程序的实际行为与预期行为进行比较来处理实际系统。换句话说,就是以查找错误为目的来处理系统。
因此,基于上述陈述,我们可以说或得出结论,动态测试是在不同环境下作为最终用户验证软件应用程序以构建正确软件的过程。
动态测试起什么作用?
动态测试的主要目的是确保软件在安装期间和安装后正常运行,确保应用程序稳定而无任何重大缺陷(之所以这样说是因为没有软件是没有错误的,测试只能显示缺陷的存在而不能显示缺失)
动态测试的主要目的是确保软件的一致性;让我们通过一个例子来讨论这一点。
在银行应用程序中,我们发现不同的屏幕,例如“我的账户”部分、“资金转账”, Bill 支付等。所有这些屏幕都包含接受一些字符的金额字段。
假设“我的帐户”字段显示金额为 25,000 和资金转账 $25,000 和 Bill 支付屏幕 $25000 虽然金额相同,但是显示金额的方式不一样,导致软件不一致。
一致性不仅限于功能,它还涉及性能、可用性、兼容性等不同的标准,因此执行动态测试变得非常重要。
动态测试的类型
动态测试分为两类
- 白色 Box 测试
- 黑色 Box 测试
下面的图形让我们了解动态测试的类型、测试级别等。
让我们简要讨论一下每种类型的测试及其目的
白色 Box 测试 – 白色 Box 测试 是一种软件测试方法,其中测试人员了解内部结构/设计。White 的主要目的是 Box 测试是根据代码检查系统的性能。它主要由开发人员或白帽黑客执行。 Box 具有编程知识的测试人员。
黑色 Box 测试 - 黑色 Box 测试 是一种测试方法,其中内部结构/代码/设计是 不是 测试人员知道。这种测试的主要目的是验证被测系统的功能,这种类型的测试需要执行完整的测试套件,主要由测试人员执行,不需要任何编程知识。
- 黑箱 测试又分为两种类型。
他们是
- 功能测试
- 非功能测试
功能测试:
功能测试是为了验证开发的所有功能是否符合功能规范,它通过执行QA团队编写的功能测试用例来执行,在功能测试阶段,通过提供输入、验证输出并将实际结果与预期结果进行比较来测试系统。
功能测试有不同的级别,其中最重要的是
- 单元测试 – 通常,单元是一小段可测试的代码, 单元测试 在软件的单个单元上执行,由开发人员执行
- 整合测试 – 整合测试 是在单元测试之后进行的测试,通过组合所有可测试的单个单元来执行,由开发人员或测试人员执行
- 系统测试 – 系统测试 是为了确保系统是否按照要求执行而执行的,通常在整个系统准备就绪时执行,由测试人员在将构建或代码发布给 QA 团队时执行
- 验收测试 – 验收测试是为了验证系统是否满足业务要求并已准备好使用或部署,通常由最终用户执行。
非功能测试:非功能测试是一种不关注功能方面的测试技术,主要集中于系统的非功能属性,例如内存泄漏、性能或系统稳健性。非功能测试在所有测试级别执行。
非功能性测试技术有很多,其中最重要的是
- 性能测试 – 性能测试 检查系统在期望的网络负载下,响应时间是否按照要求正常。
- 恢复测试 – 恢复测试是一种验证系统从崩溃和硬件故障中恢复的能力的方法。
- 兼容性测试 – 进行兼容性测试以验证系统在不同环境中的表现。
- 安全测试 – 安全测试 是为了验证应用程序的稳健性,即确保只有授权用户/角色才能访问系统
- 可用性测试 – 可用性测试 是一种由最终用户验证系统可用性的方法,以验证用户对系统的舒适程度。
动态测试技术
动态测试技术 in STLC 包括不同的任务,如测试需求分析、测试规划、测试用例设计和实施、测试环境设置、测试用例执行、错误报告以及最终的测试结束。动态测试技术中的所有任务都依赖于测试过程中上一个任务的完成。
在 STLC 中,我们可以说实际的动态测试过程从测试用例设计开始,让我们详细讨论每个活动。
在进入该过程之前,让我们讨论一下动态测试需要遵循的策略。
测试策略应主要关注可用资源和时间框架。基于这些因素,必须记录测试目标、测试范围、测试阶段或周期、环境类型、可能面临的假设或挑战、风险等。
一旦策略确定并被管理层接受,实际流程测试用例设计就开始了
什么是测试设计和实施
在此阶段,我们确定,
- 要测试的功能
- 推导测试条件
- 得出覆盖范围项目
- 得出测试用例
测试环境设置
我们必须确保测试环境始终与生产环境相似,在这个阶段我们必须安装构建并管理测试机器。
测试执行
在此阶段,测试用例会被实际执行。
已捕获错误报告
根据执行情况,如果预期结果和实际结果不一样,则测试用例必须标记为失败,并且应该记录一个错误。
动态测试的优点
- 动态测试可以揭示那些被认为太难或太复杂且无法通过静态分析覆盖的缺陷
- 在动态测试中,我们端到端执行软件,确保软件无错误,从而提高产品和项目的质量。
- 动态测试成为检测任何安全威胁的重要工具
动态测试的缺点
- 动态测试非常耗时,因为它执行需要大量资源的应用程序/软件或代码
- 动态测试增加了项目/产品的成本,因为它不是在软件生命周期的早期开始,因此在后期修复的任何问题都可能导致成本增加。
结语
In 软件工程、验证和确认是用于检查软件产品是否符合要求规范的两种措施。静态测试涉及验证,而动态测试涉及确认。它们共同有助于提供具有成本效益的高质量软件。