对于网页的兼容性我们主要考虑的是各种浏览器对前台页面的兼容性,因为浏览器对页面的影响是最大的。
现在浏览器的种类越来越多,网页中展现出来的内容也越来越丰富,这些内容包括网页中的字体、图片、动画等,而且有些内容需要网页安装一些插件才能打开。
很多时候同一个网页在不同浏览器下,可能会出现兼容性问题,有些浏览器显示正常,有些浏览器不能正常显示,例如出现乱码、排版异常、无法显示图片和动画、页面的功能不能正常使用等异常情况,所以一般情况下,都应针对当前主流的浏览器进行兼容性测试。
同时主流浏览器(IE,Firefox,Chrome,Opera,Safari)版本更新更加频繁,终端用户甚至不会感知这些浏览器版本的升级。
具体要测试哪些浏览器,主要根据产品经理制定的需求文档而定。
但如果页面上所有的功能都需要在每个浏览器重新测试一遍的话,工作量也是很大的。一般情况下,可以这样分配,例如测试组有6个人是做功能模块测试的,那么这6个人就会分别选用其中一款浏览器进行测试。这样就可以将浏览器分散开来,而不需要一个人来完成,后面还可以进行交换进行,尽量覆盖全面。
其次主要考虑的是分辨率的兼容性,这指的是页面在640400、600800\1024*768或者是更高的分辨率模式下是否能正常显示,例如字体是否太小,文本、图片等页面元素是否正常显示。
对于具体要使用什么样的分辨率进行测试,通常情况下,需求文档中会对分辨率给出建议和要求。
兼容性测试的作用
兼容性测试是软件测试过程必不可少的一个过程,没有兼容测试的测试是不完整的测试,兼容性测试的存在是有一定作用的。我个人觉得最少有以下几点:
·兼容性测试能够进一步提高产品的质量,提高用户体验;
· 兼容性测试能使软件与尽可能多的其他软件“和平共处”,尽可能达到平台无关性;
· 兼容性测试能尽可能的保证软件存在的价值,它是衡量一个软件质量的重要指标;
· 兼容性测试能使软件产品的市场更广阔;
浏览器兼容性测试应该如何来做?
分散风险
一个途径就是在多浏览器环境中执行日常的测试工作。
举个例子来讲,你要测试这样一个[url=]web[/url]应用:用户登入,生成报表,发送报表,退出系统。这个应用还包含一个管理功能,管理员或经理登入后可查看哪些人做了哪些改动。
为了覆盖更多的浏览器,你可以用一种浏览器来测试登入功能,在另一个浏览器中测试“发送报表”的功能,用第三种浏览器测试“审计变动”的功能。
这是一个有效的方法,在日常的功能测试的过程中,同时覆盖多浏览器兼容性测试。上面这个例子还是存在一些问题的,比如讲,如果“审计变动”这个功能在第一种,或第二种浏览器里是有问题,那么就会发现不了。这种方法节省下来的时间,可以让你在做兼容性测试策略时,更有侧重。
让其他人来帮你做测试
对于一些明显的页面兼容性问题,有一些在线工具可以帮着你检查,例如Browser Shots,它可以将你的页面载入到它所支持的浏览器中(它支持浏览器种类和版本很丰富),然后截屏,你可以查看在这些浏览器下的载入情况了.
这是一个很棒的工具,但那些需要登入验证的应用,或则你的应用中包含的页面太多 ,这个工具就显得有点力不从心了.
和标准进行比对
你可以对你的站点进行HTML语法标准检查,如果通过了,在多浏览器兼容性上,你可以更有自信一点了,但即使通过了,还是总有一些浏览器(比如万恶的360)渲染你的页面是会有兼容性问题。
自动化
Web UI的测试可以通过webdriver这个工具来实现自动化,可以使用selenium Grid来将自动化脚本在多浏览器上运行。如果不会写代码的话可以使用TestWriter,完全零编码进行测试。
前提是你得有Web UI自动化的投入。Web UI自动化可以发现一些功能上的问题,但对于多浏览器页面布局方面的差异,通过它是很难发现的。
Fight Layout Bugs
你可以写一些自动化脚本来检查页面在不同浏览器下渲染效果。Fighting Layout bugs是一个开源的工具,可以用来检查页面布局方面的[url=]bug[/url]
手工测试
你可以手工测试所有的浏览器版本,为了避免混淆,你可以将不同的浏览器安装在不同的虚拟机上(uedde的确这这样做的),当有其他人需要用是,可以直接克隆这些虚拟机,或则直接访问这些虚拟机。但这太耗时,费力了,但还是有必要做一次这样的多浏览器手工测试的。
分类
你可以依据内核来划分浏览器。
chrome & safari使用的是webkit内核,Firefox则是Gecko, IE系列的是Trident内核,Opera使用Presto内核。最新的Opera好像也开始使用webkit内核了。
这样你就可以认为,如果在chrome上没有问题,那么“理应”在safari也应该没问题。
模拟
市面上有一些工具可以模拟不同的浏览器,有一些浏览器也附带了工具来兼容老版本。但使用这些工具是要谨慎,这样的模拟并不一定准确。慎重。
outsource selenium
如果你没有条件搭建selenium grid测试环境,你可以尝试着使用Sauce Labs 和 testingbot 这样的服务。
多浏览器的支持我们心中永远的痛,特别是如今浏览器更新如此频繁的状况下。哎~ 你可以选择上面的适合你的方法。
PS:有些浏览器有兼容模式,可以通过兼容模式来模拟老版本。有些浏览器,如chrome,提供了开发者工具可以帮着定位。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取