1.什么是兼容性测试
兼容性测试主要是测试在软件测试不同操作系统下、不同浏览器下、同一浏览器不同版本下和不同网络环境下的兼容性,与其他软件、标准外设的兼容性,以及是否能操作不同版本或其他软件生成的文件或数据。
2.兼容性测试的测试点
1) 测试软件在不同操作系统上,以及相同操作系统的不同版本上是否能够兼容
2) 测试软件自身是否能够上下兼容,主要是指兼容不同版本的数据
3) 测试软件与其他相关软件之间是否能够兼容,例如杀毒软件、文字处理软件,办公软件
4) 软件与标准外设是否能够兼容,例如打印机
5) 测试程序与运行支撑平台版本之间兼容性,例如是否可以兼容不同版本的JDK等
6) 程序与应用服务器之间的兼容
7) 程序与不同浏览器之间的兼容
8) 程序在不同的分辨率下是否能正常显示
9) 软件在不同网络环境中的兼容器
10) 程序与各种数据库是否兼容
11) 不同数据库之间是否能够兼容
12) 不同版本数据文件之间的兼容性,同一数据库在不同版本的软件上是否能够迁移
13) 其他软件的数据兼容性,即别的软件中的数据文件能否进行处理
14) 低版本软件生成的文件,高版本是否能打开
15) 如果是C/S系统,高版本的客户端是否支持低版本的服务器以及低版本的客户端是否支持高版本的服务器
16) 如果是C/S系统,是否允许不同版本的客户端与同一个服务器进行通信
17) 如果是C/S系统,是否允许不同版本的客户端之间进行通信
18) 当前软件生成的文件或数据,是否可以在其他软件中被打开
19) 不同版本的软件系统是否能够支持以往的数字证书或硬件加密狗等安全校验文件
20) 新版本的系统是否能和老版本的应用插件相兼容
21) 一台机器上是否能同时安装不同版本的两个软件
3.如何进行兼容性测试
(1)Web兼容性测试
首先开展人工测试,测试工程师测试主流浏览器和常用操作系统测试主流程和主界面,看看主流程和主界面是否有问题,如果存在问题,那么记录下bug情况,以及浏览器型号和版本,以及操作系统,准确定位bug产生的原因,提交bug,告知开发人员修改。所有的主流设备都需要进行测试,只关注主流程和主界面,毕竟每个系统主流程和主界面不是很多,所以这个工作量还是可以承受的。
其次借助第三方测试工具,目前我觉得比较好用的第三方Web测试工具有IEtester(离线)、SuperPreview(离线)和Browsershots:browsershots.org(在线),一款可以测试IE的兼容,一款可以测试主流浏览器的兼容,包括谷歌、火狐、Opera等等。借助第三方测试工具,找到bug产生的位置,分析测试结果,告知程序员调整。
(2)APP兼容性测试
APP的兼容性测试和Web测试类似,首先开展人工测试,测试工程师借助测试设备对主流程和主功能,主界面进行测试;收集所有的能收集到的不同型号的测试设备测试主流程和主界面,看看主流程和主界面是否有问题,如果存在问题,综合考虑设备的使用率等因素,看看是否需要调整,如果需要,那么记录下bug情况以及测试设备的型号和操作系统,准确定位bug产生的原因,提交bug,告知开发人员修改。
其次借助第三方测试工具,对于APP的兼容性测试,我推荐的是百度众测平台和云测平台,我经常使用的是云测平台,这两款测试工具里面包含了安卓和iOS的测试;测试很齐全,包括功能测试、深度兼容测试、性能测试、网络环境测试,还可以模拟海量用户测试,,还可以导入自己编写的测试用例进行功能测试,里面还包括测试专家的测试,当然了找专家是要花钱滴。基本进行兼容性测试是不需要花钱的;测试工程师把打包好的apk或者IPA文件,上传到测试平台,选择需要测试的设备型号,开始任务即可;等待一段时间,在等待的时间你是不需要盯着的,你可以做其他的工作。测试完成后会生成一份测试报告,可以查看错误页面和错误日志,如果需要调整,那么提交bug,告知程序员修改即可。
4.兼容性测试的作用
- 兼容性测试是软件测试过程必不可少的一个过程,没有兼容测试的测试是不完整的测试,兼容性测试的存在是有一定作用的。我个人觉得最少有以下几点:
- 兼容性测试能够进一步提高产品的质量,提高用户体验;
- 兼容性测试能使软件与尽可能多的其他软件“和平共处”,尽可能达到平台无关性;
- 兼容性测试能尽可能的保证软件存在的价值,它是衡量一个软件质量的重要指标;
- 兼容性测试能使软件产品的市场更广阔;