您的当前位置:首页正文

提升软件兼容性测试有效性的方法

来源:九壹网
第35卷 第6期 2019年6月

福 建 电 脑 Journal of Fujian Computer

Vol. 35 No.6

Jun. 2019

提升软件兼容性测试有效性的方法

张晓敏 (福建信息职业技术学院计算机工程系 福州 350003)

摘 要 本文从软件兼容性测试的定义、测试对象与测试内容出发,总结实际项目测试经验,分析提升软件兼容性测试有效性的方法,以期达到提高兼容性测试效率、提升兼容性测试覆盖率等目的。 关键词 软件兼容性;兼容性测试;测试效率;测试覆盖率;质量属性 中图法分类号 TP311.53 DOI:10.16707/j.cnki.fjpc.2019.06.022

Improvement on Effectiveness of Software Compatibility Testing

ZHANG Xiaomin

(Department of Computer Engineering, Fujian Polytechnic of Information Technology, Fuzhou, China, 350003)

1 引言

ISO IEC 25010-2011标准定义软件兼容性是一个产品、系统或组件与其它产品、系统或组件在共享相同的软硬件环境时执行所需功能的能力,也指产品、系统或组件之间相互交换信息的能力[1]。同时,ISO/IEC/IEEE 29119-1:2013标准则指出兼容性测试是评估测试对象在共享环境中,与其它独立产品共存时执行功能或交互信息水平的一种测试类型[2]。

依据上述定义,软件兼容性测试需要与不同类型的软硬件设施共存或互连互通,而不同的兼容性对象采用的测试方法与工具不尽相同,使得兼容性测试用例数量庞大,对测试效率与覆盖率提出了很高的要求。本文通过分析测试对象与方法,总结项目测试实践经验,给出提升兼容性测试有效性的途径与办法,以解决兼容性测试的常见问题。

2 兼容性测试的必要性

大多数开发的软件都不是全新的,常常是为了替换某些不完善的系统。这些软件往往有着特定的目标,涉及与现有系统的兼容以及从现有系统的转换过程[3]。软件系统遵循一定标准开发实现,满足了相应协议、标准的要求,理论上具备与符合相同

———————————————

标准规范的其它软件系统共存或互通的基础,为什么还要进行兼容性测试?主要有3方面原因:

(1)软件实现细节存在差异。不同厂家的软件,甚至软件的不同版本,即使遵循相同的标准协议,对标准的支持细节仍可能存在差别。同时,即便是相同的协议标准,由于遵循的版本不同,支持的细节也不一样,甚至同一协议的不同版本间也可能不兼容(如:网络设备中的路由信息协议RIP,其版本1与版本2之间互不兼容)。

(2)相同或相近的功能在不同的外部条件下表现可能不同。如:打开软件的功能A占用了系统的CPU、内存资源,导致功能B的性能容量下降,使得功能B的兼容性产生变化,某些功能规格可能不再支持。这是实际使用场景对软件兼容性的要求,也是兼容性测试需要考虑的一种情形。

(3)软件中非标准、个性化功能也存在兼容要求。用户常常会将不同厂家的相近功能放在一起使用,因此这些功能彼此也存在互连互通的需求。正如软件兼容性所定义的,软件系统在共享软硬件环境时需要具备与其它系统互通的能力,而这种情形下进行兼容性测试更为必要。

3 测试对象与内容

当对一个软件系统进行兼容性测试时,重点关

张晓敏,女,1978年生,主要研究领域为软件工程、计算机网络技术。E-mail:xm_zhang2019@qq.com。

68 张晓敏:提升软件兼容性测试有效性的方法 第6期

注其所处的软件与硬件2大类环境。 3.1 软件环境

软件环境即软件所处的运行环境。从软件系统外部看,被测软件需要与操作系统、数据库以及与其进行信息交互的其它软件兼容,常见的例子如:一款Windows系统下的主机端软件,能否在Windows的不同版本上运行,是否能与不同版本的数据库软件互通;移动终端上的某个App能否在常见的iOS与安卓系统版本上使用,同时版本升级后能否继续使用之前存储的数据等等。

从软件系统内部看,每个组件需要与同时在运行、彼此共享与互通各类信息的其它组件兼容。譬如在路由器软件中,动态路由协议RIP与OSPF能否同时打开,同时运行时是否影响可支持的路由条目数量等。有时我们会发现——当组件A运行时,组件B却无法打开或者打开后无法使用,此时组件A与B的兼容性就发生了问题。 3.2 硬件环境

软件运行需要硬件资源的支撑,因此需与承载其运行的硬件相兼容。我们会看到,厂商会向用户提供软件产品所适用的操作环境,其中包括软件运行需满足的CPU、内存等硬件配置要求,不可忽视的一点即是测试软件与操作环境的适用程度,这也是一种兼容性要求[4]。

软件系统存在与相连的硬件设备(及运行其上的软件)的通信需求,如网络通信领域常见的例子:A、B设备通过网线互连后,能否识别出对方的存在,能否顺利建立通信通道并正常传输信息,这些都是兼容性的对外表现,也是需要覆盖的兼容性测试对象。而各类移动App在不同手机上的兼容性例子就更常见了。这些例子中软件所需兼容的硬件设施,既可能与被测软件属于同一厂家,也可能是市场上会遇到的其它厂家的设备。测试环境复杂,影响因素众多,测试成本高昂,是兼容性测试的主要困难之一。

4 提升测试有效性的途径

由于软件兼容性测试对象多,测试内容组合数量大,因此如何高效测试是兼容性测试需要解决的关键性问题之一,既要保证测试覆盖率又不会陷入无穷无尽的测试用例“海洋”。在实际项目测试中,通常通过以下4种途径解决该问题。

4.1 测试对象

减少兼容性测试对象的数量是提升测试效率的直接方法,可以使用软件测试的等价类方法对相关软硬件设施分类,再从中选取所需的测试对象。兼容对象的类型大致可以按如下划分:

软件部分——操作系统类型与版本、数据库类型与版本、其它互通软件与版本。

硬件部分——设备种类、品牌、型号与配置等。 各类型中的“代表性”测试对象由以下几个因素决定:

(1) 使用量:市场保有量大,说明被测软件产品与之对接的可能性大。但不能仅用绝对数量或占有率来判断,还需结合软件所投放的(细分)市场、目标客户的情况具体分析,因为销售量大的产品未必一定是相应市场的主力产品。如对于面向个人用户的主机端软件,市场占用率最大的Windows版本一定是必须进行兼容性测试的操作系统。

(2) 厂家主推产品与版本:选择各个厂家主打的产品类型,并依据不同版本的市场占用率从高到低选择。如测试App与手机的兼容性时,可选择相应市场出货量位居前几位的手机型号进行测试,而具体选取的型号数量需结合项目目标、资源与时间等因素确定。需要兼容的“产品类型+版本”组合数量很多,往往需要在相同的硬件上变换不同的软件版本进行测试,如在同一台服务器变更操作系统,此时采用虚拟机等技术来提高效率就很有必要。

(3) 最新型号或版本的软硬件设备:因为新,被测软件未做好兼容性适配的可能性较大,因此是兼容性测试的重要对象。这也要求测试团队需要及时跟踪兼容性测试的软硬件设备信息,更新兼容性测试环境,并及时完成对最新版本的兼容性测试。这一点做得好,测试团队甚至可以成为软件兼容性需求的提出者、引入者,而不仅仅是问题发现者。

(4) 友商主力产品:客户的采购习惯使得不同厂家的产品可能同时出现在同一个使用环境下,同时同类产品被相互对比的可能性也较大。做好与同类产品的兼容性,以保证在参加第三方评测、入围及对比测试场合中不出问题,甚至取得优势。

(5) 易获得性:在一定程度上满足上述几点的同时,更易被获取的设备有利于减少兼容性测试的时间耗费。另外,做好这些设备的管理与维护工作,也是易获得性得以延续的一种保证。

选定典型的测试对象后,可以使用如正交实验法等方法设计具体测试点,从相应的测试数据中选

2019年 福 建 电 脑 69

取合适的数据进行测试,进一步降低工作量[5]。 4.2 测试环境固化共享

兼容性测试的很多时间耗费在软硬件设备准备与连接上,测试环境的相对固化是提高效率的一种可行办法。环境固化主要包含3部分内容:

(1) 硬件稳定:服务器、PC及各类硬件设备到位,位置相对固定或可快速获得。

(2) 软件就绪:各版本操作系统、数据库或其它软件安装到位,或者可通过虚拟机等方式快速变更。

(3) 设备连接关系无需或只需少量变更:测试设备已完成连接或只需简单变更便可完成连接。

从项目测试实践看,复杂场景的测试环境准备时间约占测试执行用时的20%甚至更多,因此环境固化带来的效率提升较为明显。环境固化也有利于测试设备的保存与管理,便于不同的项目、多个团队之间共享测试环境,提高设备利用率。 4.3 测试操作过程自动化

兼容性测试由于涉及设施众多,其中一些操作需要人工干预,完全实现自动化测试并不可行,但可以将其中的重复性操作进行自动化,主要包括:

(1) 同一环境下的兼容性测试步骤:如测试与操作系统的兼容性,除了基本的软件安装外还会进行一定的基本功能验证,这部分操作可以自动化。

(2) 软件版本切换更新操作:软件安装、更新、启动与关闭等操作自动化。

(3) 使用专用工具自动改变互连关系:设备间通过网络互连时,可以使用如:VLAN(Virtual Local Area Network,虚拟局域网)等网络设备功能及相应管理工具自动改变设备间的互连关系,从而实现被测软件与不同设备快速互连。 4.4 第三方测试平台

目前业界有不少提供各类“云测试”或众包测试服务的平台,它们支持丰富的兼容性测试软硬件设施,尤其在移动终端类的兼容性测试中多见。测试人员可以选择适合自身需求的服务,降低自行准备测试设备的成本。

另外,通过与客户建立测试合作关系,使用用户环境中的软硬件设备解决一部分兼容性测试设备问题,也是实际项目中会采用的一种办法。 4.5 避开测试误区

(1) 随意选取兼容性测试内容。兼容性测试应

从软件需求出发,设计、确定所需执行的测试用例,才能全面地发现兼容性问题。一般来说,项目会选择执行与兼容性需求相关的基本功能、操作,譬如相关功能中等级最高的测试用例,而其它如性能测试用例等优先级较高的质量属性用例也经常会出现在兼容性测试中。

(2) 兼容性测试对象不具代表性。不依照需求,仅简单地使用手头现有的软硬件设备进行测试,这样做的效果接近于不进行兼容性测试。在有限的客观条件下,如果暂时无法找到合适的代表性设备,缩小项目兼容性测试范围也是可行的策略,不应将时间与资源浪费在不具代表性的测试对象上。

(3) 一成不变地进行兼容性测试。外部条件多变是兼容性测试的主要特征之一,测试团队需要持续跟踪各类兼容性测试条件的变化,及时更新测试环境、测试对象与测试用例,才能更好地保证兼容性测试的有效性与意义。

5 结束语

兼容性是软件系统的主要质量属性之一,兼容性测试对象与内容包罗万象,并随着被测软件的不同而变化。本文从项目目标、兼容性测试需求与测试技术等角度出发,提出测试对象选择、测试环境固化、测试操作自动化、第三方测试平台选用与测试误区规避等多个途径,以提高兼容性测试效率与测试覆盖率。

由于软件系统类型不同,需要兼容的对象也不一致,本文主要总结分析共通性方法,每个测试团队可依据自身产品、项目的特点与测试经验,选取、设计符合客观实际的兼容性测试方案与用例。

参 考 文 献

[1] ISO/IEC 25010:2011 Systems and software engineering – Systems and

software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models,2011

[2] ISO/IEC 29119-1:2013 Systems and software engineering -- Software

testing -- Part 1: Concepts and definitions,2013

[3] Myers G.J, et al.软件测试的艺术.第3版.北京:机械工业出版社, 2012 [4] 李骋. 存储系统兼容性测试方法应用研究[硕士学位论文]. 重庆邮

电大学, 重庆, 2016年

[5] 章晓勤. 正交实验法在兼容性测试中的应用. 武汉工程大学学报,

2013, 35(10): 81-86

因篇幅问题不能全部显示,请点此查看更多更全内容

Top