前言
在测试阶段,在每次迭代的时候,我们需要回归检验下前期完成的功能,来保证新的提交没有导致系统功能的衰退。所以回归测试在整个测试的生命周期中起到了非常重要的作用。
回归测试的定义
在新功能发布后,对已经测试的程序功能进行重复测试,以发现由于正在测试的软件或其他相关或不相关的软件组件的更改而引入或发现的任何缺陷。
简单地说,我们通过对新发布后的应用程序功能重新执行测试来进行回归,以评估修改后的代码是否破坏了先前工作的任何东西。每当我们修改应用程序时,我们都应该进行回归测试。
回归测试使开发人员确信,在修改生产代码之后,没有任何功能被破坏。它确保没有意外的副作用。
何时去做回归测试?
当生产代码被修改时,我们都会进行软件回归测试。通常,我们在以下情况下执行回归测试:
- 当新功能添加到应用程序时。示例:一个网站有一个登录功能,允许用户只使用电子邮件登录。现在,新功能看起来像是“提供了一个新功能,可以使用微信登录”。
- 当有变更需求时。示例:从之前可用的登录页中删除“记住密码”。
- 当有缺陷修复时。示例:假设登录按钮在登录页面中不起作用,测试人员报告缺陷,指出登录按钮已损坏。一旦开发人员修复了这个缺陷,测试人员就会测试它,以确保登录按钮是否按照预期的结果工作。同时测试人员回归测试与登录按钮相关的其他功能。
- 当出现性能问题修复时。示例:加载主页需要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)的集成。
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。