一种面向场景的移动应用模型融合方法

文档序号:32890292发布日期:2023-01-12 22:58阅读:62来源:国知局
一种面向场景的移动应用模型融合方法

1.本发明涉及软件工程领域,涉及移动应用的界面与界面控件信息、移动应用的模型构造技术和xml文档相似度技术,具体设计了一种面向场景的安卓应用的执行模型融合方法。


背景技术:

2.在当今时代,移动应用飞速发展,其规模和复杂程度都在不断增长。区别于传统的命令行应用,移动应用的一大特点在于其事件驱动的模式,即用户在使用移动应用时与界面交互,不同的交互动作(如点击、长按、滑动
……
)会触发不同的事件,移动应用在捕获到事件后会执行相应的处理动作、改变应用的状态、从而改变所展示的界面,用户会再次在新的界面上触发事件进行交互,这样的循环构成了移动应用的基本运行场景。移动应用不同的状态间由事件触发的跳转构成了应用的控制流。
3.在软件工程的开发生命周期中,模型是一个非常重要的构件,模型的质量对软件开发有至关重要的影响。移动应用事件驱动的特点导致其执行路径相对于一般的程序会更加复杂多变,不同的交互事件触发的应用状态的跳转构成了一个复杂的图结构,相应地为移动应用的建模带来了难度。
4.在对移动应用进行建模时,常见的方法是人工对其进行探索,触发尽可能多的事件跳转,或是使用自动化测试工具,如monkey,ui automator等自动化框架。不同的测试人员以及不同的测试工具在对同一个移动应用进行建模时会产生不同的遍历路径和图,得到不同的移动应用模型。测试人员人工探索的模型往往不够完善,但是更加符合用户使用应用的逻辑;测试框架生成的模型往往覆盖度较高,但是执行序列较为混乱。
5.随着移动应用开发逐渐成为现代软件开发的主流,移动应用模型的重要性也逐渐凸显出来,目前已经有一些工作针对移动应用的模型建立模型数据库,但人工建立移动应用的模型数据库成本太大,而机器探索得到的模型信息不足。本发明提出了一种面向场景的移动应用模型融合方法,可以将人工建立的带有场景功能信息的模型与机器探索的模型合并,并且将场景功能信息泛化到合并后的模型上,从而能够通过合并模型的方式,使用少量的带标注的模型与大量无标注的模型泛化得到大量带有标注的模型,以较低的成本构建拥有较多信息,同时具有一定规模的移动应用模型库,便于后续的研究以及开发工作。


技术实现要素:

6.本发明提供一种面向场景的移动应用模型融合方法,目的在于使用基于xml文档相似度的界面匹配技术与基于组件属性等价的跳转匹配技术,将人工标注的功能场景路径信息泛化到自动化探索的执行路径模型上,同时将人工探索的执行模型与自动化探索的执行模型融合,得到具有更多功能场景信息且更全面的执行模型,进而辅助移动应用开发测试人员进行更多的下游任务。
7.为解决上述问题,本发明通过以下技术方案来实现:
8.一种面向场景的移动应用模型融合方法,其特征在于,包括以下步骤:
9.步骤1)所述方法执行前预定了一种移动应用建模规范,称为移动应用执行路径模型(app runtime path),用户需要提供分别通过自动化和人工探索得到的移动应用执行路径数据,包括每次执行前后的界面截屏与布局,以及每次执行的具体操作,用于构造移动应用执行路径模型,用户同样需要根据对应用的理解提供功能场景信息,即一个代表了移动应用某个具体功能场景的执行序列;
10.步骤2)基于所述步骤1)得到的两个应用执行路径模型和场景标注信息,使用一种基于宽度优先搜索的算法对自动化探索的模型进行遍历,遍历后得到数个与输入功能场景路径匹配的子图,再使用深度优先搜索将所述子图转换为路径的集合;
11.步骤3)将所述步骤1)得到的两个应用执行路径模型合并,同时根据所述步骤2)得到的路径集合将对应的功能场景信息标注到融合后的模型上去,得到了融合完成的具有更多功能场景信息的模型。
12.上述的面向场景的移动应用模型融合方法,其特征在于,所述步骤1)中构造执行路径模型具体包括以下步骤:
13.步骤11)输入人工和自动化探索的应用执行信息,所述应用执行信息包括执行时的界面信息和跳转信息,所述界面信息包括界面截屏和界面布局,所述跳转信息包括跳转的起始状态,目标状态和事件;
14.步骤12)输入应用的功能场景信息;
15.步骤13)根据所述步骤11)的信息构造应用的执行路径模型,所述执行路径模型包括以状态作为的节点、跳转关系作为边的有向图和应用的元信息;
16.步骤14)根据所述步骤11)至步骤13)的信息构造功能场景信息,所述功能场景信息是应用执行路径中一个跳转的序列,所述序列中每个相邻跳转首尾相接,构成一条代表应用某个具体功能的路径。
17.上述的面向场景的移动应用模型融合方法,其特征在于,所述步骤2)中遍历执行路径模型具体包括以下步骤:
18.步骤21)使用一种基于xml布局的状态相似度算法,使用树编辑距离衡量界面布局结构之间的相似度,使用字符编辑距离和直方图距离估算树编辑距离的下界,使用归一化后的估算值作为相似度评价的标准;
19.步骤22)使用一种基于组件属性等价和组件区域重叠率的跳转相似度算法,基于跳转事件所关联的组件的属性是否等价,以及组件对应区域是否重叠,以及跳转事件种类是否相同,判断跳转的相似程度;
20.步骤23)使用基于宽度优先搜索的遍历算法,在执行路径模型中寻找与输入场景路径匹配的子图;
21.步骤24)使用深度优先搜索算法,将所述步骤23)得到的子图转换为场景路径的集合。
22.上述的面向场景的移动应用模型融合方法,其特征在于,所述步骤3)中模型合并具体包括以下步骤:
23.步骤31)合并执行路径模型的状态集合;
24.步骤32)合并执行路径模型的有向跳转图;
25.步骤33)将所述步骤2)得到的泛化后的场景路径集合标注到合并后的模型上,得到一个包含了更多功能场景信息且规模更大的模型。
26.通过采用以上技术方案,可以得到以下有益效果:
27.本发明综合了人工探索模型具有执行逻辑和领域知识,以及自动化探索模型规模较大成本较低的优点,以较低的成本得到更为精确、信息更丰富的移动应用执行模型,用于支持开发人员和测试人员的下游任务。
附图说明
28.图1是本发明实施例构造执行路径模型的示例图。
29.图2是本发明实施例获取遍历起始节点的示例图。
30.图3是本发明实施例遍历执行路径模型的示例图。
31.图4是本发明实施例模型合并的示例图。
具体实施方式
32.为了使本领域技术人员更好地理解本发明,以下结合附图和具体实施例对本发明做进一步详细阐述。
33.本实施例提供一种面向场景的移动应用模型融合方法,该方法包括如下步骤:
34.步骤1)输入人工探索得到的应用执行数据,将其构造为应用执行路径模型,如图1所示,图1为本发明实施例构造执行路径模型的示例图,具体包括以下步骤:
35.步骤11)输入通过人工和自动化方式探索的应用执行信息,主要包括三个部分:应用的状态信息、应用的跳转信息和应用的元信息,所述状态是一个二元组,包含了应用在执行中某一时刻的截屏信息与布局结构信息,每个状态都使用一个唯一的编号进行标识;所述跳转是一个三元组,包括跳转的起始状态、跳转的目标状态和触发跳转的事件,触发跳转的事件同样是一个三元组,包括了交互的控件,交互的动作以及可能含有的输入;所述元信息包括应用的版本,名称等;
36.步骤12)输入应用的功能场景信息,所述功能场景信息是一个跳转的序列,所述序列代表了与应用相关的某个具体的功能;
37.步骤13)根据所述步骤11)中的输入信息分别构造人工探索的执行路径模型和自动化探索的执行路径模型,将状态从0开始按照递增的顺序进行编号,同时修改对应跳转中的对应编号,将状态作为节点,跳转作为边,构建一个有向图,所述有向图、每个状态对应的截屏与布局信息和应用的元信息共同构成了应用的执行路径模型;
38.步骤14)根据所述步骤11)至步骤13)中的信息构造功能场景信息,所述功能场景信息是应用执行路径中一个跳转的序列,所述序列中每个相邻跳转首尾相接,构成一条代表应用某个具体功能的路径。
39.步骤2)使用基于宽度优先搜索的算法遍历应用执行路径模型,得到泛化后的功能场景路径信息,具体包括以下步骤:
40.步骤21)在自动化探索的执行路径模型上,使用界面相似度算法,找到与输入场景路径起点相似的数个界面作为起点,获取遍历起始节点的示例图如图2所示;
41.步骤22)从起点出发,进行宽度优先搜索,搜索深度限制为输入场景路径的长度,
每轮探索根据当前探索的深度,选择场景路径中对应的状态和跳转,根据状态相似度算法和跳转相似度算法,在当前探索节点的后继节点中选择相似度超过预先设定阈值的节点作为后续;
42.步骤23)探索完成后得到一棵树,在该树上执行深度优先探索,每次探索到叶节点则记录本次探索路径为一条结果路径,最终得到一个结果路径的集合。每个起点的结果路径共同构成了泛化后的功能场景路径,遍历执行路径模型的示例图如图3所示。
43.步骤3)将人工探索的执行路径模型与自动化探索的执行路径模型合并,并且将泛化后的功能场景路径标注到合并后的模型上,如图4所示,图4为本发明实施例模型合并的示例图,具体包括以下步骤:
44.步骤31)将两个模型的状态集合进行合并,在合并所述状态集合时为了防止序号重复,会在原本的序号前加上不同的前缀来标识不同来源的模型;
45.步骤32)将跳转模型合并,引入一个新的伪状态,所述伪状态没有对应的截图文件和布局文件,只是作为合并后的arp状态的入口点,合并模型时,在所述伪状态和原本模型的入口状态间添加跳转关系,然后将所述原本模型的跳转关系添加到新的模型中去,所述原本模型的跳转图成为新模型跳转图的子图;
46.步骤33)合并后基于所述步骤2)得到的功能场景路径集合,将功能场景标签作为边的属性添加到应用执行路径模型的有向图中。
47.以上所述为本发明的实施例,但此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。凡在不脱离本发明的原理和精神的情况下依本发明申请专利范围所做的任何省略、修改、等同替换等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1