当涉及到一个网络应用程序时,在它投入生产之前,开发人员必须确保它在所有浏览器中都能正常工作。最终用户应该能够体验能够处理所有关键功能的全功能站点而不考虑最终用户使用的浏览器或设备。应用程序的行为在不同的操作系统、浏览器甚至设备中是不同的,这取决于它们的分辨率。大多数开发人员通常更喜欢在一个浏览器上工作,即使工作站中安装了多个浏览器。
这有时会导致应用程序在其他浏览器中存在bug。在测试阶段,在产品中部署应用程序之前,必须涵盖所有维度
让我们讨论在【趣探网】
以下情况下需要执行的测试策略跨4种主要浏览器测试应用程序,测试人员面临的 常见问题以及如何解决这些问题。Internet Explorer 和 Microsoft Edge
根据W3C发布的一项研究,全球近4%的最终用户使用IE浏览器。IE是任何开发人员最容易关注代码的
浏览器。从IE9到IE11几乎 支持所 有 最新的 Java和 CSS框架。然 而,IE8是另一回事。IE8有时不支持常用的 JS框架,如Angular 和Bootstrap。谷歌分析的 一项研究将显示IE8是 最常用的 版本之一。 如果客户端在 SRS中提到应用程序应该正确呈现的浏览器的数量及其版本,那就不同了。否则测试也应该在IE8上进行。测试人员和开发人员面临的一个常见问题是
,应用程序在IE 8中经常不能正确呈现。文本可能被破坏,按钮可能无法工作,有 时页面可能根本无法加载。 这是因为长时间运行的脚本在IE 8中表现得异常缓慢。处理这个解决方案的 最好方法是 减少文档对象模型的递归、循环和 操作。在CSS中,如果使用id代替类,页面加载会快一点。Microsoft Edge是另一回事。它要优化得多,在其他 浏览器如Chrome或Firefox中正确呈现的 网站在其中运行良好。尽管如此,某些引导样式标签据报告在Edge中工作不正常,当被定制的 CSS替换时,它们工作正常。因此,在部署之前,应该在 其中正确地进行测试。大约10年前引入Firebug时,它是业界最好的浏览器集成开发工具。Mozilla Firefox在全世界变得非常受欢迎。尽管谷歌浏览器超过
了 其开发工具的速度,但 它仍然是 一个可靠的浏览器,提供用户界面定制和 大量插件目录。为了 克服性能问题,最近发布了一个使用多进程架构的 新版本。2018年6月发布的 一项统计数据显示,火狐是 10%桌面用户和17%移动用户的首选浏览器。在部署应用程序之前,应该在火狐中执行适当的 浏览器测试。在Firefox中测试时发现的常见问题包括不支持现代功能,如CSS网格、HTML5视频或音频以及flexbox,引导4完全基于该功能。使用供应商特定的CSS前缀,比如-moz,可以去掉大多数CSS3标签。为了支持引导数据库,开发人员可能需要手动下载引导数据库,并在
代码中使用引导数据库。当没有 找到任何合适的工作解决方案来呈现任何CSS属性时,开发人员可能需要更改它并找到实现该功能的另一种方法。就开发工具而言,谷歌浏览器在市场上处于领先地
位,拥有 近63%的 桌面用户,55%的移动用户,和 近58%的平板电脑用户。同时它也是 开发人员中最受欢迎的 浏览器之一,因为它有广泛的调试和 开发工具。为了提高速度,chrome开发者 最近做了一些改变,允许在 网络覆盖不良的 移动设备上渲染网页。然
而,chrome的 一个缺点是 ,浏览器在 页面加载期间只验证一次主资源。 开发人员或测试人员经常会面临代码变化没有 得到反映的 问题。插件在chrome网络商店中是可用的 ,它使用了 一个破坏缓存的过 程。 使用它,只需刷新就可以查看代码更改,而无需重新加载整个页面。 图像方向问题是 铬合金中的另一个常见问题。在其他 浏览器中正面朝上的图像可能会以chrome显示。这不是一只虫子。只有当图像的 EXIF方向与 实际方向不匹配时,才会发生这种情况。在服务器端处理图像将解决此问题。由于大多数桌面用户更喜欢视窗,Safari只占使用份额的3%。然而,由于
苹果手机和苹果平板电脑的广泛使用,它在 移动设备中的 使用率达到17%,在平板电脑中的使用率达到35%,因此是 进行测试的 重要浏览器。但是,桌面和移动Safari应该被视为完全不同的 浏览器,因为平板电脑和 苹果手机是通过 触摸而不是点击来操作的。 Safari的移动版本也 经过了优化,以降低处理器的 负载。Safari有一个内置功能来防止网络钓鱼。此功能的缺点在
于 排除了通过 浏览器上传的 文件中的元数据。例如,如果上传任何照片,全球定位系统坐标将被删除。虽然丢失的坐标可以被地 理定位应用编程接口代替,但 是这个错误还没有得到修复。在
移动浏览器中,没有通过CSS设置光标样式、悬停或单击动画的 元素在渲染过 程中会失败。要解决这个问题,事件侦听器应该直接在父元素上声明,而不是其子元素上声明。否则,按钮或列表项在 触摸时应该是交互式的,将根本不起作用。在
浏览器上执行多少测试用例并不重要。当新版本的 浏览器发布时,可能会再次出现错误。最好的解决方案是 始终关注新版本,并在 生产环境中对应用程序运行测试用例。