高效完成浏览器兼容性测试
测试
Paul
6人收藏 6653次学习

高效完成浏览器兼容性测试

https://blog.rainforestqa.com/2015-05-04-rolling-your-own-cross-browser-testing-plan/?utm_source=1KE&utm_medium=1&utm_campaign=1KE%20CHINA​

1KE是Makeschool的中国合作伙伴,转载请经1KE许可。

获取你的流量数据

我们先来看看Rainforest的数据:

上面显示的是谷歌数据分析工具(Google Analytics)页面。你可以通过Google Analytics分析目标网站,账号注册完成后只需通过“受众群体”> “技术”> “浏览器与操作系统”便可获得以上数据。

任何超过5%流量的浏览器都需要做兼容器测试,少于5%流量的要看具体情况。比如我们看到Chrome, FireFox和Safari是我们在测试中需要关注的浏览器,考虑到其他用户的使用情况,IE和安卓手机端虽然占比不大但同样也会纳入考虑范围。

全球流量数据

上面这张图表来自StatCounter,你还可以在其他许多专业网站上查找到浏览器市场的统计数据。

我们看到IE9.0和IE10.0都占了一定份额的比例但都不大。由于过多的浏览器版本会增加测试的负担,于是我们只选用IE8.0作为测试对象,优先度为次级。在少于5%份额的市场中,安卓客户端仍然需要关注。

手机端浏览器测试也是一个问题。由于安卓手机种类繁多,包括操作系统版本、屏幕分辨率都各不相同,为了减少工作量,建议使用一台安装了最新系统的标准配置安卓手机就可以了。

开始兼容性测试

在前面的学习中我们已经锁定了基本目标:Chrome,Firefox, Safari 电脑端和Safari手机端。

为了进一步减轻工作量,我推荐使用PushBullet和Adobe's Edge Inspect。下面我来分别介绍一下这两种工具。

PushBullet

PushBullet 使分享文本信息,链接和媒体超级简单。在很多装置上下载app,然后发送推送。

去执行一些对于新特点的探索测试很重要。比如,当Rainforest添加一个新的特点去市场网址,我需要确认一些相关的功能在移动设备上是否好用。

为了确保我可以完成所有目标,我使用PushBullet去测试每个装备,我喜欢使用Chrome Plugin,因为他可以让我只打一次文本就可以发送到我收藏的每一个测试装置。如果这里有一些特殊的测试,它会包含那些。

这是显示在装置上的一个普通的通知:

当我点击这个通知,装置会打开一个可以随意翻阅的窗口链接。另外:一旦我清理了每个装置上的推送就意味着我已经完成了测试。

PushBullet 在分享一些bug(或者做一些边对边的比较)时也很有帮助。做一个屏幕截图,然后推送到桌面屏幕。

Edge Inspect

当PushBullet不好用的时候,Adobe的边缘检查是很有用的。有这些边缘检查,我可以马上在屏幕上用很多移动装置。如果我在做很多迅速的发展或者做一些完整的过程,这个功能是极其重要的。

一旦点击屏幕上的浏览器,他将会推送一个相似的链接到移动装置。需要注意的是边缘检查也可能介绍他自己本身的bug。有可能点击屏幕浏览器并不会很迅速地连接到一个移动装置。

因此,边缘检查最好应用在可视更新或者无触感合作。

 

细微地改良

QA是一系列的滤波器

通过更改代码去测试每个浏览器是有点疯狂的。在开发的时候,我只是去测试收藏夹里我最喜欢的浏览器。

我也知道,在代码头产生之前,我将需要测试所有我的浏览器目标。这个从单一浏览器测试到每个浏览器测试的过程是循序渐进的。

当我开始扩大我的浏览器测试列表,我喜欢先解决最新的麻烦。这通常意味着要处理IE和一些或大或小的移动目标。这通常会显示一些奇怪的Bug,我将会处理这些Bug,然后继续进行整体测试

有一些不bug值得处理

之前说的奇怪的Bug,很多bug不值得去处理。比如,很多形式在进入zalgo时就会被打破。

什么是zalgo? 其实是畸形的,LoveCraftian文本是由于作为一个装饰经常性复制粘贴产生的。Unicode允许的字符是超或分多次脚本的。Zalgo重复做这些,将会导致文本流向不同方向。

上面的截图是zalgo攻破了谷歌搜索。

wow,它攻破了Google?确实如此,但是Google应该优先考虑修复?大概不是的。在zalgo上合法的搜索数量是几乎没有的

问题是,有些bug值得存在。Google和大多数其他网站不太可能看到来自Zalgo搜索的价值。

什么样的APP可能修复zalgo bug?在一个聊天APP,zalgo允许一个用户去覆盖他人的信息,或许有点沮丧,但是有用的。

像zalgo一样识别错误是伟大的。你应该如此,然而,应该在投入资源之前先暂停思考一下。

主要和次要目标

早些时候,我们确定了主要和次要测试目标。这意味着什么?主要目标是需要测试几乎每一个版本的浏览器。例外是非常小的调整,像更改文本。我大概可以推送最小的跨浏览器的检查。

次要目标应该是在任何时候我们做一个显著改变时测试。如果一个全新的功能是排队,我们可能需要做一个对所有的次要目标的全面检查。

如果释放是一个小的调整,或者在当地范围内更改代码,然后我可以考虑测试我的初选。

降低风险

QA的核心是风险管理。这样我可以写更多测试,研究更多边缘情况,便于知道更多bug.

作为QA,时间是我的敌人。我愿意为一个使一个功能失效去做一个时间投资。

举个例子,在一个大的调整到市场页面的情况下,我非常愿意接受失败。代码比较简单,打破他的坏的当然不是毁灭性的,部署修复很快。

我测试这些改变越来越轻微,如何做到呢?只是测试目标。

编辑或者测试结果屏幕是我们产品的核心部分。我看淡失败的风险,但是如果有东西在破坏我们的热带雨林仪表盘,这对我们的客户是一个大的问题。如果数据库需要迁移然后部署,代码复杂又难以迅速固定,破损是灾难性的。

我知道我没有时间去测试所有事情到我想达到的程度。所以,我妥善分配时间。

 

总结

有效的跨浏览器测试需要大量的东西

期待你的客户和他们访问你的产品。用各种工具去优化真正的时间测试。最终,确保你释放了正确的资源

我希望你会喜欢我们的跨浏览器测试策略

加入1KE学习俱乐部

1KE学习俱乐部是只针对1KE学员开放的私人俱乐部