Android应用的用户行为模式挖掘及复用方法

2022-07-29 07:53毛群王微微尤枫赵瑞莲李征
计算机应用 2022年7期
关键词:控件轨迹语义

毛群,王微微,尤枫,赵瑞莲,李征

Android应用的用户行为模式挖掘及复用方法

毛群,王微微*,尤枫,赵瑞莲,李征

(北京化工大学 信息科学与技术学院,北京 100029)( ∗ 通信作者电子邮箱wangww@mail.buct.edu.cn)

软件测试是保障Android应用质量的有效手段,而理解Android应用的功能作为Android测试过程的基础,旨在深入探究应用的业务逻辑并发现其功能问题,在测试中尤为重要。用户行为模式可充分辅助测试人员理解Android应用功能,从而提高测试效率。基于“相似Android应用共享用户行为模式”的构想,提出一种Android应用的用户行为模式挖掘及复用方法,以降低Android应用测试成本并提高测试效率。具体而言,针对待测Android应用,从其相似Android应用挖掘出用户行为模式;然后利用基于语义的事件模糊匹配策略为待测应用寻找对应事件,并基于用户图形界面(GUI)模型的最优路径选择策略为待测应用生成目标事件序列,从而实现相似应用间的用户行为模式复用。针对三类应用的32种用户行为模式进行实验,结果表明,87.4%的行为模式可在相似Android应用上被完整复用,并且被复用的行为模式可有效覆盖待测应用中90.2%的重要状态。可见,所提方法为Android应用测试提供了有效支撑。

Android应用;Android应用测试;用户行为模式;模式挖掘;模式复用

0 引言

智能手机和平板电脑的普及引起了开发人员对移动应用开发的极大兴趣,随着移动平台的蓬勃发展,移动应用的数量和功能复杂性也大幅提升。根据Gartner公司的调研报告[1],截至2020年的第二季度,Android系统在智能手机市场的占有率达到了87%,是移动市场的主流。相应地,2020谷歌开发者大会表示,Google Play应用商店中安卓应用的下载量突破了485亿。因此,如何保障Android应用的质量已成为开发和测试人员关注的重点。

软件测试是验证Android应用功能和可用性的重要手段,而理解应用程序的功能作为软件测试过程的基础,旨在深入探究应用的业务逻辑,发现其功能问题,在测试中尤为重要。理解应用程序功能最直接的方式即为在实际使用场景下,用户与应用进行真实交互,其交互序列称为用户轨迹。用户轨迹虽可从用户角度,给出应用的功能业务逻辑,但未深入分析用户轨迹之间的内在关联。为此,学者们又提出了用户行为模式[2-4],用以描述用户轨迹之间的关联关系,提取其行为共性,为应用程序的功能测试提供了支撑。

在Web和Android应用测试领域,均有借助用户轨迹和用户行为模式提高测试有效性的研究成果[5-13]发表。在Web应用测试领域,Ermuth等[14]采用改进的闭包序列模式挖掘技术CloSpan(Closed Sequential pattern mining)[15],从Web应用的用户轨迹中推导其用户行为模式,并结合随机测试在应用的模型上指导测试用例生成,以生成复杂且真实的事件序列。在Android应用测试领域,Mao等[16]利用遗传算法从众包测试得到的用户轨迹上学习通用的用户行为模式,并将其用于基于多目标搜索的测试序列生成及优化[17]中,以提高Android应用的Activity覆盖率。可以看出,用户轨迹和用户行为模式通过借助人类经验深入挖掘程序业务逻辑,可有效提高测试有效性。

若对于每个未知应用,均采用用户交互的方式理解应用程序功能势必会带来极大的开销,这不仅增加了人工成本,还会影响测试效率。近期研究[18-21]表明,相似Android应用共享相似功能和工作流,即相似应用共享用户行为模式。用户行为模式的复用不仅可节约人工成本,提高测试效率,还为理解应用程序提供了一种新途径。然而,现有研究大多关注用户轨迹和用户行为模式指导的测试用例生成,还尚未有Android应用的用户行为模式复用研究。

因此,本文提出一种Android应用的用户行为模式复用方法,即利用相似的已知应用用户行为模式,为待测应用生成事件序列,以自动理解待测应用的功能,提高Android应用的测试效率。Android应用的用户行为模式复用虽有理论依据,但仍面临诸多挑战:一是不同Android应用的用户图形界面(Graphical User Interface, GUI)差异使得用户行为模式复用时,事件难以直接匹配;二是不同Android应用的工作流之间存在轻微差异,导致与用户行为模式相匹配的待测应用事件序列不连续。如何为相似的Android应用自动构建事件映射关系,并为待测应用生成可行连续的事件序列,是Android应用用户行为模式复用的关键问题。

考虑到相似Android应用上实现相同功能的事件,其绑定的控件文本信息词法不同但语义相似;且待测应用的GUI模型可有效辅助可行连续的事件序列生成。因此,本文提出一种结合事件语义与GUI模型的Android应用用户行为模式挖掘及复用方法。具体而言,基于已知Android应用的用户轨迹,采用序列模式挖掘技术从中挖掘其用户行为模式。在此基础上,提出基于语义的事件模糊匹配策略和基于GUI模型的最优路径选择策略,将用户行为模式复用到相似待测Android应用上,辅助待测应用的功能理解,为Android应用测试提供支持。

1 本文方法框架

本文方法主要分为Android应用的用户行为模式挖掘和相似Android应用间的用户行为模式复用两个部分,其中,用户行为模式复用又可分为事件匹配和序列生成两个阶段。本文方法的框架如图1所示,包含以下3个模块:

1)Android应用的用户行为模式挖掘。用户轨迹和其用户行为模式本质上都是用户交互产生的行为序列,可采用序列模式挖掘技术,从Android应用的用户轨迹中挖掘该应用的用户行为共性,形成用户行为模式,进而为后续的相似Android应用间的用户行为模式复用提供数据基础。

2)基于语义的事件模糊匹配。从已知应用的用户行为模式和待测应用的GUI模型中提取事件,分别得到源事件序列和目标事件集合。对于源事件序列中的每个源事件,在目标事件集合中寻找与之匹配的目标事件加入候选事件集,由此得到与源事件序列对应的候选事件集。

3)基于GUI模型的事件序列生成。基于候选事件集,借助待测Android应用的GUI模型,为不连续的候选事件间寻找最优可行路径,以生成连续可执行的目标事件序列。

图1 用户行为模式挖掘及复用方法框架

2 Android应用的用户行为模式挖掘及复用

2.1 Android应用的用户行为模式挖掘

本文利用动态分析技术收集Android应用的用户轨迹,依据用户轨迹的序列特性,提出一种基于序列模式挖掘技术的用户行为模式挖掘方法。

Android应用的用户轨迹和用户行为模式的相关定义如下:

定义3 用户行为模式。用户行为模式是在用户轨迹集合中频繁出现的子序列,且用户行为模式之间不存在包含关系。给定用户轨迹集合和最小支持度,则频繁子序列集合记作:

用户行为模式集合记作:

Android应用的用户行为模式挖掘问题可以表示为给定已知Android应用的用户轨迹集合和最小支持度阈值,挖掘得到支持度大于的用户行为模式。

为收集用户轨迹,需获取用户与Android应用之间的动态交互行为。Appium[22]是目前最强大的移动应用自动化测试框架,可供用户记录事件序列的测试脚本。为获取用户轨迹,本文采用Appium记录用户与Android应用之间的动态交互行为。由于Appium只能捕获事件信息,无法捕获状态信息,因此需要对录制的测试脚本在事件前后插桩,并执行插桩后的脚本以获取用户触发的事件以及事件触发前后的应用状态,从而构成用户轨迹。用户对Android应用的一次访问过程为一条用户轨迹,不同用户的多次访问共同构成用户轨迹集合,以用于用户行为模式挖掘。

用户轨迹是用户与Andoird应用交互产生的行为序列,故用户行为模式挖掘问题与序列模式挖掘问题相似,可以采用序列模式挖掘技术解决用户行为模式挖掘问题。CloFAST(Closed FAST sequence mining algorithm based on sparse id-lists)[23]是一种闭序列模式挖掘算法,可通过空间探索改善、支持度计数和搜索空间修剪来挖掘获得更长的闭序列。由于用户轨迹结构复杂,在使用CloFAST对用户轨迹集合挖掘用户行为模式之前,需要对用户轨迹进行预处理,即识别相似的轨迹元素并用相同的标记来表示它们。在此基础上,利用CloFAST挖掘用户行为模式。对于CloFAST的挖掘结果,由于闭序列模式存在冗余,本文将过滤被其他序列模式包含的序列模式,而保留较长的序列模式作为后续复用的用户行为模式。

2.2 基于语义的事件模糊匹配

由于不同Android应用上有实现相同功能的事件,其事件描述虽词法不同但语义相似;因此,本文通过分析事件的语义特征,衡量事件之间的语义相似性,以实现相似应用间的事件匹配。

由Android应用事件的定义1可知,事件涉及的特征包括事件类型、事件触发时所在的页面以及事件绑定的GUI控件属性。其中,事件的语义特征主要体现在和上。对于,它的语义来源于GUI控件的若干属性值:1),开发人员对GUI控件的赋值通常能反映其提供的功能;2),一般显示在GUI控件上,表示控件的名称;3),指定GUI控件的文本描述,帮助用户理解控件的功能;4)如果GUI控件没有设置属性和属性,则需要从周围一定范围内的GUI控件上获取描述信息;5),编辑控件一般会设置此属性,以显示给用户的提示信息;6),带图像的GUI控件设置此属性为图像文件名,以链接相应的要显示的图像,由于图像内容通常会反映在图像文件名中,因此也应予以考虑。对于,其语义源于页面的Activity组件名,其组件名通常能反映此页面提供的主要功能,故需加以考虑。

为了建立源事件s和目标事件t之间的匹配关系,需要先度量s和t之间的事件相似度。由于事件类型可以在粗粒度上区分事件,GUI控件的属性值和事件所在页面的Activity组件名可从语义上评估事件之间的功能相似性,因此,本文考虑1)事件类型、2)事件绑定的GUI控件的属性和3)事件触发时页面的Activity组件名这3个方面,计算事件之间的相似度,公式如下:

其中:s和t分别是s和t的事件类型;semt(s,t)是s和t的属性之间的语义相似度;act(s,t)是s和t的Activity组件名之间的语义相似度;和分别是公式中semt(s,t)和act(s,t)的权重,并且和之和等于1。

计算事件相似度之前,需要先计算两个语义相似度semt(s,t)和act(s,t)。对于semt(s,t),相似事件绑定的GUI控件在语义上相似,且其语义有多个属性来源,例如,TextView的反映其功能,而与之匹配的ImageView的图像文件名反映其功能。因此,本文提出一种事件模糊匹配策略,该策略考虑不同属性之间的交叉配对,以提高事件匹配的准确度。

由于页面的Activity组件名和GUI控件的属性一样,均可预处理为一组文本标签,act(s,t)的计算与属性对(s,t)的语义相似度计算相似。在计算得到semt(s,t)和simact(s,t)之后,根据式(4),即可计算出s和t之间的事件相似度。对于用户行为模式中的每个源事件s,将其与待测应用上的所有目标事件进行相似度计算,相似度高于预设阈值的事件都作为s匹配的候选事件,以此作为后续目标事件序列生成的基础。

2.3 基于GUI模型的事件序列生成

在事件匹配阶段,本文为用户行为模式中的每个源事件构建一个候选事件集,则可以得到一个与用户行为模式的源事件序列对应的候选事件集序列。由于相似Android应用之间的工作流差异,导致待测应用上的前后序候选事件之间不连续。本节旨在利用待测应用的GUI模型建立候选事件之间的连续关系,扩展生成可执行的目标事件序列。

定义4 GUI模型。Android应用的GUI模型本质上是有限状态机(Finite State Machine, FSM),可由五元组(,0,,,)表示,是状态集合,0是模型的初始状态,是模型的终止状态集合,是事件集合,是迁移集合,其中每条迁移可表示为(s,,t),s和t分别是源状态和目标状态,是触发后致使s转换成t的事件。

图2 Android应用的局部GUI模型

为了从候选路径中选出最优路径以构成目标事件序列,本文提出一种最优路径选择策略,即为候选路径进行优先级排序,优先级最高的候选路径将被选择作为目标事件序列的片段。候选路径的优先级主要考虑两方面:1)更接近源事件语义的候选事件应被优先选择;2)实现相同功能的逻辑步骤在数量上接近,即连接候选事件的路径应尽可能短。因此,候选路径的优先级不仅取决于候选事件的语义相似性,还取决于候选路径的长度。对于每条候选路径,在事件相似度的基础上引入路径长度计算路径优先级,路径优先级计算公式如下:

在最优路径选择策略的指导下,目标事件序列生成的流程如下:对于用户行为模式中源事件匹配得到的候选事件集,利用待测应用的GUI模型生成当前状态到其中候选事件所在迁移的候选路径,并选择优先级最高的候选路径以扩展目标事件序列。然后执行该候选路径以验证其可行性,若该路径是可执行的,则继续处理与下一个源事件匹配的候选事件;否则,该路径将被标记为不可行,且选择次优的候选路径。若所有候选路径都不可行,则将回溯到上一个源事件的候选事件集,并选择另一条次优可行的候选路径加入目标事件序列。重复此过程,直至用户行为模式中所有源事件对应的候选事件集都被遍历,且最终得到一条可执行的目标事件序列。

2.4 复用算法复杂度分析

本文的用户行为模式复用算法主要分为事件匹配和序列生成两个阶段。在事件匹配阶段,需将用户行为模式中的每个源事件与待测应用上的所有目标事件进行事件相似度计算,因此,其时间复杂度为(*),是用户行为模式中的源事件数量,是待测应用上的目标事件数量;在序列生成阶段,假设候选事件集序列包含(≤)个候选事件集,每个候选事件集中包含个候选事件,对于每个候选事件,在GUI模型上可找到条从当前状态到该候选事件的候选路径,由于算法为每个候选路径计算路径优先级并排序验证路径可行性,排序的时间复杂度是(log),因此在最好情况下(即不存在回溯),算法的时间复杂度为(*(*)*log(*)),在最坏情况下(即处理每个候选事件集都需要回溯),算法的时间复杂度为(!*(*)*log(*))。因此,在最坏情况下,相似Android应用间的用户行为模式复用方法算法的整体复杂度为(*+!*(*)*log(*))。

3 实验与结果分析

为验证本文Android应用的用户行为模式挖掘与复用方法的有效性,从用户行为模式挖掘方法的合理性、基于语义的事件模糊匹配策略的准确性以及用户行为模式复用方法的有效性三个方面出发,提出以下研究问题:

研究问题1 从Android应用的用户轨迹中挖掘得到的用户行为模式是否可代表此类Android应用的典型功能?

研究问题2 基于语义的事件模糊匹配策略能否准确匹配事件?

研究问题3 本文用户行为模式复用方法能否为待测Android应用生成完整且有效的目标事件序列?

针对上述研究问题,本文选取来自三种不同类型的12个开源Android应用进行实验,其详细信息如表1所示。每种类型有4个Android应用,其中,S1、N1和W1作为已知应用,其余为待测应用。为收集已知应用的用户轨迹,5个与本研究无关的人员使用Appium与其交互,他们对应用的访问过程完全依赖于其自身的使用习惯。另外,实验中最小支持度与用户轨迹总数的比值(相对支持度)设为0.1,事件相似度阈值设为0.5,且事件相似度度量公式中的参数和分别设为2/3和1/3。

表1 实验中使用的Android应用

3.1 评价指标

为了评价基于语义的事件模糊匹配策略的准确性,本文以事件匹配的精确率和召回率为评价指标,其中精确率表示正确匹配的事件占所有实际匹配事件的比例,召回率表示正确匹配的事件占所有预期匹配事件的比例。事件匹配结果可细分为以下4种情况:1)正确匹配事件占比,即用户行为模式中的源事件正确匹配到预期目标事件的占比(即(True Positive));2)错误匹配事件占比,即用户行为模式中的源事件没有匹配到预期目标事件,但匹配到了其他目标事件的占比(即(False Positive));3)正确未匹配事件占比,即用户行为模式中的源事件没有匹配到目标事件,且待测应用上不存在预期目标事件的占比(即(True Negative));4)错误未匹配事件占比,即用户行为模式中的源事件没有匹配到目标事件,但待测应用上存在预期目标事件的占比(即(False Negative))。用以上指标计算事件匹配的精确率和召回率,其中:

为了评价用户行为模式复用方法的有效性,本文考虑两个方面,一是能否完整复用用户行为模式,二是复用的用户行为模式能否表征待测应用的常用行为。

用户行为模式复用的完整性主要反映在用户行为模式被完整复用的占比(Completely-reused Rate)和被部分复用的占比(Partially-reused Rate)。具体而言,表示已知应用的用户行为模式在待测应用上被完全重现的占比,而表示已知应用的用户行为模式在待测应用上被部分重现的占比。

而复用的行为模式能否表征待测应用的常用行为主要反映在生成的目标事件序列是否可以覆盖待测应用的重要状态。一般网络中,介数中心性(Betweenness Centrality)可表征任意节点对之间的最短路径需通过该节点的概率,标志着该节点对节点间通信的控制能力。相应地,在Android应用的GUI模型中,本文认为具有较高值的状态更有可能被访问,即该状态在模型中的重要度更高。因此,本文采用状态的介数中心性来表示该状态的重要度。为了评价待测应用的目标事件序列,需计算待测应用GUI模型上所有状态的值,并按值从高到低将状态排序。根据值将状态分为3个重要度级别:级别1的范围是状态的前20%,级别2的范围是状态的前20%至50%,其余状态被划分为级别3。若目标事件序列对重要度级别较高的状态覆盖更多,则表明本文的用户行为模式复用方法可有效覆盖待测应用的常用行为。

3.2 用户行为模式挖掘方法的合理性验证

用户行为模式是Android应用的常见用户行为,标志着该应用的常用/典型功能。用户行为模式挖掘方法的合理性在于,从应用的用户轨迹中挖掘得到的用户行为模式能否代表该应用的常用/典型功能。为了评估用户行为模式挖掘方法的合理性,本文分析并概述了挖掘得到的用户行为模式所涉及的功能。

表2为已知应用的用户轨迹和用户行为模式挖掘的结果。

表2 用户轨迹和用户行为模式挖掘的结果

可以看出,对于已知应用S1、N1和W1,分别从收集的用户轨迹中挖掘出了13、5和14种用户行为模式。以S1为例,通过分析该应用的13种用户行为模式,可以总结出它们代表的7种典型功能,分别是对特定列表或商品进行添加、删除和编辑操作,以及对列表中的商品进行排序。显然,这些功能在购物清单类应用中普遍存在,很大程度上代表了此类应用的典型功能。N1和W1的实验结果与S1一致,进一步证实了用户行为模式确实能代表同类型应用的典型功能。需要注意的是,典型功能的数量不等于模式的数量,因为存在一种常见情况,即使多种用户行为模式的事件序列存在细微差异,但它们依然实现相同的功能。例如,S1中商品的删除方式有两种:一种是长按商品,然后点击“删除”操作;另一种是选中商品,打开选项菜单,然后点击“删除选中项目”操作。这两种删除方式都是实现商品删除功能的常见用户行为模式。

3.3 事件模糊匹配策略的准确性验证

为了评估基于语义的事件模糊匹配策略的准确性,本文在事件匹配阶段分别对比了使用事件模糊匹配策略和不使用事件模糊匹配策略的结果,其事件匹配结果的详细信息如表3所示。总体而言,在事件匹配阶段使用事件模糊匹配策略平均达到了74.3%的精确率和94.7%的召回率,证明了事件模糊匹配策略的准确性。具体来说,对于购物清单类应用,事件模糊匹配策略平均将正确匹配事件占比提高了8.2个百分点,将错误匹配事件占比降低了8.2个百分点;对于笔记类应用,上述数值分别为12.8个百分点和3.9个百分点;对于天气类应用,上述数值分别为38.5个百分点和9.9个百分点。结果表明,事件模糊匹配策略能有效提高正确匹配的事件占比,降低有预期目标事件却未成功匹配的事件占比。进而,对于购物清单类应用,事件模糊匹配策略将事件匹配的精确率和召回率分别提高2.1个百分点和10.9个百分点;对于笔记类应用,上述数值分别为10.5个百分点和8.6个百分点;对于天气类应用,上述数值分别为40.4个百分点和31.9个百分点。上述结果进一步证明了事件模糊匹配策略对事件匹配准确性的提升能力。

表3 使用和不使用模糊策略的事件匹配结果 单位:%

3.4 用户行为模式复用方法的有效性验证

为了整体评估本文的用户行为模式复用方法的有效性,本文统计了完整复用和部分复用的用户行为模式数量,以及生成的目标事件序列对待测应用GUI模型的状态覆盖率。

图3展示了用户行为模式复用的完整性结果。可以看出,对于每个待测应用,其与之和都为100%,说明实验中涉及的用户行为模式均被复用。总体而言,和的平均值分别是87.4%和12.6%,这表明本文的用户行为模式复用方法可以完整复用已知应用的绝大多数用户行为模式。

此外,通过分析生成的目标事件序列,发现用户行为模式中源事件的平均值为2.4%,相较于事件匹配阶段的3.5%,降低了1.1个百分点,这说明在事件匹配阶段的错误未匹配事件在序列生成阶段被成功复用。具体地,对比图3中的与表3中的,可以发现,对于待测应用N2,在事件匹配阶段,有3.9%的源事件有预期目标事件却未在待测应用上匹配到任何目标事件,然而,经过序列生成阶段后,N2的达到了100%,说明在序列生成阶段,错误未匹配事件对应的预期目标事件被准确补充至目标事件序列中,从而使得用户行为模式中的所有源事件被复用。由此可以证明,在目标事件序列生成阶段,借助待测应用的GUI模型可以在序列中补充一些错误未匹配事件的预期目标事件,从而提升用户行为模式的完整复用率。

图3 用户行为模式复用的完整性结果

表4展示了生成的目标事件序列对目标应用的3个重要度级别的状态覆盖率。平均来说,生成的目标事件序列对级别1、级别2和级别3的状态覆盖率分别是90.2%、73.0%和65.7%。可以看出,3个级别的状态覆盖率呈递减关系,这表明生成的目标事件序列更倾向于覆盖重要度更高的状态,即更可能被用户访问的状态。因此,本文的用户行为模式复用方法可有效生成覆盖待测应用常用行为的目标事件序列。

表4 目标事件序列对三个重要度级别的状态覆盖率 单位:%

4 结语

为了帮助用户快速理解新应用的功能,提升测试效率,本文提出一种Android应用的用户行为模式挖掘与复用方法。在模式挖掘阶段,采用闭包序列模式挖掘技术CloFAST从已知应用的用户轨迹中挖掘用户行为模式;在模式复用阶段,利用基于语义的事件模糊匹配策略,实现相似Android应用的事件匹配,利用基于GUI模型的最优路径选择策略,建立候选事件之间的连续关系,为待测应用生成连续可执行的事件序列,实现相似Android应用的用户行为模式复用。实验结果表明,挖掘得到的用户行为模式能代表同类型应用的典型功能;基于语义的事件模糊匹配策略能够有效提高事件匹配的准确性,且绝大部分用户行为模式可以被完整地复用,可有效覆盖待测应用的常用行为。

在未来工作中,我们计划将Android应用的用户手势纳入研究,以扩展更复杂的用户交互场景;并且本文的研究成果可以与现有的Android自动化测试方法结合使用,提升其测试效果及效率。

[1] Gartner, Inc. Gartner says global smartphone sales declined 20% in second quarter of 2020[EB/OL]. (2020-08-25) [2021-02-12].https://www.gartner.com/en/newsroom/press-releases/2020-08-25-gartner-says-global-smartphone-sales-declined-20--in-.

[2] 刘洪辉,吴岳芬. 用户行为模式挖掘问题的研究[J]. 计算机技术与发展, 2006, 16(5):50-52, 55.(LIU H H, WU Y F. Research on user’s behavior pattern mining[J]. Computer Technology and Development, 2006, 16(5): 50-52, 55.)

[3] 杨风雷,阎保平. Web用户行为模式挖掘研究[J]. 微电子学与计算机, 2008, 25(11):146-149.(YANG F L, YAN B P. Research on Web usage mining[J]. Microelectronics and Computer, 2008, 25(11): 146-149.)

[4] 姬浩博,王俊红. 一种改进的PrefixSpan算法及其在Web用户行为模式挖掘中的应用[J]. 计算机科学, 2016, 43(1):25-29.(JI H B, WANG J H. Research on improved PrefixSpan algorithm and its application in Web user behavior patterns mining[J]. Computer Science, 2016, 43(1): 25-29.)

[5] BROOKS P A, MEMON A M. Automated GUI testing guided by usage profiles[C]// Proceedings of the 22nd ACM/IEEE International Conference on Automated Software Engineering. New York: ACM, 2007: 333-342.

[6] LORENZOLI D, MARIANI L, PEZZÈ M. Automatic generation of software behavioral models[C]// Proceedings of the 30th International Conference on Software Engineering. New York: ACM, 2008: 501-510.

[7] WANG W W, GUO J X, LI Z, et al. EFSM-oriented minimal traces set generation approach for Web applications[C]// Proceedings of the IEEE 42nd Annual Computer Software and Applications Conference. Piscataway: IEEE, 2018: 12-21.

[8] WANG W W, GUO X H, Z. LI Z, et al. Test case generation based on client-server of Web applications by memetic algorithm[C]// Proceedings of the IEEE 30th International Symposium on Software Reliability Engineering. Piscataway: IEEE, 2019: 206-216.

[9] LINARES-VÁSQUEZ M, WHITE M, BERNAL-CÁRDENAS C, et al. Mining Android app usages for generating actionable GUI-based execution scenarios[C]// Proceedings of the IEEE/ACM 12th Working Conference on Mining Software Repositories. Piscataway: IEEE, 2015: 111-122.

[10] ERNST M D, COCKRELL J, GRISWOLD W G, et al. Dynamically discovering likely program invariants to support program evolution[J]. IEEE Transactions on Software Engineering, 2001, 27(2): 99-123.

[11] ELBAUM S, ROTHERMEL G,KARRE S, et al.Leveraging user-session data to support Web application testing [J]. IEEE Transactions on Software Engineering, 2005, 31(3):187-202.

[12] MILANI FARD A, MIRZAAGHAEI M, MESBAH A. Leveraging existing tests in automated test generation for Web applications[C]// Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering. New York: ACM, 2014: 67-78.

[13] LIU P, ZHANG X Y, PISTOIA M, et al. Automatic text input generation for mobile testing[C]// Proceedings of the IEEE/ACM 39th International Conference on Software Engineering. Piscataway: IEEE, 2017: 643-653.

[14] ERMUTH M, PRADEL M. Monkey see, monkey do: effective generation of GUI tests with inferred macro events[C]// Proceedings of the 25th International Symposium on Software Testing and Analysis. New York: ACM, 2016:82-93.

[15] YAN X F, HAN J W, AFSHAR R. CloSpan: mining closed sequential patterns in large datasets[C]// Proceedings of the 3rd SIAM International Conference on Data Mining. Philadelphia, PA: Society for Industrial and Applied Mathematics, 2003: 166-177.

[16] MAO K, HARMAN M, JIA Y. Crowd intelligence enhances automated mobile testing[C]// Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. Piscataway: IEEE, 2017: 16-26.

[17] MAO K, HARMAN M, JIA Y. Sapienz: multi-objective automated testing for android applications[C]// Proceedings of the 25th International Symposium on Software Testing and Analysis. New York: ACM, 2016: 94-105.

[18] RAU A, HOTZKOW J, ZELLER A. Transferring tests across Web applications[C]// Proceedings of the 2018 International Conference on Web Engineering, LNCS 10845/LNISA 10845. Cham: Springer, 2018: 50-64.

[19] HU G, ZHU L J, YANG J F. AppFlow: using machine learning to synthesize robust, reusable UI tests[C]// Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. New York: ACM, 2018: 269-282.

[20] LIN J W, JABBARVAND R, MALEK S. Test transfer across mobile apps through semantic mapping[C]// Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering. Piscataway: IEEE, 2019: 42-53.

[21] BEHRANG F, ORSO A. Test migration between mobile apps with similar functionality[C]// Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering. Piscataway: IEEE, 2019: 54-65.

[22] OpenJS Foundation. Appium: mobile app automation made awesome[EB/OL]. [2020-08-25].http://appium.io.

[23] FUMAROLA F, LANOTTE P F, CECI M, et al. CloFAST: closed sequential pattern mining using sparse and vertical id-lists[J]. Knowledge and Information Systems, 2016, 48(2):429-463.

[24] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space[EB/OL]. (2013-09-07) [2020-08-25].https://arxiv.org/pdf/1301.3781.pdf.

MAO Qun, born in 1997, M. S. candidate. Her research interest include software testing.

WANG Weiwei, born in 1990, Ph. D., lecturer. Her research interests include Web application software testing, software modeling.

YOU Feng, born in 1963, M. S., senior engineer. His research interests include software testing, software reliability, Web user behavior analysis.

ZHAO Ruilian, born in 1964, Ph. D., professor. Her research interests include software testing, software reliability.

LI Zheng, born in 1974, Ph. D., professor. His research interest include software regression testing.

Pattern mining and reuse method for user behaviors of Android applications

MAO Qun, WANG Weiwei*, YOU Feng, ZHAO Ruilian, LI Zheng

(,,100029,)

Software testing is an effective way to ensure the quality of Android applications. Understanding the functions of Android applications is the basis of the Android testing process. It aims to deeply explore the application’s business logic and reveal its functional defects, playing an important role in testing. User behavior patterns can assist testers in understanding an Android application’s functions, thereby improving test efficiency. Based on the idea “similar Android applications share user behavior patterns”, a user behavior pattern mining and reuse method was proposed to reduce the cost of Android application testing and improve the testing efficiency. Specifically, for the Android application under test, the user behavior patterns from a similar Android application were mined. Then, the semantic-based event fuzzy matching strategy was used to search the corresponding events for the application under test, and the Graphical User Interface (GUI) model based optimal path selection strategy was used to generate target event sequences for the application under test, thereby achieving user behavior pattern reuse across similar applications. The experiments were conducted on 32 user behavior patterns of three categories of Android applications. The results show that 87.4% of user behavior patterns can be completely reused on similar Android applications, and the reused user behavior patterns can effectively cover 90.2% of important states in applications under test. Thus, the proposed method provides effective support for the testing of Android applications.

Android application; Android application testing; user behavior pattern; pattern mining; pattern reuse

TP311.5

A

1001-9081(2022)07-2155-07

10.11772/j.issn.1001-9081.2021040652

The work is partially supported by National Natural Science Foundation of China (62077003, 61872026).

2021⁃04⁃25;

2021⁃08⁃03;

2021⁃08⁃06。

国家自然科学基金资助项目(62077003, 61872026)。

毛群(1997—),女,湖南祁阳人,硕士研究生,主要研究方向:软件测试; 王微微(1990—),女,河北沧州人,讲师,博士,CCF会员,主要研究方向:Web应用软件测试、软件建模; 尤枫(1963—),男,江苏江都人,高级工程师,硕士,CCF会员,主要研究方向:软件测试、软件可靠性、Web用户行为分析; 赵瑞莲(1964—),女,山西忻州人,教授,博士,CCF会员,主要研究方向:软件测试、软件可靠性; 李征(1974—),男,河北清苑人,教授,博士,CCF会员,主要研究方向:软件回归测试。

猜你喜欢
控件轨迹语义
真实场景水下语义分割方法及数据集
基于C++Builder 的电子邮件接收程序设计*
使用“填表单”微信小程序 统计信息很方便
浅谈求轨迹方程中的增解与漏解
无从知晓
基于.net的用户定义验证控件的应用分析
捕捉物体运动轨迹
汉语依凭介词的语义范畴
Spreadsheet控件在Delphi数据库系统中的编程与应用