如何执行回归测试?
在本文中,我们将学习什么是回归测试,如何执行它,何时需要它以及它的类型。
什么是回归测试?
回归测试也称为黑盒测试。它用于验证软件代码修改不会影响产品现有的功能。回归测试确保产品的新的功能、问题补丁或对现有功能的其他更改能够正常工作。
回归测试是一种软件分析。重新运行测试用例以确保应用程序的先前功能仍然可以运行,并且新更改没有引入任何缺陷。
当原始功能发生重大更改时,可以在新版本上执行回归测试。它确保代码即使在进行修改后也能继续运行。回归测试是指重新测试应用程序中没有更改的元素。
验证方法是回归测试的另一个名称。许多测试用例是自动化的。测试用例必须运行多次,并且一遍又一遍地手动重复相同的测试用例既费时又单调。
如何执行回归测试?
当软件维护包括升级、错误修复、优化和删除现有功能时,需要进行回归测试。这些更改可能会影响系统功能。在这种情况下,需要进行回归测试。
可以使用以下策略执行回归测试:
重新检查所有
执行回归测试的一种方法是使用重新测试。在这种方法中,应重新执行所有测试用例集。我们可以将重新测试定义为当测试失败并且确定失败的原因是软件缺陷时。在报告问题后,我们可以预期软件的新版本已修复了该缺陷。在这种情况下,我们需要再次运行测试以确保问题已解决。这称为重新测试。这被一些人称为确认测试。
重新测试的成本很高,因为它需要大量的时间和资源。
回归分析选择
此技术不会执行完整的测试用例集,而是执行单个测试用例集。
所选测试用例分为两部分:(a) 可重用测试用例和 (b) 无效的测试用例。
可重用的测试用例可以在后续的回归周期中使用。
无效的测试用例不能在后续的回归周期中使用。
测试用例优先级
根据业务影响、重要功能和使用频率对测试用例进行优先级排序。通过选择测试用例,回归测试套件将被缩减。
应执行回归测试的情况
在以下情况下,可以执行回归测试:
当存在更改需求时
示例:记住密码已从登录页面删除,该页面以前是相关的。
当应用程序获得新功能时。
示例:一个网站提供了一个登录功能,该功能仅允许用户使用其电子邮件地址登录。我们添加了一个新选项,允许您使用 Facebook 登录。
当缺陷已得到纠正时
示例:考虑以下场景:登录页面上的登录按钮无法正常工作,并且测试人员报告了一个错误,指示登录按钮已损坏。一旦开发人员修复了该错误,测试人员将验证登录按钮是否按预期工作。另一方面,测试人员还测试与登录按钮相关的其他功能。
如果存在性能问题需要修复
示例:主页需要 5 秒才能访问;通过将加载时间减少到 2 秒,页面将在一半的时间内加载。
当存在环境更改时
示例:当数据库从 MySQL 升级到 Oracle 时。
如何决定将哪些测试用例用于回归测试?
在对行业的检查中发现了这一点。客户报告了多个由最后一分钟的错误补丁引起的故障。由于这些副作用,选择用于回归测试的测试用例是一门艺术,而不是一项简单的操作。
回归测试可以通过以下方式完成:
经常出现缺陷的测试用例
对用户更可见的功能。
测试用例检查产品的核心功能。
所有集成测试用例
所有复杂的测试用例
边界值测试用例
成功测试用例的样本
测试用例失败
回归测试类型
以下是各种类型的回归测试:
URT 代表单元回归测试。
RRT 代表区域回归测试。
FRT 代表“完全或完整回归测试”。
单元回归测试 (URT)
在这种情况下,我们只会测试更改的单元,而不是影响区域,因为它可能会影响其他模块的组件。
示例
开发人员在应用程序中创建“搜索”按钮,该按钮在第一个版本中允许 1-15 个字符。然后,测试工程师使用测试用例设计技术来测试“搜索”按钮。
客户现在要求“搜索”按钮支持 1-35 个字符,以及对需求的一些其他更改。测试工程师将只测试“搜索”按钮以确保它接受 1-35 个字符,并且不会检查第一个版本中的任何其他方面。
区域回归测试 (RRT)
这称为区域回归评估,它涉及测试修改以及影响区域或区域。我们正在测试影响区域,因为如果存在可靠的模块,它们也会对其他模块产生影响。
考虑以下场景
我们可以假设在我们脑海中的图像中有四个单独的模块,包括模块 A、模块 B、模块 C 和模块 D,这些模块由开发人员在第一个版本中提供进行测试。现在,测试工程师需要在模块 D 中查找故障。开发人员获得错误报告,开发团队修复缺陷,然后发送第二个版本。
第二个版本中修复了上述缺陷。测试工程师现在意识到模块 D 中的错误修复已对模块 A 和模块 C 中的一些功能产生了影响。因此,测试工程师在测试模块 D(已解决错误的地方)后检查模块 A 和模块 C 中的影响区域。因此,这种类型的测试称为区域回归测试。
完全回归测试 (FRT)
在产品的第二个和第三个版本中,客户请求添加三到四个新功能,以及修复先前版本中的一些错误。然后,测试团队将进行影响分析并确定上述更改将要求我们测试整个产品。
因此,我们可以将测试更新的功能以及所有其余(旧)功能称为完全回归测试。
在满足以下条件时,我们将执行 FRT:
当对产品的源文件进行更改时。例如,JVM 是 JAVA 应用程序的根文件,对 JVM 的任何更改都将导致测试整个 JAVA 程序。
当我们需要进行大量修改时。