软件工程中的动态测试
执行动态测试以分析代码的动态行为。在此测试中,测试人员观察系统对非常量变量的变量的物理响应。意思是随时间变化的变量。动态测试的过程包括编译软件并通过集成输入值来运行它。然后测试人员执行特定的测试用例并查看输出值是否满足输入值。这是一个可以手动或自动化完成的过程。
动态测试示例
假设我们正在测试一个网站的登录页面。该页面包含两个字段,“用户名”和“密码”。用户名中只允许使用字母数字字符。现在,如果您将用户名输入为“dynamictest01”,则系统会接受它。但是,如果您输入用户名“dynamictest@1”,则软件会返回错误消息。这意味着代码根据用户输入呈现动态结果。
动态测试是指您在现有系统中输入输入并将系统行为与预期行为进行比较的过程。简而言之,就是与系统一起工作以发现错误。
考虑到上面的例子,我们可以推断出动态测试是从最终用户的角度来验证不同环境下软件的过程。
动态测试的目的
动态测试的主要目的是通过确保应用程序在安装期间和之后完美运行来检查应用程序的稳定性。
让我们用一个例子来澄清它-
在在线零售应用程序中,我们可以找到不同的部分,例如我的订单、钱包、购物车等。所有这些部分都包含一个接受一些数字字符的金额字段。现在假设显示的金额是1000美元、1000美元和1000美元。即使金额相同,其显示方式也不一致。
除了功能方面,一致性在软件测试中也很重要。它对于性能、可用性、兼容性等也至关重要。这就是为什么在软件开发周期中需要动态测试的原因。
动态测试的类型
动态测试分为两类-
白盒测试
在此测试中,测试人员已经了解被测软件应用程序的内部结构和设计。白盒测试的主要目的是检查系统如何响应代码。开发人员或专门的白盒测试人员主要进行此测试。
黑盒测试
在此测试中,测试人员不知道被测软件的内部结构、代码和设计。这样做是为了分析系统的功能,主要通过测试人员执行完整的测试套件来进行。
黑盒测试可以细分为两种类型——功能测试和非功能测试。
功能测试
功能测试是测试周期的关键部分,它决定了软件应用程序的功能方面。QA团队准备功能测试用例并在测试阶段执行它们。测试人员在系统中提供输入,验证输出并将实际结果与预期结果进行比较。
功能测试级别
单元测试-单元被称为一小段可测试的代码。它由开发人员在软件中单独执行。
集成测试-在集成测试之后由测试人员或开发团队通过组合所有可测试单元来执行。
系统测试-基于性能的测试,以确定系统是否按照标准要求工作。它通常由测试人员在系统准备就绪时进行,这意味着代码已准备好由QA团队发布。
验收测试-最终用户执行此测试以确保系统全部设置为满足业务的独特需求。这是一个绿色信号,表明应用程序已准备好进行最终部署。
非功能测试
非功能性测试一般关注系统的非功能性属性,如性能、耐久性、安全性、内存泄漏等,一般忽略软件应用的功能性方面。它在所有测试级别进行。
一些基本的非功能测试技术
安全测试:用于检查被测应用程序的健壮性。它确保授权人只能使用该应用程序。
兼容性测试:进行此测试是为了检查应用程序在不同环境下的行为。
可用性测试:执行此测试是为了检查应用程序在最终用户使用时的整体可用性因素。意味着用户在使用应用程序时会感到多么舒适。
恢复测试:进行恢复测试以检查系统从服务器过载、崩溃和硬件故障中恢复的程度。
性能测试:执行此测试以检查响应时间以及系统在所需网络负载下的响应方式。
动态测试技术
动态测试中使用的技术包括不同任务的组合-
需求分析
测试计划
测试用例设计与实现
设置测试环境
测试用例执行
错误报告
测试关闭
测试人员只能通过完成他们之前的任务才能进入下一个任务。也就是说,只有完成了需求分析,才能进行测试计划。
动态测试的测试策略主要围绕资源的可用性和时间范围。这是测试目标、范围、阶段或周期、环境类型、挑战、风险等的决定因素。
定义策略后,QA团队将其转发给管理团队。一旦获得批准,QA团队通过设计测试用例开始实际的动态测试。
动态测试设计以及如何实现?
测试设计
测试设计分为4个阶段
需要测试的功能
准备测试条件
导出覆盖项目
开发测试用例
执行
设置测试环境
动态测试的测试环境必须与生产环境类似。因此,测试人员需要安装构建,然后管理测试机器。
执行和错误报告
一旦执行了测试用例,测试人员需要将测试结果与预期结果进行比较。如果结果不同,他们必须将测试用例标记为失败并报告错误。
结论
验证和确认是确保产品满足企业特定要求的两个主要标准。虽然静态测试可以确保验证,但执行动态测试来验证应用程序。静态和动态测试都有助于交付具有成本效益的高端软件。