前言
在测试阶段发现的缺陷在每次迭代的时候,我们需要回归检验下这些问题,来保证新的提交没有导致系统功能的衰退。所以回归测试在整个测试的生命周期中起到了非常重要的作用。
回归测试的定义
在缺陷修复后,对已经测试的程序进行重复测试,以发现由于正在测试的软件或其他相关或不相关的软件组件的更改而引入或发现的任何缺陷。
简单地说,我们通过对缺陷修复后的应用程序重新执行测试来进行回归,以评估修改后的代码是否破坏了先前工作的任何东西。每当我们修改应用程序时,我们都应该进行回归测试。
回归测试使开发人员确信,在修改生产代码之后,没有任何功能被破坏。它确保没有意外的副作用。
何时去做回归测试?
当生产代码被修改时,我们都会进行软件回归测试。通常,我们在以下情况下执行回归测试:
- 当新功能添加到应用程序时。示例:一个网站有一个登录功能,允许用户只使用电子邮件登录。现在,新功能看起来像是“提供了一个新功能,可以使用微信登录”。
- 当有变更需求时。示例:从之前可用的登录页中删除“记住密码”。
- 当有缺陷修复时。示例:假设登录按钮在登录页面中不起作用,测试人员报告缺陷,指出登录按钮已损坏。一旦开发人员修复了这个缺陷,测试人员就会测试它,以确保登录按钮是否按照预期的结果工作。同时测试人员回归测试与登录按钮相关的其他功能。
- 当出现性能问题修复时。示例:加载主页需要 5 秒钟将加载时间缩短到 2 秒,我们需要保证主页相关的回归测试都能正常通过。
- 当环境发生变化时。示例:将数据库从 MySQL 更新为 Oracle。
- 当有代码重构的时。
我们已经了解了什么是回归,什么时候做回归。现在让我们看看怎么做。
回归测试如何做?
回归测试通常非常繁琐和耗时。我们在每次部署后都会进行回归,因此自动化测试用例比每次手动运行测试用例更容易。如果我们有数千个测试用例,那么最好为我们在每个构建上集成所做的自动化测试脚本 (回归测试)。
自动化回归测试是最佳实践,可以节省大量时间并在夜间运行构建。
回归测试的工具
Ranorex(付费):
Ranorex Studio 是一个集桌面、移动和 web 于一体的自动化测试工具,受到全球 4000 多家公司的信赖该应用程序提供了无代码测试自动化,使初学者能够直接测试,以及一个完整的 IDE。
特点:1. 可靠的对象标识,即使对于具有动态 id 的 web 元素也是如此。2. 可共享对象存储库。3. 使用可重用代码模块减少测试维护。4. 跨平台和跨浏览器测试。5. 使用内置的 Selenium WebDriver 在 Selenium Grid 上并行测试或分发。6. 可定制,易于阅读的测试报告。7. 启用视频报告以查看在不重新运行测试的情况下导致测试失败的原因。8. 与完整的测试工具链集成:Azure DevOps、Jira、Jenkins、TestRail、Git 等等。
Selenium(开源):
Selenium 可能是 Web 应用程序最流行的开源测试自动化框架。Selenium 起源于 2000 年代,经过十多年的发展,已经成为 Web 自动化测试人员的首选自动化框架。Selenium 已经成为 Katalon Studio、Watir、dragor 和 Robot framework 等其他开源测试自动化工具的核心框架。
Selenium 支持多种系统环境(Windows、Mac、Linux)和浏览器(Chrome、Firefox、IE 和 Headless 浏览器)它的脚本可以用各种编程语言编写,如 Java、Groovy、Python、C#、PHP、Ruby 和 Perl。虽然对测试人员具有灵活性,他们可以编写复杂的测试脚本,以满足不同级别的复杂性,但它需要提高编程技巧和努力来构建自动化框架和库以满足特定测试需求。
UFT(付费):
UFT(Unified Functional Testing)是著名的商业功能测试工具。它为跨平台的桌面、web 和移动应用程序的 API、web 服务和 GUI 测试提供了全面的功能集。该工具具有先进的基于图像的对象识别功能、可重用的测试组件和自动化文档。
UFT 使用 Visual Basic 脚本编写测试过程和对象控制。UFT 与业务流程测试和质量中心集成,该工具通过与诸如 Jenkins 之类的 CI 工具集成来支持 CI。
Sahi Pro(付费):
(付费):
Sahi Pro 帮助自动化 web 应用程序的功能测试 Sahi Pro 默认支持 web 应用程序和 REST API 自动化。Sahi Pro 非常适合对具有大量 AJAX 和动态内容的复杂 web 2.0 应用程序进行跨浏览器 / 多浏览器测试。Sahi Pro 运行在任何支持 javascript 的现代浏览器上它支持您测试 web 浏览器、桌面和移动应用程序它是一个面向测试人员的自动化回归测试工具。
特点:1. 内置的 Excel 框架,让您的业务分析师和非技术专业人士有助于测试。2. 简单而强大的 api
3. 对象获取器和记录器
4. 自动记录和报告
5. 并行和分布式回放
6. 持续集成
7. 在任何操作系统上测试任何浏览器
8. 测试任何 Windows 桌面应用程序
9. 测试任何 iOS 和 Android、本机和混合应用程序
TestComplete(付费):
由 SmartBear 完成的 TestComplete 是一个强大的商业测试工具,用于 web、移动和桌面测试。它支持各种脚本语言,如 JavaScript、VBScript、Python 和 C ++ 脚本。与 Katalon Studio 一样,测试人员可以使用 TestComplete 执行关键字驱动和数据驱动的测试,该工具还提供了一个易于使用的录制和回放功能。
与 UTF 一样,TestComplete 的 GUI 对象识别功能可以自动检测和更新 UI 对象,这有助于减少在 AUT 更改时维护测试脚本的工作量在 CI 过程中,它还与 Jenkins 集成。
Watir(开源):
Watir 是一个基于 Ruby 库的 web 自动化测试的开源测试工具。Watir 支持跨浏览器测试,包括 Firefox、Opera、headless browser 和 IE。它还支持数据驱动测试,并与诸如 RSpec、Cucumber 和 Test/Unit 等 BBD 工具集成。
IBM Rational Functional Tester(付费):
IBM RFT 是一个用于功能和回归测试的数据驱动测试平台。它支持很多的应用程序,如.Net、Java、SAP、Flex 和 Ajax。RFT 使用 Visual Basic.Net 和 Java 作为脚本语言。用户对 AUT 的操作,通过应用程序屏幕截图以脚本格式记录。
RFT 的另一个有趣的特性是它与 IBM Jazz 应用程序生命周期管理系统(如 ibmrationalteamconcert 和 Rational Quality Manager)的集成。
总结
这里我们聊了什么是回归测试,回归测试切入的时间点,以及如何才能高效的去执行我们的回归测试以及一些基本的回归测试的工具。希望可以对大家有所帮助,如果大家对于回归测试有什么好的测试想法和测试工具的推荐,请在留言区回复。