测试碎片化和跨浏览器兼容性测试的必要性
在过去的几十年里,互联网有了巨大的发展;互联网用户每天都在增加,这也增加了对网站的需求。每个令人惊叹的网站背后都有严格的测试支持。但是,测试不同的网络应用程序并不像它听起来那么容易。在一个浏览器中完美运行的东西可能不适合其他浏览器。对于团队来说,应对这个问题变得相当具有挑战性。因此,投资于跨浏览器兼容性测试成为一种必要。到目前为止,跨浏览器测试对地球上所有的前端开发和测试人员来说都是一种折磨。这个问题的根本原因当然是浏览器碎片化问题,要解决这个问题,跨浏览器兼容性测试似乎是唯一可能的解决方案。
跨浏览器兼容性
简单地说,跨浏览器兼容性主要是确保你的网站的基本功能与不同的操作系统、设备、浏览器和浏览器-操作系统的组合兼容。市场上有很多浏览器,但像Chrome、Firefox、Edge、Safari、UC浏览器等流行的浏览器,占据了最大的市场份额。兼容性是软件世界中一个普遍存在的问题。跨浏览器测试在缓解这种情况方面发挥了关键作用,然而,这并不是问题的终点。兼容性测试确保你的网站和网络应用在最大数量的网络浏览器上运行良好。
什么是碎片化?
设备、操作系统、浏览器、网络类型等之间的差异,被认定为碎片化。那么,问题出在哪里呢?
正是由于这种差异,不存在一个单一的解决方案或可互操作的系统。在软件开发方面,碎片化并不支持开发一次代码并在所有地方运行的想法。由于企业不可能在每一个可能的组合上都有普遍的可操作性,所以它不得不安于淡化兼容性。在所有的浏览器、平台和设备上进行跨浏览器的兼容性测试,对开发者来说是一场噩梦,因为他们不断遇到无尽的跨浏览器和跨平台的错误,侵袭了生产环境。
那么我们该怎么做呢?
经常不断地进行跨浏览器兼容性测试,以检查跨浏览器的兼容性是迄今为止唯一稳定的解决方案。由于市场是动态的,浏览器和操作系统的定期更新不断出现。甚至许多设备也经常在市场上推出,每年大约有20%。
为什么跨浏览器兼容性是一个问题?
在十年前,甚至在今天,跨浏览器兼容性都是一个挑战。对开发人员和测试人员来说,这和今天一样是一项乏味的工作。让我们来看看一些数据,以创造一个基础。在大流行期间,新的互联网用户每天增加到九百万。研究表明,设备碎片化正在以20%的速度增长。市场上有超过9000多种独特的互联网设备,大约有20多种不同的操作系统和8种主要浏览器。它们共同构成了大约63K+浏览器-操作系统-设备的组合。不可否认的是,在所有设备-浏览器组合上进行测试和测试碎片化似乎不切实际。
此外,市场上每个浏览器供应商的开发理念都有其独特性。他们沿着各自的设计和开发理念工作,这些理念规范了最终用户的体验;他们决定了要关注的功能和网络技术。例如,Chrome与UC浏览器的用户体验是完全不同的,因为它们的意识形态不同。前者相信提供性能和与谷歌空间的健康整合,而后者则专注于通过压缩页面以获得低数据效用来提供效率。打破这种变化有帮助吗?嗯,这意味着堆积如山的更多工作,对开发者来说更多的调试。
万维网联盟(W3C)已经将浏览器渲染页面的方式标准化。虽然这是同质化的,但网页在所有的浏览器上呈现的方式并不一样。浏览器的每一层都会影响终端用户的体验和网页的外观。它们是
浏览器引擎
浏览器有不同的渲染引擎。浏览器引擎,如Blink、Gecko、WebKit,吸收、读取和渲染HTML。同样的引擎在使用开源时的操作是独特的,即使是在其兼容的操作系统上也是如此。iOS只支持WebKit浏览器,这意味着Chrome在iOS和Android上的工作方式会有所不同。
-功能
每个供应商都不会以相同的方式遵循W3C的标准化同质性。更简单地说,他们每个人都能找到解决方案,但使用的方法不同。苹果的Safari浏览器有一个ITP(智能跟踪预防)系统,通过其高端机器学习算法检测并禁止保存第三方cookies。它保护了用户的隐私,但也避免了在线广告商通过行为捕捉来获取用户的信息以实现内容的货币化。
-网络技术支持
浏览器的网络社区提供意见,以决定支持哪些网络技术,以及如何和何时实施这些技术。
-持续的更新
对新功能和安全补丁有频繁的更新,每个浏览器都不同。例如,谷歌浏览器每季度推送一次更新,而Safari浏览器则每年发送一次更新。因此,如果你的工程师决定支持一个特定的功能,需要时间来使其普遍可用。
这给我们带来了两点,第一,每个浏览器在市场上都有不同的版本,在市场上有独特的地位,例如,Chrome和Safari,第二,每个浏览器在桌面和移动上的工作方式不同。
浏览器不兼容的影响以及如何应对不同浏览器的需求
虽然浏览器的差异微乎其微,但意想不到的UI错误会影响网站的流量;关键是我们如何很好地管理这些差异,以提高网站的整体体验。每当你想针对多个市场时,偶然发现这些意外的用户界面错误的机会就会频繁出现;这将影响生产环境。要始终牢记的一个重要方面是,无论你的客户使用哪种浏览器,你的网站都应该无懈可击地工作。
一些例子表明为什么跨浏览器测试兼容性是必不可少的
- Adobe的Opt-out Cookie保留没有发挥作用,因为苹果的ITP系统不允许它保留任何信息。苹果公司通过删除该cookie来解决这个问题,允许用户跟踪。
- Bootstrap--开发者的救星,在主要的浏览器中创建了一堵悬而未决的浏览器错误墙,以便他们能够向用户提供高质量的网络体验。它的建立是为了让供应商注意,知道哪些问题导致了Bootstrap的问题,以便前者可以加快错误修复过程。
- 在2019年,Chrome浏览器发布了一个更新,并暂停了该浏览器。此举影响了大多数因工作需要使用Chrome浏览器访问互联网的人和员工。他们一整天都无法访问互联网,只能看到一个空白的屏幕。
持续测试对跨浏览器兼容性的作用
在跨浏览器兼容性测试中,每个开发人员和测试人员都会面临一些常见的问题,比如:
- 每个浏览器上的CSS规则不同。
- 过时的浏览器在HTML文件中没有Doctype来识别其版本
- 元素造型的不兼容。
- 过时的浏览器检测
- 布局的问题
- 浏览器库、框架等的问题。
我们已经达到了一个地步,我们有了解决问题的办法,但这是克服浏览器兼容性问题的最终解决方案吗?并非如此。我们必须找到一种更积极的方式来支持这个解决方案,以便能够提供高质量的服务。
克服浏览器兼容性问题需要记住的事情
- 你的企业要确定由与你的业务和受众相关的浏览器组成的最有成效的组合,覆盖最大的市场,并覆盖那些不断更新的浏览器
- 分析并意识到最常见的问题和导致大多数问题的功能。同时也要确定它们发生故障的浏览器或设备。
- 拥有一个强大的交付管道,让开发人员和QA团队通过不断测试和调试网站的每个单元、代码构建和用户流,为所有相关的浏览器和设备加强测试的碎片化。
与其说你的团队专注于增加喜欢使用网站的用户数量,不如说目标应该是减少用户体验不佳的人数。对于那些形象取决于持续提供质量的人来说,跨浏览器的兼容性是必要的。
总结
市场每时每刻都在发生变化。浏览器的版本和它们的市场份额不断增加。当我们读到这里时,许多软件更新已经发布。因此,处理这种快速发展的市场的唯一方法是通过早期和持续的跨浏览器兼容性测试,以及一个支持强大的网络应用的碎片化生态系统,并使它们能够在不同的设备、浏览器和操作系统中顺利工作。测试碎片化是实现有影响力的浏览器兼容性的可靠策略。