功能测试-兼容性测试

大家好,我是十一。

引言

大家在日常生活中是不是经常遇到一些令人苦恼的事情,比如:

   ☆ 有款特别喜欢的游戏,只能在安卓手机上玩儿,可是我是苹果手机,为了玩这款游戏我得买个安卓手机;

   ☆ 有个网站在IE浏览器上显示页面很乱,朋友用火狐浏览器显示正常,为了能正常访问这个网站我得下载个火狐浏览器;

   ☆ 给小朋友买的玩具,电池坏了,郁闷的是市面上卖的电池都不能用,只能买商家自己匹配的那款电池。

诸如上述的例子发生在自己身上的时候,相信大家都会回一句:真恶心!或多或少的都会不开心对不对?造成这些苦恼的原因,就是所谓的兼容性不好。

今天我们就来讲讲兼容性测试

本篇内容

概念

兼容测试(Compatibility Test Suite )官方简称CTS ,指对所设计程序与硬件、软件之间的兼容性的测试。一般来说,兼容性指程序或者物品在某一系列的软/硬件设施上都能友好使用,在计算机术语上兼容是指几个硬件之间、几个软件之间或是软硬件之间的相互配合程度。比如:小玩具能使用世面上常卖的电池;游戏能在所有的移动端使用;网站能在常用的浏览器上打开且正常显示;软件能在主流操作系统上正常使用等等。

兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够友好运行。

作用

从引言中我们可以看出兼容性测试还是很重要的,具体的作用大致有4点:

1. 进一步提升软件质量,提高客户满意度;

2. 使软件与软件之间“和平共处”,尽可能达到平台无关性;

3. 加固了软件存在的价值,它是衡量一个产品质量的重要指标;

4. 使软件的市场更广阔;

分类

兼容性测试分类主要可以分为三大类:硬件兼容性测试、软件兼容性测试、数据兼容性测试。这些大家百度百科了解下,今天我主要讲目前软件中常用的兼容性测试。

兼容测试包括:

1. 浏览器兼容测试:软件在不同浏览器上是否可以正常运行,功能是否可以正常使用,界面是否可以友好展示;

2. 屏幕尺寸和分辨率兼容测试:软件在不同分辨率下能否正常显示,在不同的屏幕尺寸下是否可以正常且友好的显示;

3. 操作系统兼容测试:软件在不同的操作系统下面能否正常运行,功能能否正常使用,显示是否正确且友好等;

4. 不同设备型号兼容测试:针对于APP,现在移动设备型号五花八门,主要测试APP在主流设备上能否正常运行,会不会出现崩溃的现象。

手机端兼容性测试除了以上谈到的兼容性测试外还需要考虑更多。如网络环境兼容性测试,分辨率兼容性测试等。这里不做详细描述。

如何做

按应用范围划分,一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。按照介质的不同,我们将其分为软件(电脑上使用)和app(移动端使用);今天我们针对软件和app分别如何做兼容性测试进行简单介绍。

软件兼容性测试

通常我们见到的软件都是应用软件,那应用软件如何做兼容性测试?

测试工程师一般在主流浏览器和常用操作系统测试软件程序的主流程和主界面,看看主流程和主界面是否有问题,如果存在问题,那么上报bug,bug中需要描述具体的浏览器型号和版本,以及操作系统,以方便开发准确定位bug产生的原因。

另外我们还借助第三方测试工具,找到bug,比如:

   ☆ IEtester和SuperPreview:是ie浏览器兼容性测试工具;

   ☆ Browsershots:是一款在线的、可以测试主流浏览器兼容性的测试工具。

APP兼容性测试

APP的兼容性测试和软件兼容性测试类似,首先由测试工程师借助测试设备对主流程和主功能,主界面进行测试;如果存在问题,那么上报bug,bug中需要描述具体的测试设备的型号和操作系统以方便开发准确定位bug产生的原因。

也可以借助第三方工具来做兼容性测试,对于APP的兼容性测试,推荐的有百度众测平台云测平台,这两款平台大家可以私下了解下,或者我们后续专门篇章单独介绍。

经验之谈

需求明确

我认为大多数情况下,兼容性的测试范围取决于开发小组/客户的定义,也就是需求。这部分软件我们可以:在需求阶段,确认好有关兼容性部分的定义,比如支持IE8以上浏览器和火狐浏览器,支持windows2008、win7以上操作系统;最好是一一罗列或者使用明确语言表明支持的版本;而不使用概括类语句,诸如:常见浏览器、IE/火狐等浏览器。针对这部分软件做兼容性测试,需要先解答以下问题:

   ☆ 软件设计要求与何种其他平台(操作系统、web浏览器或者操作环境)和应用软件保持兼容?如果要测试的软件是一个平台,那么设计要求什么应用程序在其上运行?

   ☆ 应该遵守何种定义软件之间交互的标准或者规范?

   ☆ 软件使用何种数据与其他平台和软件交互和共享信息?

用上述问题和答案,来确定测试范围。

需求不明确

有些软件程序在设计之初并没有明确定义,它的开始来源于老板/客户的一个想法,这类型软件共性是需求不明确。针对这部分软件我们可以:

   ☆ 在开始做兼容性测试任务之前,需要对所有可能的软件组合或者设备组合等价分配,使其成为验证软件兼容性的最小有效集合。然后我们做抽样测试,具体可以参考下文中“多程序/平台之间的兼容”的做法。

接下来我们来看常见的两大类兼容性测试:

   ☆ 向前向后兼容

   ☆ 多程序/平台之间的兼容(也有些书中称起为多版本兼容)

向前向后兼容

关于兼容性测试的两个常用术语是向前兼容和向后兼容。这两者说的都是软件程序不同版本之间的兼容;向后兼容是指可以使用软件的以前版本,向前兼容是指可以使用软件的未来版本。

例子:

    ☆ 向后兼容。2007 Microsoft Office 系统向后兼容下列早期版本:Microsoft Office 2000、Microsoft Office XP 和 Microsoft Office 2003。简单来说就是office 2007做出来的word文档、xsl文件、pdf文件等等可以用office 2000、office 2003、office XP进行如:打开、编辑、保存等操作。

    ☆ 向前兼容。应用程序的早期版本能够打开较新版本中的文件并忽略早期版本中未实现的功能。例如,Word 2003 向前兼容 Word 2007,因为它能够成功地使用转换器打开 Word 2007 文件并编辑。

需要注意的是,并非所有软件或者文件都要求向前或者向后兼容。这是软件设计者需要决定的产品特性,而软件测试员应该为检查软件向前或者向后兼容性所需的测试提供相应的输入。

多程序/平台之间的兼容

测试多个平台和不同应用程序相互之间能否正常工作可能是一个艰巨的任务。其实上节课我们所讲的浏览器兼容、屏幕/分辨率兼容、操作系统兼容、不同设备型号兼容等等都属于这一大类。

假设现在测试一个流行的操作系统的新版本,已经有成千上万个应用程序在上面运行。现在程序员修复了大量软件缺陷,改善了性能,并增加了许多有用的新特性,新操作系统的目标是百分之百兼容那成千上万个应用程序。这么一个庞大而又艰巨的任务,需要对所有可能的软件组合等价分配,验证软件之间正确交互的最小有效集合。

通常我们的做法是:

   ☆ 将软件分类。例如:绘画程序、数据库、字处理、游戏、电子表格、数据库等等,从每一种类型中选择一个测试软件测试。

   ☆ 按照软件的流程程度选择比较流行的软件进行测试。

   ☆ 按照年头选取一定年份内的程序或者版本来测试。

上述例子是讲新操作系统的,测试新应用程序也是一样,需要决定在哪个平台版本上测试软件,以及和什么应用程序一起测试。如下图所示:

兼容性测试具体要测试与哪些软件程序或者平台之间的兼容,这个是没有标准答案的。软件测试员与开发小组需要决定哪些最重要,然后根据上述原则建立需要测试的软件的等价区间。(当然如果需求就能制定好最好。)

今天我们就到这里,我们下期再见!Bye~

你可能感兴趣的:(功能测试-兼容性测试)