如何进行回归测试?
在本文中,我们将了解什么是回归测试、如何进行、何时需要以及它的类型。
什么是回归测试?
回归测试也称为黑盒测试。它用于验证软件代码修改不会影响产品的现有功能。回归测试可确保产品的新功能、发布补丁或对现有功能的其他更改正常工作
回归测试是一种软件分析。重新运行测试用例以确保应用程序以前的功能仍然可用,并且新的更改没有引入任何缺陷。
当原始功能发生重大变化时,可以在新版本上执行回归测试。它确保即使进行了修改,代码也能继续运行。回归测试是指重新测试应用程序中没有改变的元素。
验证方法是回归测试的另一个名称。许多测试用例是自动化的。测试用例必须多次运行,手动一遍又一遍地重复相同的测试用例既费时又单调。
如何进行回归测试?
当软件维护包括升级、错误修复、优化和删除现有功能时,需要进行回归测试。这些更改可能会对系统的功能产生影响。在这种情况下,需要进行回归测试。
以下策略可用于执行回归测试-
重新检查所有
执行回归测试的一种方法是使用Re-Test。所有的测试用例都应该在这个方法中重新执行。我们可以将重新测试定义为测试失败并且失败的原因被确定为软件缺陷。报告问题后,我们可以预期该软件的新版本已修复缺陷。在这种情况下,我们需要再次运行测试以确保问题已得到解决。这称为重新测试。这被一些人称为确认测试。
重新测试的成本非常高,因为它需要大量的时间和资源。
回归分析选择
该技术不是执行完整的测试用例套件,而是执行单个测试用例套件。
选择的测试用例分为两部分:(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程序被测试。
当我们需要进行大量修改时。