生成活动组件调用关系的方法、装置、设备及存储介质制造方法及图纸

技术编号:35823558 阅读:24 留言:0更新日期:2022-12-03 13:49
本公开提供一种生成活动组件调用关系的方法、装置、设备及存储介质,涉及人工智能技术领域,具体涉及语法分析、自动化、控件识别、软件测试等技术领域,可应用于代码分析、软件测试等场景下。具体实现方案包括:根据目标应用程序所使用的代码的语法规则,对目标应用程序进行解析,得到目标应用程序的语法树;遍历目标应用程序的语法树,得到目标应用程序的全量函数调用关系;根据全量函数调用关系,查找目标应用程序中活动组件的跳转方法和跳转规则;根据目标应用程序中活动组件的跳转方法和跳转规则,生成目标应用程序中活动组件之间的调用关系。本公开可以自动获取到更全面的activity组件的调用关系,且能够更快速地更新activity组件的调用关系。activity组件的调用关系。activity组件的调用关系。

【技术实现步骤摘要】
生成活动组件调用关系的方法、装置、设备及存储介质


[0001]本公开涉及人工智能
,具体涉及语法分析、自动化、控件识别、软件测试等
,可应用于代码分析、软件测试等场景下,尤其涉及一种生成活动组件调用关系的方法、装置、设备及存储介质。

技术介绍

[0002]活动(activity)组件是一种可以包含用户界面的组件,能够用于和用户进行交互。一般而言,一个应用程序中可以包括一个或多个activity组件。对于应用程序而言,可以根据应用程序中activity组件的调用关系,对应用程序进行测试,例如,回归测试、自动化页面稳定性测试、新功能或新页面的测试等。
[0003]目前,获取应用程序中activity组件的调用关系的主要方式包括:人工基于页面控件编写自动化实例(case);通过人工编写的自动化case遍历应用程序的activity组件对应的页面,对应用程序的activity组件对应的页面中的控件进行自动化的随机点击,随机触发到达下一个activity组件对应的页面;收集每次随机触发中前后两个activity组件的到达关系,作为这两个activity组件的调用关系,从而得到整个应用程序中activity组件的调用关系。

技术实现思路

[0004]本公开提供了一种生成活动组件调用关系的方法、装置、设备及存储介质,能够自动获取到更全面的activity组件的调用关系,且能够更快速地更新activity组件的调用关系。
[0005]根据本公开的第一方面,提供了一种生成活动组件调用关系的方法,所述方法包括:
[0006]根据目标应用程序所使用的代码的语法规则,对目标应用程序进行解析,得到目标应用程序的语法树;遍历目标应用程序的语法树,得到目标应用程序的全量函数调用关系;根据全量函数调用关系,查找目标应用程序中活动组件的跳转方法和跳转规则;根据目标应用程序中活动组件的跳转方法和跳转规则,生成目标应用程序中活动组件之间的调用关系。
[0007]根据本公开的第二方面,提供了一种生成活动组件调用关系的装置,所述装置包括:
[0008]语法解析单元,用于根据目标应用程序所使用的代码的语法规则,对目标应用程序进行解析,得到目标应用程序的语法树;函数调用关系识别单元,用于遍历目标应用程序的语法树,得到目标应用程序的全量函数调用关系;跳转识别单元,用于根据全量函数调用关系,查找目标应用程序中活动组件的跳转方法和跳转规则;调用关系生成单元,用于根据目标应用程序中活动组件的跳转方法和跳转规则,生成目标应用程序中活动组件之间的调用关系。
[0009]根据本公开的第三方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的方法。
[0010]根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行根据第一方面所述的方法。
[0011]根据本公开的第五方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据第一方面所述的方法。
[0012]本公开通过根据目标应用程序所使用的代码的语法规则,对目标应用程序进行解析,得到目标应用程序的语法树;遍历目标应用程序的语法树,得到目标应用程序的全量函数调用关系;根据全量函数调用关系,查找目标应用程序中活动组件的跳转方法和跳转规则,并根据目标应用程序中活动组件的跳转方法和跳转规则,生成目标应用程序中活动组件之间的调用关系,实现了基于对目标应用程序的分析自动获取目标应用程序中activity组件的调用关系。由于本公开是在获取到目标应用程序的全量函数调用关系后,对目标应用程序的全量函数调用关系进行分析以得到activity组件的调用关系,所以可以更全面地覆盖目标应用程序中所包含的activity组件,能够获取到更全面的activity组件的调用关系。在后续对目标应用程序进行测试时,更全面的activity组件的调用关系可以使得测试结果更加准确。
[0013]另外,相比于目前获取activity组件的调用关系的方式而言,本公开中,无需人工编写case,获取activity组件的调用关系的成本和耗时更低。而且,对于新增的activity组件而言,本公开可以更快速地获取到新增activity组件的调用关系,实现对新增的activity组件的及时覆盖,提高activity组件的调用关系的时效性。也即,本公开可以更快速地更新activity组件的调用关系。
[0014]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
[0015]附图用于更好地理解本方案,不构成对本公开的限定。其中:
[0016]图1为本公开实施例提供的生成活动组件调用关系的方法的流程示意图;
[0017]图2为本公开实施例提供的生成活动组件调用关系的方法的另一流程示意图;
[0018]图3为本公开实施例提供的生成活动组件调用关系的方法的又一流程示意图;
[0019]图4为本公开实施例提供的生成活动组件调用关系的方法的又一流程示意图;
[0020]图5为本公开实施例提供的图2中S204的一种实现流程示意图;
[0021]图6为本公开实施例提供的生成活动组件调用关系的装置的组成示意图;
[0022]图7示出了可以用来实施本公开的实施例的示例电子设备700的示意性框图。
具体实施方式
[0023]以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0024]应当理解,在本公开各实施例中,字符“/”一般表示前后关联对象是一种“或”的关系。术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
[0025]活动(activity)组件是一种可以包含用户界面的组件,能够用于和用户进行交互。一般而言,一个应用程序中可以包括一个或多个activity组件。对于应用程序而言,可以根据应用程序中activity组件的调用关系,对应用程序进行测试,例如,回归测试、自动化页面稳定性测试、新功能或新页面的测试等。
[0026]目前,获取应用程序中activity组件的调用关系的主要方式包括:人工基于页面控件编写自动化实例(case);通过人工编写的自动化case遍历应用程序的activity组件对应的页面,对应用程序的activity组件对应的页面中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种生成活动组件调用关系的方法,所述方法包括:根据目标应用程序所使用的代码的语法规则,对所述目标应用程序进行解析,得到所述目标应用程序的语法树;遍历所述目标应用程序的语法树,得到所述目标应用程序的全量函数调用关系;根据所述全量函数调用关系,查找所述目标应用程序中活动组件的跳转方法和跳转规则;根据所述目标应用程序中活动组件的跳转方法和跳转规则,生成所述目标应用程序中活动组件之间的调用关系。2.根据权利要求1所述的方法,所述方法还包括:监听所述目标应用程序中活动组件的跳转方法对应的控件,得到所述目标应用程序中活动组件的跳转方法与控件之间的对应关系;所述根据所述目标应用程序中活动组件的跳转方法和跳转规则,生成所述目标应用程序中活动组件之间的调用关系,包括:根据所述目标应用程序中活动组件的跳转方法和跳转规则、以及跳转方法与控件之间的对应关系,生成所述目标应用程序中活动组件之间的调用关系。3.根据权利要求1或2所述的方法,所述方法还包括:获取所述目标应用程序中活动组件的注册文件;解析所述注册文件,得到所述目标应用程序中的全量活动组件名称;根据所述全量活动组件名称,从所述目标应用程序中活动组件之间的调用关系中,移除名称不包含在所述全量活动组件名称中的目标活动组件对应的调用关系。4.根据权利要求1

3任一项所述的方法,所述方法还包括:检测所述目标应用程序的代码变化;响应于检测到所述目标应用程序的代码变化,对所述目标应用程序中活动组件之间的调用关系中,所述目标应用程序的代码变化影响到的活动组件的调用关系进行更新。5.根据权利要求2所述的方法,所述监听所述目标应用程序中活动组件的跳转方法对应的控件,得到所述目标应用程序中活动组件的跳转方法与控件之间的对应关系,包括:获取所述目标应用程序中活动组件的注册文件;所述注册文件包括所述目标应用程序中活动组件所包含的控件的标识信息;监听所述目标应用程序中活动组件的跳转方法对应的控件,并从所述注册文件中获取所述目标应用程序中活动组件的跳转方法对应的控件的标识...

【专利技术属性】
技术研发人员:汪世涛
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1