动态测试类型、技术和示例

动态测试

动态测试是一种用于测试软件代码动态行为的软件测试方法。动态测试的主要目的是用动态变量测试软件行为,为了测试动态行为,必须执行代码。

我们都知道,测试就是验证和确认,需要2个V才能完成测试。在这2个V中,验证称为静态测试,另一个“V”,验证称为动态测试。

动态测试示例

让我们通过一个示例来了解如何进行动态测试:

假设我们正在测试一个Login Page,其中有两个字段,分别是“用户名”和“密码”,并且用户名被限制为字母数字。

当用户输入用户名“itxiaonv”时,系统接受相同的用户名。其中,当该结果显示代码基于用户输入动态动作时。

动态测试是指通过提供输入并将应用程序的实际行为与预期行为进行比较来使用实际系统。换句话说,使用系统的目的是查找错误。

因此,基于以上陈述,我们可以说或得出结论,动态测试是在不同环境下作为最终用户验证软件应用程序以构建合适的软件的过程。

动态测试做些什么?

动态测试的主要目的是确保软件在安装过程中和安装后正常工作,确保稳定的应用程序。

动态测试的主要目的是确保软件的一致性;让我们用一个例子来讨论这一点。

在银行应用程序中,我们可以看到不同的屏幕,如“我的账户”、“资金转账”、“账单支付”等。所有这些屏幕都包含接受某些字符的金额字段。

假设“我的账户”字段显示金额为25,000元,资金转账为25,000元,账单支付屏幕显示为25000元。虽然金额相同,但显示金额的方式不同,因此导致软件不一致。

一致性不仅仅局限于功能,它还涉及到性能、可用性、兼容性等不同的标准,因此进行动态测试变得非常重要。

动态测试的类型

动态测试分为两类

  • 白盒测试
  • 黑盒测试

下面的图示让我们对动态测试的类型、测试级别等有了一个了解。

Dynamic Testing
Dynamic Testing

让我们简要讨论一下每种类型的测试及其预期目的

白盒测试-白盒测试是一种测试人员知道内部结构/设计的软件测试方法。它主要由具有编程知识的开发人员或白盒测试人员执行。

黑盒测试-黑盒测试是一种测试人员不知道内部结构/代码/设计的测试方法。该测试的主要目的是验证被测系统的功能,这类测试需要执行完整的测试套件,主要由测试人员执行,不需要任何编程知识。

黑盒测试再次分为两种类型。

他们是

  • 功能测试
  • 非功能测试

功能测试:

功能测试是通过执行QA团队编写的功能测试用例来验证开发的所有特性是否符合功能规范,在功能测试阶段,通过提供输入、验证输出并将实际结果与预期结果进行比较来测试系统。

有不同级别的功能测试,其中最重要的是

  • 单元测试-通常,单元是一小段可测试的代码,单元测试在单个软件单元中执行,并由开发人员执行
  • 集成测试-集成测试是在单元测试之后执行的测试,通过组合由开发人员或测试人员执行的所有可测试的单个单元来执行
  • 系统测试-系统测试是为确保系统是否按照要求运行而执行的测试,通常在整个系统准备就绪时执行,在构建或代码发布给QA团队时由测试人员执行
  • 验收测试-执行验收测试,以验证系统是否满足业务要求,是否已准备好使用或准备好部署,通常由最终用户执行。

非功能测试:非功能测试是一种不关注功能方面的测试技术,主要关注系统的非功能属性,如内存泄漏、系统性能或健壮性等。在所有测试级别执行非功能测试。

有许多非功能测试技术,其中最重要的是

  • 性能测试-进行性能测试,检查在期望的网络负载下,系统的响应时间是否符合要求。
  • 恢复测试-恢复测试是一种验证系统从崩溃和硬件故障中恢复的能力有多好的方法。
  • 兼容性测试-执行兼容性测试以验证系统在不同环境中的行为方式。
  • 安全测试-执行安全测试以验证应用程序的健壮性,即确保只有授权的用户/角色才能访问系统
  • 可用性测试-可用性测试是一种由最终用户验证系统可用性的方法,以验证用户对系统的舒适性。

动态测试技术

STLC中的动态测试技术包括测试需求分析、测试规划、测试用例设计和实现、测试环境设置、测试用例执行、Bug报告和最终测试关闭等不同的任务。动态测试技术中的所有任务都依赖于测试过程中前一个任务的完成。

在STLC中,我们可以说实际的动态测试过程是从测试用例设计开始的,让我们详细讨论每个活动。

Dynamic Testing Tutorial: Types, Techniques & Process
Dynamic Testing Tutorial: Types, Techniques & Process

在进入该过程之前,让我们讨论一下动态测试需要遵循的策略。

测试策略应该主要关注可用的资源和时间框架。根据这些因素,必须记录测试目标、测试范围、测试阶段或测试周期。

一旦策略被定义并被管理层接受,那么实际的流程测试用例设计就开始了

什么是测试设计和实现

在此阶段中,我们确定,

  • 要测试的功能
  • 派生测试条件
  • 派生覆盖范围项目
  • 派生测试用例

测试环境设置

我们必须确保测试环境始终类似于生产环境,在此阶段,我们必须安装构建并管理测试机器。

测试执行

在此阶段,测试用例实际执行。

捕获的错误报告

根据执行情况,如果预期结果和实际结果不同,则测试用例必须标记为失败,并且应该记录一个Bug。

动态测试的优势

  • 动态测试可以发现那些被认为太难或太复杂、静态分析无法覆盖的未被覆盖的缺陷
  • 在动态测试中,我们端到端地执行软件,确保软件没有错误,从而提高产品和项目的质量。
  • 动态测试成为检测任何安全威胁的重要工具

动态测试的缺点

  • 动态测试非常耗时,因为它要执行需要大量资源的应用程序/软件或代码
  • 动态测试增加了项目/产品的成本,因为它没有在软件生命周期的早期开始,因此在后期阶段修复的任何问题都可能导致成本的增加。

结论:

在软件工程中,验证和确认是用来检查软件产品是否满足需求规范的两种方法。它们共同帮助交付具有成本效益的高质量软件。

IT赶路人

专注IT知识分享