下面根据what、why、when、where、who、how (五个W和一个H)及other useful tip来介绍软件兼容性测试。
软件兼容性测试既是测试被测试软件能够与操作系统、网络环境、浏览器、相关其他软件(包括数据库)、外接设备等能够友好合作,不出现UI界面显示异常、同等分辨率下显示异常、改变颜色及显示大小改变、排版出错、CSS格式及颜色错误、滚动条相关问题、内容或者标签重叠、表格或者框架不完整等等兼容性软件缺陷。兼容性测试包括向前兼容性测试和向后兼容性测试。
向前兼容性测试(forward compatibility testing):测试的应用程序或软件在新的或即将到来的版本,并且应用程序的早期版本能够打开较新版本中的文件并忽略早期版本中未实现的功能。比如USB1.0能够兼容USB3.0,或者是MS office2003能够使用转换器打开MS office2007的文件,并忽略MS office2007 的新功能。
向后兼容性测试(backward compatibility testing):测试的应用程序或者软件处于旧版本,并且应用程序的新版本能够顺利处理旧版本的程序数据。比如说USB3.0兼容USB1.0,或者MS office 2007能够打开MS office 2003的文件。
为什么要进行软件兼容性测试 (why) ?
从兼容性测试的概念中得知,软件的运行与操作系统类型及版本(windows、linux、mac等)、浏览器种类及版本(IE、火狐、谷歌等)、网络环境的带宽、数据库种类和版本(SQL、DB2、MySQL、Oracle等)、外接设备(打印机、传真机等)、其他相关软件(MS office、SharePoint等)等因素有关,那么最终用户使用的环境我们不得而知,但在资源和时间有限的情况下,我们要尽可能的模拟用户使用的环境去确保我们的开发软件能够正确使用。所以兼容性测试是检查的是所有平台的应用程序的工作方式。通常开发团队和测试团队的测试是在单一平台中进行展开。但是,一旦发布应用程序,客户可以在不同的平台测试我们的产品,他们可能会发现在应用程序中的错误,要减少这些问题,在所有平台上测试应用程序是很重要的。换句话说,当最终的用户发现了应用程序的缺陷,这需要花费很多时间去开发补丁包去弥补错误的后果,但是经常发布产品补丁包会使用户感觉不安,所以产品的兼容性测试是无可避免的。
当build已经相对稳定的时候就进行兼容性测试。
软件兼容性测试要测什么(where) ?
Instance of browser compatibility testing, to discuss what to test in software compatibility testing.
综上所述,对于浏览器的兼容性测试,我们要验证的是页面、字体大小和样式、特殊字符的编码、图像对齐与否、页面的头尾、页面对齐与否、文本对齐与否、控件的对齐情况、页面的放大放小测试、数据库提交信息验证、HTML视频播放格式验证、外部网站开发的插件验证、关闭cookies和javascript后的页面验证等。还有其他的验证内容,可以通过探索性测试中提到的一些方法,进行测试。如破坏测试法,懒汉测试法,一送一测试法,配角测试法,卖点测试法,指南测试法,超模测试法等等,可以将探索性测试用于软件的兼容性测试,更加有方向的进行兼容性测试。
谁来执行兼容性测试(who) ?
测试人员和最终用户。测试人员只能模拟出大部分用户使用的环境进行软件的兼容性测试,尽可能的使大多数的用户在使用中出现较少的问题,由于时间和资源的有限性,不能够模拟出所有用户的环境,所以兼容性测试前期是测试人员进行的大范围的扫除盲点,加上后期用户的共同努力,来提升软件质量。
怎样执行兼容性测试(how) ?
Process of compatibility testing
在执行兼容性测试之前要理解,在什么平台,怎样的环境,去验证哪个软件的兼容性,去根据对软件以及环境的认识,去制定有测试计划和测试策略的test plan (Test plan中包括了Test Scope, Test Strategy, Hardware, Test Schedule ),引入一些常用的测试方法,如探索性测试,手工测试,自动化测试,冒烟测试等方法,将软件的兼容性测试做活,不那么生硬,尽可能的找到更多之前没有发现的bug。 指定完test plan,就是执行这一轮的兼容性测试,配置相应的环境,采用局部自动化测试 + 手工测试的原则,去检测软件是否存在兼容性问题,完成这一轮CT,后signoff。
博主:海宁
联系:whnsspu@163.com