如何在跨浏览器测试中提高效率

清晰架构(Clean Architecture)的Go微服务: 依赖注入(Dependency Injection)

Web端应用测试主要障碍之一就是在不同的浏览器上“测试他们的网站/应用程序”,也称为“跨浏览器测试”或者“兼容性测试”。 浏览器和浏览器版本很多(Google Chrome,Mozilla Firefox,Internet Explorer,Microsoft Edge,Opera,Yandex等),可以通过多种设备(通过台式机,笔记本,智能手机,平板电脑等)访问网站/应用。 )以及可能用于访问网站的多种操作系统(Windows,MacOS,Linux,Android,iOS等)。

要确保网站的UI/UX及其功能正常运行,并且在“浏览器+浏览器版本+操作系统+设备配置”的组合上没有任何BUG,则将需要大量的开发,测试和维护工作。手动跨浏览器测试的主要痛点是,测试人员可能需要花费大量时间来测试不同的网页,跨浏览器跨越来越多的“复杂”组合中的不同断点测试Web应用程序。

测试人员要确保在不影响迭代周期的情况下,保持测试流程覆盖到位以提高执行测试的速度。下面是改善手动跨浏览器测试(兼容测试)的一些方法和技巧。

并行测试

不管测试策略是否涉及自动化测试,众所周知的事实是,与串行开发/串行测试相比,并行模块开发/并行测试将始终更快。可以通过开发测试脚本来实现并行测试,该脚本将允许跨不同浏览器,操作系统和设备的源代码进行跨浏览器测试。您可以使用Selenium WebDriver开发有效测试脚本。

在云上执行跨浏览器测试

建立可以兼容性设备,浏览器和操作系统组合的测试基础架构是一项昂贵的事情。例如,如果您必须在不同版本的Android上测试网站功能;您将需要具有这些Android版本的设备,并且还需要从不同的智能手机供应商处购买设备。因此,这种方法是不可行且不可持续的。理想的方法是在云测试服务上测试功能,以便您可以专注于测试而不必担心基础架构。也可以通过下载相应的WebDriver for Selenium使用Selenium编写自动测试脚本。

各个阶段进行测试

定期测试可避免在开发周期的后期阶段才会遇到错误。作为开发人员,应该针对不同的组合测试功能。即使您不习惯测试模块,也应该改变思维方式,并将测试作为工作的一部分。如果您正在使用复杂的功能,则可以将测试计划划分为不同的阶段,以便对其进行解耦。

测试脚本

单元测试是在“单元级别”执行的,而回归测试是在产品的端到端功能的情况下进行的。理想情况下,进行回归测试以确保新的代码更改不会对现有功能产生影响。在某些情况下,功能中可能包含视觉元素,例如使用JavaScript的按钮单击;而在某些情况下,接口上没有更新,例如,单击按钮后,将更新数据库中的某些字段。因此,建议及时开发和维护测试脚本,并应按优先级对测试脚本进行分组。

假如古代皇帝也懂负载均衡算法

跨浏览器兼容性矩阵

一旦完成了负责为您的网站带来流量的浏览器的分析,接下来就可以通过对浏览器进行分类来对其进行优先级排序,如下所述:

  • 完全支持且最受欢迎的浏览器。
  • 完全受支持的浏览器不那么受欢迎
  • 部分受支持但很喜欢的浏览器。
  • 部分受支持,而不是最受欢迎的浏览器。
  • 不支持但最喜欢的浏览器。
  • 不支持且不受欢迎的浏览器。

跨浏览器兼容性列表将帮助您实现执行跨浏览器测试时切勿错过的浏览器。通过清楚地说明未提供结果的浏览器,还可以帮助您减少测试工作。使用跨浏览器兼容性列表,可以更有效地执行跨浏览器测试策略。

关注浏览器本身的差异

浏览器也是一个软件,与其他任何软件一样,它们也有错误。浏览器公司会定期修复错误,并通过更新将其推送给用户。修复的版本可能不会对您实现的功能产生任何影响。但由于存在许多操作系统,因此应该关注浏览器版本的更新日志,再决定将哪种浏览器版本和系统版本进行组合。如果浏览器在这些操作系统之间的变化很小,需要跳过。当执行手动跨浏览器测试时,应该专注于那些差异更大的的测试组合。

众包测试

如果您无法在内部找到测试资源,则可以使用众包测试服务。对于众包测试网站,您可以选择适合条件的测试人员。根据产品的性质,您可以获得由测试人员签署的NDA(保密协议),以便保护有关产品的机密信息。越来越多(规模不同)的公司正在使用众包测试,因为它具有良好的成本优势。

目标地区的浏览器市场份额

2019年浏览器市场份额排行榜

前面我们讨论了在重要的浏览器上进行测试的重要性,因为这些浏览器在市场上最为流行。因此,在开始设计和编码网站/ Web应用程序之前,务必先了解不同浏览器支持的功能差异。您需要收集各个浏览器在目前地区的份额,并根据这些发现确定功能开发和测试的优先级。

使用自动化捕获屏幕截图

“屏幕抓取”功能可用于验证渲染输出,这是图像回归测试的重要组成部分。整个方法非常简单。在执行特定功能期间进行屏幕抓取,并使用图像差异算法来验证屏幕抓取质量与预期输出之间的差异。自动截图,可捕获大量屏幕截图,以快速跟踪跨浏览器的测试工作。在一个测试周期中,可以从各种浏览器,浏览器版本,操作系统和设备中捕获多个屏幕截图进行对比验证。

尽早关注与本地化和用户体验相关的功能

手动测试易于验证与用户体验紧密相关的功能。早期的重点应该放在用户体验测试上,并且应该在产品测试的不同阶段继续进行。如果您的产品具有本地化功能,例如以其他文字向客户显示网站内容,则在产品达到一定的成熟阶段后,必须对这些功能进行严格测试。

  • 郑重声明:文章首发于公众号“FunTester”,禁止第三方(腾讯云除外)转载、发表。

技术类文章精选

非技术文章精选

js的内存泄漏场景、监控以及分析

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享