图形用户界面的测试方法及相关设备技术

技术编号:33836949 阅读:16 留言:0更新日期:2022-06-16 11:54
本申请实施例提供了一种图形用户界面的测试方法及相关设备,涉及软件测试领域。该方法对应一个测试过程,该测试过程包括步数递增的多个回合,具体地:获取第一待测组件,并确定第一待测组件中的待测GUI,该待测GUI携带未完成标志并且对应于包括多个测试控件的结构树;随后,遍历该结构树中每个测试控件直至满足结束条件;其中遍历包括通过筛选出的触发方式触发测试控件并根据触发所得的反馈对触发所采取的触发方式进行强化操作。本申请通过设置步数递增的多个回合、测试携带有未完成标志的待测GUI,并对触发方式实施强化操作,以提升测试时的深度和广度,并有效利用测试时间,从而在预设时间内提高测试覆盖度。预设时间内提高测试覆盖度。预设时间内提高测试覆盖度。

【技术实现步骤摘要】
图形用户界面的测试方法及相关设备


[0001]本申请涉及软件测试
,具体而言,本申请涉及一种图形用户界面的测试方法及相关设备。

技术介绍

[0002]Monkey工具,一个使用随机测试策略的测试工具,被广泛应用于针对安卓应用测试中。
[0003]目前,原生Monkey工具采用随机策略进行图形用户界面(GraphicalUserInterface,简称GUI)遍历,但在测试结束之后,会出现遗漏部分GUI未能进行测试的状况,即遍历过程的覆盖度较低。若无法覆盖更多GUI场景,则无法发现更多应用程序崩溃相关的问题。
[0004]针对该问题,现有技术提出了两种技术方案:(1)单机算法探索能力采用传统强化学习策略的GUI遍历策略;(2)依赖中央控制节点的多机并行GUI遍历策略。
[0005]然而,针对于方案(1),未能平衡深度和广度的探索,提高遍历过程中的覆盖度效果不明显;针对于方案(2),若中央控制节点出现故障,则将导致各个测试设备无法自主决策测试动作,即影响了测试过程的稳定性,最终影响了整个测试结果。

技术实现思路

[0006]本申请旨在解决上述技术问题之一。
[0007]根据本申请实施例的一个方面,提供了一种图形用户界面的测试方法,该方法对应一个测试过程,该测试过程包括多个回合,每个回合的步数依次递增,该方法包括:
[0008]在测试过程的当前回合,获取第一待测组件;确定第一待测组件中的待测图形用户界面GUI,其中,待测GUI携带未完成标志并对应于包括多个测试控件的结构树;按以下方式遍历结构树中每个测试控件,直至满足结束条件:通过筛选出的触发方式触发该测试控件,并根据触发所得的反馈对筛选出的触发方式进行强化操作。
[0009]在一种可能的实现方式中,每个触发方式包括权重值;通过筛选出的触发方式触发该测试控件,并根据触发所得的反馈对筛选出的触发方式进行强化操作,包括:
[0010]从预设的多个触发方式中筛选出符合条件的触发方式,其中,符合条件的触发方式的权重值大于预设阈值;针对每个符合条件的触发方式进行以下操作:以符合条件的触发方式触发该测试控件,并得到反馈;根据反馈,对该触发方式进行强化操作。
[0011]在一种可能的实现方式中,根据该反馈对该触发方式进行强化操作,包括:
[0012]若反馈为保持待测GUI,将该触发方式的权重值设置为预设的第一数值,其中,第一数值小于或者等于预设阈值;若反馈为得到新的待测GUI,增加该触发方式的权重值;若反馈为检测到状态循环,减少该触发方式的权重值。
[0013]在一种可能的实现方式中,测试过程包括用于存储历史待测组件的历史组件集,若该反馈为得到新的待测GUI,增加该触发方式的权重值,包括:
[0014]确定新的待测GUI对应的第二待测组件;若第二待测组件与第一待测组件相同,按照预设的第二数值增加该触发方式的权重值;若第二待测组件与第一待测组件不同,且为历史待测组件,按照预设的第三数值增加该触发方式的权重值;若第二待测组件与第一待测组件不同,且不为历史待测组件,按照预设的第四数值增加该触发方式的权重值;其中,第二数值小于第三数值,第三数值小于第四数值。
[0015]在一种可能的实现方式中,若当前回合已结束且测试过程未结束,该方法还包括:
[0016]基于第二待测组件进行下一回合的测试。
[0017]在一种可能的实现方式中,在遍历完结构树之后,该方法还包括:
[0018]若待测GUI对应于叶子节点,确定待测GUI的标志为完成,其中,叶子节点对应于没有可跳转GUI的GUI,可跳转GUI为根据结构树上的测试控件对应的触发方式确定的GUI;若待测GUI对应于非叶子节点,且待测GUI的所有的可跳转GUI的标志为完成,确定待测GUI的标志为完成。
[0019]在一种可能的实现方式中,确定第一待测组件中的待测图形用户界面GUI,具体包括:
[0020]根据预设的哈希算法对第一待测组件的当前GUI对应的结构树进行哈希运算,并将得到的运算结果确定为当前GUI的编码,其中,当前GUI的标志为未完成;根据当前GUI的编码在历史状态集中进行匹配,以确定是否存在相同编码的历史待测GUI;若匹配失败,将当前GUI确定为待测GUI。
[0021]在一种可能的实现方式中,该方法应用于包括多个设备的系统中任一设备,在测试过程的当前回合,获取第一待测组件,包括:
[0022]响应于服务器同时向多个设备发送的启动消息,启动第一回合;获取初始化测试过程时得到的至少一个公共组件;将至少一个公共组件中每个公共组件依次确定为第一待测组件并进行测试。
[0023]在一种可能的实现方式中,在结束针对至少一个公共组件的测试之后,该方法还包括:
[0024]确定至少一个新的待测组件;向服务器发送至少一个新的待测组件,并接收服务器根据至少一个新的待测组件反馈的最新的历史组件集;根据最新的历史组件集确定第一待测组件。
[0025]在一种可能的实现方式中,结束条件包括以下至少一项:
[0026]遍历完结构树;结束当前回合;结束测试过程。
[0027]根据本申请实施例的另一个方面,提供了一种图形用户界面的测试装置,该装置对应一个测试过程,该测试过程包括多个回合,每个回合的步数依次递增,该装置包括:
[0028]获取模块,用于在测试过程的当前回合,获取第一待测组件;确定模块,用于确定第一待测组件中的待测GUI,其中,待测GUI携带未完成标志并对应于包括多个测试控件的结构树;触发模块,用于按以下方式遍历结构树中每个测试控件,直至满足结束条件:通过筛选出的触发方式触发该测试控件,并根据触发所得的反馈对筛选出的触发方式进行强化操作。
[0029]根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括:存储器、处理器及存储在存储器上的计算机程序,该处理器执行计算机程序以实现本申请上述
一个方面所示方法的步骤。
[0030]根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以实现本申请上述一个方面所示方法的步骤。
[0031]本申请实施例提供的技术方案带来的有益效果是:
[0032]本申请提供了一种图形用户界面的测试方法,该方法对应一个测试过程,该测试过程包括步数递增的多个回合,该方法具体包括:获取第一待测组件,并确定第一待测组件中的待测GUI,该待测GUI携带未完成标志并且对应于包括多个测试控件的结构树;随后,遍历该结构树中每个测试控件直至满足结束条件;其中遍历包括通过筛选出的触发方式触发测试控件并根据触发所得的反馈对触发所采取的触发方式进行强化操作。本申请的实施通过设置每个回合随步数递增的手段,在初期的回合中可以探索到多个GUI从而实现遍历的广度,基于前期的探索很多GUI已经被标记为完成,因此在后期可以设置更多的步数去探索不易被发现的GUI,从而实现遍历所需的深度本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图形用户界面的测试方法,其特征在于,所述方法对应一个测试过程,所述测试过程包括多个回合,每个回合的步数依次递增,所述方法包括:在测试过程的当前回合,获取第一待测组件;确定第一待测组件中的待测图形用户界面GUI,其中,所述待测GUI携带未完成标志并对应于包括多个测试控件的结构树;按以下方式遍历所述结构树中每个测试控件,直至满足结束条件:通过筛选出的触发方式触发该测试控件,并根据触发所得的反馈对所述筛选出的触发方式进行强化操作。2.根据权利要求1所述的方法,其特征在于,每个触发方式包括权重值;所述通过筛选出的触发方式触发该测试控件,并根据触发所得的反馈对所述筛选出的触发方式进行强化操作,包括:从预设的多个触发方式中筛选出符合条件的触发方式,其中,所述符合条件的触发方式的权重值大于预设阈值;针对每个符合条件的触发方式进行以下操作:以该触发方式触发该测试控件,并得到反馈;根据所述反馈对该触发方式进行强化操作。3.根据权利要求1所述的方法,其特征在于,所述根据所述反馈对该触发方式进行强化操作,包括:若所述反馈为保持所述待测GUI,将该触发方式的权重值设置为预设的第一数值,其中,所述第一数值小于或者等于预设阈值;若所述反馈为得到新的待测GUI,增加该触发方式的权重值;若所述反馈为检测到状态循环,减少该触发方式的权重值。4.根据权利要求3所述的方法,其特征在于,所述测试过程包括用于存储历史待测组件的历史组件集,所述若所述反馈为得到新的待测GUI,增加该触发方式的权重值,包括:确定所述新的待测GUI对应的第二待测组件;若所述第二待测组件与所述第一待测组件相同,按照预设的第二数值增加该触发方式的权重值;若所述第二待测组件与所述第一待测组件不同,且为所述历史待测组件,按照预设的第三数值增加该触发方式的权重值;若所述第二待测组件与所述第一待测组件不同,且不为所述历史待测组件,按照预设的第四数值增加该触发方式的权重值;其中,所述第二数值小于所述第三数值,所述第三数值小于所述第四数值。5.根据权利要求4所述的方法,其特征在于,若所述当前回合已结束且所述测试过程未结束,所述方法还包括:基于所述第二待测组件进行下一回合的测试。6.根据权利要求1所述的方法,其特征在于,在遍历完所述结构树之后,所述方法还包括:若所述待测GUI对应于叶子节点,确定所述待测GUI的标志为完成,其中,所述叶子节点对应于没有可跳转GUI的GUI,所述可跳转GUI为根据所述结构树上的测试控件对应的触发...

【专利技术属性】
技术研发人员:林晓升
申请(专利权)人:广州虎牙科技有限公司
类型:发明
国别省市:

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

1