2. 西北工业大学软件与微电子学院, 陕西西安 710072
近年来,移动应用在通信、娱乐、新闻、商业、金融等各个行业均取得了快速发展。预测到2014年,全球移动应用市场规模将高达3 300亿美元,而移动应用测试技术已成为急待研究的问题之一。由于移动设备特征和环境的差异性,需要进行充分的兼容性测试。然而移动设备多达上万种,如何选择合适的移动设备和应用环境,是当前兼容性测试迫切需要解决的难题之一[1]。
虽然,已有一些论文针对移动应用的测试方法进行研究,但对与兼容性测试相关的研究仍较少。文献[2]研究了针对Android碎片的兼容性测试方法。文献[3]提出一种综合考虑设备特征覆盖率和设备市场份额的移动应用兼容性测试策略。目前,移动应用兼容性测试仍主要依靠测试人员经验。为此,本文提出了一种基于模型的移动应用兼容性测试方法,并进行了实例验证分析。
1 语义树模型语义树是一种多层次树形模型,可以用于移动应用兼容性测试建模[4]。在语义树中,每个节点用来描述一种测试特征,节点之间的链接则可用于描述测试特征之间的语义关系。于是,可以将一个兼容性测试语义树定义为三元变量(N,E,R)。其中
1) N是一组语义树节点,包括叶子节点、中间节点和根节点,节点用于表示移动应用环境特征。
2) E是一组节点之间的连接,每个连接包括一个父节点和它的一个子节点。每个连接描述了父节点和子节点之间的语义关系。
3) R是一组关系。R有一个语义标签,描述父节点与子节点之间的语义关系。这里,定义了4个语义标签:EOR,AND,SELECT-1,and SELECT-M。图1给出语义关系示例,表1详细描述语义关系。
关系 | 语义关系描述(P是一个父节点,Ci是它的子节点) |
EOR(P,<C1,C2>) | EOR关系表示P节点有2个子节点,这两个子节点二者只能选其一。 |
AND(P,<C1,C2,…,Cn>) | AND关系表示P节点必须包含它所有子节点C1,C2,…,Cn的移动应用环境特征。 |
SELECT-1(P,<C1,C2,…,Cn>) | SELECT-1关系表示节点P必须从可选择的子节点C1,C2,…,Cn中选择1个移动应用环境特征。 |
SELECT-M(P,<C1,C2,…,Cn>) | SELECT-M关系表示节点P必须从可选择的子节点C1,C2,…,Cn中选择M个移动应用环境特征。 |
为了支持移动应用兼容性测试分析,本文在语义树模型基础上,提出了语义生成树概念。下面给出其定义。在图1中,给出一个语义树,以及其生成树的例子。
语义生成树是指根据语义关系,由语义树派生出的子树,上述4种语义关系所对应的派生规则分别是:
1) 对于每个具有AND关系的父节点,必须包含它的所有子节点以及它们的连接。
2) 对于每个具有EOR关系的父节点,必须且只能包含其中一个子节点以及它的连接。
3) 对于每个具有SELECT-1关系的父节点,必须且只能包括其中一个子节点以及它们相应的连接。
4) 对于每个具有SELECT-M关系的父节点,必须包括它的M个子节点以及它们相应的连接。
2 测试价值语义树模型基于语义树模型的兼容性测试方法,通过其生成树集合能够获得所有的兼容性测试环境配置。但所生成的兼容性测试配置环境,数量巨大,而其中一些测试环境对移动应用兼容性的测试价值可能很低。因此,需要研究优化策略和方法,以减少测试环境数量,提高测试效率。
2.1 测试价值权重语义树模型影响移动应用兼容性测试的环境特征很多,如移动应用平台、移动设备硬件特征、本地API接口等,每个移动特征可能包含多个特征值。但是,由于各个移动应用的功能、架构和运行环境不尽相同,各个移动特征和特征值对其兼容性的影响,即其引发移动应用故障的概率也可能不同。例如,对Skype应用,就其摄像头分辨率特征而言,分辨率越高,需要传输的数据也越多,越容易引起故障。因此,其特征值为200万像素相对于30万像素,会具有更高的测试价值。
因此,在为移动应用兼容性测试环境建模时,需要综合考虑特征和特征值对兼容性测试的价值。为此,本文在移动应用兼容性语义树模型中,增加了价值权重因子。图3为移动应用Skype兼容性测试权重语义树模型,其中根据该特征对移动应用兼容性测试的价值和重要性,即该特征引发移动应用安装运行的兼容性的故障概率与危害性,给其赋予价值权重因子w。
例如,在Skype应用测试价值权重语义树模型中,其网络连接下的,wifi的测试价值为0.5,而网络连接的测试价值设定为0.9。这是因为网络连接比wifi的带宽更低,网络更不稳定,可能出现的兼容性问题更多。这里,我们对所有的语义树模型节点设定其测试价值权重因子,在表2中给出其约束规则:
约束规则 | 约束规则说明 |
w≤1 | 所有节点测试价值权重因子小于等于1,其中根节点权重因子为1。 |
语义关系为And的同一父节点的所有子节点的权重因子之和为1。这里wi是其第i个子节点的测试价值权重值。 | |
wi≤1 | 语义关系为OR,SELECT-M,SELECT-1的同一父节点的所有子节点权重因子均小于等于1。 |
在语义树模型中,对每一个非叶子节点的所有子节点,按照其价值权重排序,价值权重大的排在左边,重构移动应用的语义树模型为价值权重语义树模型,该价值权重语义树模型是一个有序树。例如对于Skype应用,根据其功能与兼容性测试经验,为其各个非根节点定义其价值权重,其权重语义树模型如图3所示,其价值权重语义生成树实例如图4所示。
2.2 语义生成树测试价值计算基于价值权重语义树模型,可以获得其所有的价值权重语义生成树。对每个价值权重语义生成树,可以递归计算其最终的测试价值。
首先,根据子节点测试价值计算其父节点测试价值。这里,假设父节点为F,并设它共有N个子节点,分别为S1,S2,…Sn;每个子节点的测试价值权重分别为w1,w2,…wn;其测试价值分别为v1,v2,…vn。则父节点F的测试价值V可由下式算出:
即父节点的测试价值为其所有子节点测试价值与测试权重之积的和,最大为1。
对于价值权重语义生成树的叶子节点,其测试价值的缺省值为1。
这样通过递归计算,最终可以得到测试权重语义生成树根节点的测试价值,即是该语义生成树的测试价值。例如,在图4中,对节点RAM的测试价值,根据其子节点3G的测试价值1和价值权重0.6计算为0.6;对节点Hardware的测试价值,则根据其子节点RAM、Camera和Display的测试价值和价值权重计算为0.88;最终计算的生成树价值权重为0.94。
通过上述方法,可以计算所有语义生成树的测试价值,并按照测试价值对其排序。在兼容性测试时,可以根据测试资源,优先测试价值高的测试环境,而略去测试价值低的测试环境,以期节约测试资源,降低测试成本,提高测试效率。
3 实例验证研究为了验证本文方法的有效性,对Skype、Yelp 2个移动应用进行了基于Android平台的兼容性测试。首先,分别对这2个移动应用建立其测试价值权重语义树模型,然后分别计算各生成树的测试价值,并进行排序。再选择测试价值>0.7的测试环境,构成价值权重语义树兼容性测试环境集。同时,根据经验为两个应用分别选择相同数量的兼容性测试环境,构成相对应的经验测试环境集。最后在两组测试环境上,分别执行同一组的测试用例,表3为最终测试结果。
根据语义树模型,能够获得所有兼容性测试环境,而通过测试价值权重,能够优先测试高价值的测试环境,以提高测试效率,降低测试成本。由表3易见,相对于经验测试方法,本文测试方法能够发现更多移动应用兼容性缺陷,使测试工作更为有效。
4 结 论目前,我国对移动应用兼容性测试的研究仍处于初期阶段,系统有效的方法尚不多见。本文构建了一种基于测试价值语义树模型的移动应用兼容性测试方法。该方法首先通过生成树算法获得所有兼容性测试环境。然后基于测试价值进行排序和过滤,能够有效提高测试效率,降低测试成本。下一步将设计开发一个自动、可视化的移动应用兼容性测试工具,并开展更多的实例验证研究。
[1] | Huang Junfei. AppACTS:Mobile App Automated Compatibility Testing Service[C]//Proceeding of 2014 2nd IEEE International conference on Mobile Cloud Computing, Services, and Engineering, Oxford, UK, 2014: 85-90 |
Click to display the text | |
[2] | Han Dan, Zhang Chenlei, Fa Xiaochao, et al. Understanding Android Fragmentation with Topic Analysis of Vendor-Specific Bugs[C]//Proceedings of the 19th Working Conference on Reverse Engineering, Kingston, Canada, 2012: 83-92 |
Click to display the text | |
[3] | Sergiy Vilkomir, Brandi Amstutz. Using Combinatorial Approaches for Testing Mobile Applications[C]//. Proceeding of 2014 IEEE International Conference on Software Testing, Verification, and Validation Workshops, Cleveland, OH, 2014: 78-83 |
Click to display the text | |
[4] | Tao Chuanqi, Gao Jerry. Modeling Mobile Application Test Platform and Environment: Testing Criteria and Complexity Analysis. Proceeding of 2014 Workshop on Joining AcadeMiA and Industry Contributions to Test Automation and Model-Based Testing, San Jose, USA, 2014: 28-33 |
Click to display the text |
2. Department of Software Engineering, Northwestern Polytechnical University, Xi'an 710072, China