应用程序的测试方法、装置、计算机设备及存储介质与流程

文档序号:20917590发布日期:2020-05-29 13:43阅读:187来源:国知局
应用程序的测试方法、装置、计算机设备及存储介质与流程

本申请涉及软件测试技术领域,特别涉及一种应用程序的测试方法、装置、计算机设备及存储介质。



背景技术:

在应用程序开发领域中,为了使应用程序能够实现预期的效果,开发人员研发一种应用程序后,会对应用程序进行测试。

由于应用程序中控件的数量比较庞大,为了提高测试效率,测试设备可以对应用程序采取自动测试。例如,待测试的应用程序被打开后,测试设备可以获取到该应用程序的当前显示界面,测试设备对当前显示界面进行随机点击操作,如果点击到该当前显示界面上的控件,则应用程序可以切换至下一个显示界面。监督测试设备的测试人员再根据被点击到的控件的功能、当前显示界面以及由该控件切换的下一个显示界面,判断该控件对应的界面切换是否正确。

测试设备在对应用程序进行自动测试时,是在显示界面上进行随机点击,点击到显示界面上的控件的概率比较小且耗时较长,尤其是在显示界面上具有较少的控件的情况下,点击到显示界面上的控件的概率更小,导致测试设备对应用程序进行自动测试的效果较差。



技术实现要素:

本申请实施例提供了一种应用程序的测试方法、装置、计算机设备及存储介质,能够克服相关技术中的点击到显示界面上的控件的概率比较小且耗时较长而导致测试设备对应用程序进行自动测试的效果较差的问题。所述技术方案如下:

一方面,提供了一种应用程序的测试方法,所述方法包括:

获取所述应用程序的第i个显示界面,i为正整数;

识别出所述第i个显示界面中的至少一个控件;

在所述第i个显示界面的至少一个控件中,确定目标控件;

获取所述目标控件触发的第i+1个显示界面;

根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系,输出用于确定所述应用程序的测试结果的跳转关系网。

可选的,所述将所述第i个显示界面输入到控件识别模型,识别出所述第i个显示界面中的至少一个控件,包括:

将所述第i个显示界面输入到所述控件识别模型,识别出所述第i个显示界面中的至少一个控件的控件类型;

所述在所述第i个显示界面的至少一个控件中,确定目标控件,包括:

在所述第i个显示界面的至少一个控件中,根据所述控件的控件类型确定所述目标控件;

或,

在所述第i个显示界面的至少一个控件中,根据所述控件的历史点击次数、所述控件类型和随机选取方式中的至少一种确定所述目标控件。

可选的,所述在所述第i个显示界面的至少一个控件中,根据所述控件的控件类型确定所述目标控件,包括:

在所述第i个显示界面的至少一个控件中,选取所述控件类型为关闭的控件,作为所述目标控件;

或,

在所述第i个显示界面的至少一个控件中,选取所述控件类型为返回的控件,作为所述目标控件。

可选的,所述在所述第i个显示界面的至少一个控件中,根据所述控件的历史点击次数、所述控件类型和随机选取方式中的至少一种确定所述目标控件,包括:

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于目标数值,选取用于触发显示第i+1个显示界面的控件,作为所述目标控件,所述第i+1个显示界面中存在所述历史点击次数最小且所述历史点击次数小于目标数值的控件,所述目标数值为对所述应用程序的控件进行测试的轮数;

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于所述目标数值,且不存在用于触发显示所述第i+1个显示界面的控件,选取所述控件类型为关闭的控件,作为所述目标控件;

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于所述目标数值,且不存在用于触发显示所述第i+1个显示界面的控件,且不存在所述控件类型为关闭的控件,选取所述控件类型为返回的控件,作为所述目标控件;

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于所述目标数值,且不存在用于触发显示所述第i+1个显示界面的控件,不存在所述控件类型为关闭的控件,且不存在所述控件类型为返回的控件,随机选取一个控件作为所述目标控件。

可选的,所述获取所述应用程序的第i个显示界面,包括:

获取所述应用程序的累计历史点击次数,所述累积历史点击次数为所述应用程序的已点击的控件的历史点击次数之和;

响应于所述累计历史点击次数不大于次数阈值,获取所述应用程序的第i个显示界面。

另一方面,提供了一种应用程序的测试方法,所述方法包括:

第一设备向第二设备发送所述应用程序的第i个显示界面,i为正整数;

所述第二设备获取所述第i个显示界面,并向所述第一设备发送目标控件的控件位置,所述目标控件在所述第i个显示界面的至少一个控件中确定;

所述第一设备响应于接收到所述目标控件的控件位置,在所述第i个显示界面中所述目标控件对应的控件位置处,执行点击操作;

所述第一设备响应于检测到所述目标控件上触发的点击操作,向所述第二设备发送所述目标控件触发的第i+1个显示界面;

所述第二设备获取所述应用程序的第i+1个显示界面,输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

另一方面,提供了一种应用程序的测试方法,所述方法包括:

获取所述应用程序的第i个显示界面,i为正整数;

在所述第i个显示界面中目标控件对应的控件位置处,执行点击操作,所述目标控件在所述第i个显示界面的至少一个控件中确定;

获取所述目标控件触发的第i+1个显示界面;

输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

另一方面,提供了一种应用程序的测试装置,所述装置包括:

第一获取模块,用于获取所述应用程序的第i个显示界面,i为正整数;

识别模块,用于识别出所述第i个显示界面中的至少一个控件;

控件确定模块,用于在所述第i个显示界面的至少一个控件中,确定目标控件;

第二获取模块,用于获取所述目标控件触发的第i+1个显示界面;

输出模块,用于根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系,输出用于确定所述应用程序的测试结果的跳转关系网。

另一方面,提供了一种应用程序的测试系统,所述系统包括第一设备和第二设备,其中:

所述第一设备,用于向所述第二设备发送所述应用程序的第i个显示界面,i为正整数;

所述第二设备,用于获取所述第i个显示界面,并向所述第一设备发送目标控件的控件位置,所述目标控件在所述第i个显示界面的至少一个控件中确定;

所述第一设备,用于响应于接收到所述目标控件的控件位置,在所述第i个显示界面中所述目标控件对应的控件位置处,执行点击操作;

所述第一设备,用于响应于检测到所述目标控件上触发的点击操作,向所述第二设备发送所述目标控件触发的第i+1个显示界面;

所述第二设备,用于获取所述应用程序的第i+1个显示界面,输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

另一方面,提供了一种应用程序的测试装置,所述装置包括:

第一获取模块,用于获取所述应用程序的第i个显示界面,i为正整数;

执行点击模块,用于在所述第i个显示界面中目标控件对应的控件位置处,执行点击操作,所述目标控件在所述第i个显示界面的至少一个控件中确定;

第二获取模块,用于获取所述目标控件触发的第i+1个显示界面;

输出模块,用于输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如上述所述的应用程序的测试方法。

另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现上述所述的应用程序的测试方法。

在本申请实施例中,测试设备每获取一个显示界面,可以将该显示界面输入到控件识别模型中,得到显示界面中各个控件的控件位置,再从这些控件中选取目标控件,作为下一个点击的控件。然后,测试设备可以输出跳转关系网,其中,跳转关系网是根据目标控件、目标控件所在的显示界面以及由目标控件触发的显示界面三者之间的界面跳转关系确定的关系网。这样,测试设备或者监督检测设备的测试人员可以根据跳转关系网,判断跳转关系网中的各个控件所对应的界面跳转关系是否正确。可见,测试设备通过控件识别模型对显示界面中的控件进行识别,识别出各个控件在显示界面中的位置之后,可以在这些控件中,确定待点击的目标控件。进而可以提高点击到显示界面上的控件的概率,缩短寻找控件的时间,使得测试设备可以遍历应用程序中尽可能多的控件,从而可以提升测试设备对应用程序进行自动测试的效果。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的一种应用程序的测试方法的场景示意图;

图2是本申请实施例提供的一种应用程序的测试方法的流程示意图;

图3是本申请实施例提供的一种应用程序的测试方法的流程示意图;

图4是本申请实施例提供的一种显示界面的示意图;

图5是本申请实施例提供的一种跳转关系网的示意图;

图6是本申请实施例提供的一种控件识别模型的训练流程示意图;

图7是本申请实施例提供的一种样本显示界面的示意图;

图8是本申请实施例提供的一种样本显示界面的示意图;

图9是本申请实施例提供的一种计算控件相似度的流程示意图;

图10是本申请实施例提供的一种控件图像与区域图像的对应关系的示意图;

图11是本申请实施例提供的一种跳转关系网的示意图;

图12是本申请实施例提供的一种对跳转关系网进行更新的示意图;

图13是本申请实施例提供的一种应用程序的测试方法的流程示意图;

图14是本申请实施例提供的一种应用程序的测试方法的流程示意图;

图15是本申请实施例提供的一种应用程序的测试装置的结构示意图;

图16是本申请实施例提供的一种应用程序的测试装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

本申请实施例提供的应用程序的测试方案中所使用到的控件识别模型涉及人工智能的机器学习等技术,具体通过如下实施例进行说明。

其中,机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

本申请实施例提供的应用程序的测试方法,可以测试应用程序中的控件被点击时,是否进行正常的界面跳转。

该方法可以由测试设备执行,也可以由终端和测试设备交互完成。例如,可以由测试设备来执行,测试设备可以是计算机设备,该测试设备上安装待测试的应用程序以及用于测试的程序。其中,由测试设备完成测试的过程可以如下:

首先,测试设备可以获取待测试的应用程序的第i个显示界面,其中,i为正整数。然后,将第i个显示界面输入到控件识别模型中,识别出第i个显示界面中至少一个控件。之后,测试设备可以在上述至少一个控件中,确定目标控件,作为下一个待点击的控件。再之后,测试设备可以通过点击目标控件,来获取由目标控件触发的第i+1个显示界面。最后,测试设备可以根据第i个显示界面、目标控件以及第i+1个显示界面之间的界面跳转关系,输出用于确定应用程序的测试结果的跳转关系网。

该方法也可以由终端和测试设备交互完成,如图1所示,是由终端和测试设备交互完成测试的场景示意图。其中,终端可以是移动终端,如手机和平板电脑等,测试设备可以是计算机设备。终端上安装待测试的应用程序,测试设备上安装用于测试的程序,终端和测试设备之间具有通信连接。其中,如图2所示,由终端110和测试设备120交互完成测试的过程可以如下:

在步骤201中,终端可以向测试设备发送待测试的应用程序的第i个显示界面,i为正整数。在步骤202中,测试设备获取到第i个显示界面之后,可以将第i个显示界面输入控件识别模型中,识别出第i个显示界面中至少一个控件,并从至少一个控件中,确定目标控件,作为下一个待点击的控件。在步骤203中,测试设备将目标控件的控件位置发送给终端。在步骤204中,终端接收到目标控件的控件位置后,可以在第i个显示界面中目标控件对应的控件位置处,执行点击操作。在步骤205中,终端对目标控件执行点击操作之后,可以向测试设备发送目标控件触发的第i+1个显示界面。在步骤206中,测试设备接收到第i+1个显示界面后,可以根据第i个显示界面、目标控件以及第i+1个显示界面之间的界面跳转关系,生成用于确定应用程序的测试结果的跳转关系网。之后,在步骤207中,测试设备可以输出跳转关系网。

由上述可知,无论是由测试设备完成测试,还是由终端和测试设备交互完成测试,测试设备都可以向外输出跳转关系网。监督测试设备的测试人员可以根据跳转关系网,判断跳转关系网中每一个控件、该控件所在的显示界面以及由该控件触发的显示界面之间的界面跳转关系是否正确。

以上是本实施例的场景介绍,下面将详细介绍对待测试应用程序进行测试的过程。

图3本公开实施例提供的一种对应用程序进行测试的方法中测试设备侧的流程示意图,如图3所示,该方法的处理流程可以包括如下的步骤:

在步骤301中,测试设备获取应用程序的第i个显示界面。

其中,i为正整数,上述应用程序为待测试的应用程序,例如,可以是多媒体应用程序、游戏应用程序、社交应用程序等,本实施例对应用程序的具体类型不做具体限定。

其中,显示界面也可以称为ui(userinterface,用户界面)界面,可以是应用程序的登录界面,也可以是应用程序的首页显示界面,还可以是应用程序的设置界面等。如图4所示即为一种游戏应用程序首页的显示界面的示意图。

在一个示例中,测试设备可以通过终端获取第i个显示界面,例如,安装有待测试的应用程序的终端可以向测试设备发送第i个显示界面。测试设备还可以通过点击应用程序的控件获取第i个显示界面。例如,测试设备点击第i-1个显示界面上的控件,可以获取由该控件触发的第i个显示界面。

其中,测试设备通过终端获取第i个显示界面的情况下,由于终端的分辨率与测试设备的分辨率有可能不相同,相应的,测试设备获取的第i个显示界面是经过分辨率调整后的显示界面,例如,测试设备可以将获取的显示界面的分辨率调整为适应于测试设备的目标分辨率。

在步骤302中,测试设备识别出第i个显示界面中的至少一个控件。

其中,控件是显示界面中能够触发界面跳转的部件,例如,可以是按钮、操作手势、动作表情等。

在一个示例中,测试设备可以通过训练好的控件识别模型识别显示界面中的控件,例如,测试设备可以将第i个显示界面输入到控件识别模型,识别出第i个显示界面中的至少一个控件。其中,控件识别模型可以识别出第i个显示界面中的至少一个控件,也即是,控件识别模型可以将第i个显示界面中的控件标注出来,相应的,控件识别模型可以识别出控件在第i个显示界面中的控件位置。

其中,控件位置可以是控件的中心点在第i个显示界面中坐标位置。

在步骤303中,测试设备在第i个显示界面的至少一个控件中,确定目标控件。

在一个示例中,测试设备将第i个显示界面输入到控件识别模型中,可以识别出第i个显示界面中至少一个控件,也即是,可以识别出至少一个控件的控件位置。测试设备得到第i个显示界面中至少一个控件的控件位置后,可以在至少一个控件中,选取一个控件,作为目标控件,该目标控件即为下一个待点击的控件。

其中,在第i个显示界面中至少一个控件中选取目标控件的方式具有多种,例如,可以根据至少一个控件中各个控件的历史点击次数选取,也可以根据至少一个控件中各个控件的空间类型选取。下文将会对目标控件的选取进行详细介绍。

在步骤304中,测试设备获取目标控件触发的第i+1个显示界面。

在一个示例中,同获取第i个显示界面类似,测试设备可以通过终端获取第i+1个显示界面。例如,测试设备确定目标控件之后,可以将目标控件在第i个显示界面上的控件位置发送给终端,终端接收到目标控件的控件位置之后,可以在第i个显示界面上对应目标控件的控件位置处执行点击操作,触发终端显示由目标控件触发的第i+1个显示界面。之后,终端可以将第i+1个显示界面发送给测试设备,进而测试设备通过终端获取目标控件触发的第i+1个显示界面。

其中,测试设备将目标控件在第i个显示界面上的控件位置发送给终端,如上述所述,终端的分辨率和测试设备的分辨率不相同,此处的控件位置可以是测试设备通过测试设备的分辨率与终端的分辨率,转换成适应于终端的分辨率后的控件位置,终端接收到目标控件的控件位置之后,无需进行转换,可以基于目标控件的控件位置执行点击操作。或者,上述控件位置也可以是适应于测试设备的分辨率的位置,测试设备将目标控件的控件位置发送给终端后,终端再基于测试设备的分辨率和终端的分辨率之间的转换关系,进行转换,转换成适应于终端的分辨率之后,再基于目标控件的转换后的控件位置,执行点击操作。

又例如,测试设备也可以通过目标控件触发第i+1个显示界面,测试设备可以在第i个显示界面上对应目标控件的控件位置处,执行点击操作,触发测试设备上的显示界面可以由第i个显示界面跳转至第i+1个显示界面,进而获取到目标控件触发的第i+1个显示界面。

在步骤305中,测试设备根据第i个显示界面、目标控件以及第i+1个显示界面之间的界面跳转关系,输出用于确定应用程序的测试结果的跳转关系网。

其中,跳转关系网由多个界面跳转关系组成的界面网,每个界面跳转关系由两个显示界面以及触发这两个显示界面进行跳转的控件信息组成,控件信息可以是控件位置。

在一个示例中,如图5所示,跳转关系网的顶点为显示界面,位于两个显示界面之间的箭头表示这两个显示界面之间的跳转关系,其中,每一个箭头中还携带有生成该箭头的控件的控件信息。如图5所示,显示界面1和显示界面2之间由显示界面1指向显示界面2的箭头,可以表示点击显示界面1上的某一个控件时,显示界面可以由显示界面1跳转至显示界面2,显示界面1和显示界面2之间由显示界面2指向显示界面1的箭头,可以表示点击显示界面2上的某一个控件时,显示界面可以由显示界面2跳转至显示界面1。

其中,测试设备输出跳转关系网之后,可以通过多种方式判断跳转关系网中每个控件对应的界面跳转是否正确。

例如,一种判断控件对应的界面跳转关系是否正确的方式可以是,测试设备可以输出测试结果,如测试设备还可以获取参考的跳转关系网,其中,参考的跳转关系网是开发该应用程序时生成的跳转关系网。然后对比参考的跳转关系网和输出的跳转关系网,再输出应用程序的测试结果。其中,测试结果中可以包括控件的控件信息和界面跳转结果,界面跳转结果可以包括正确跳转和错误跳转。如果某一个控件对应的界面跳转关系在参考的跳转关系网和在输出的跳转关系网中相同,则该控件对应的界面跳转结果为正确跳转,而如果该控件对应的界面跳转关系在参考的跳转关系网和在输出的跳转关系网中不相同,则该控件对应的界面跳转结果为错误跳转。

又例如,另一种判断控件对应的界面跳转关系是否正确的方式可以是,监督测试设备的测试人员具有应用程序的使用说明,该使用说明中具有各个控件对应的界面跳转关系。测试设备输出跳转关系网之后,测试人员可以通过比对使用说明中控件的界面跳转关系与跳转关系网中该控件的界面跳转关系,判断该控件在测试中是否进行正确的界面跳转。

又例如,另一种判断控件对应的界面跳转关系是否正确的方式可以是,测试设备在对应用程序进行测试的过程,监督测试设备的测试人员可以根据控件的功能以及经验,判断跳转关系网中该控件对应的界面跳转关系是否正确。

另外,测试设备在对应用程序进行测试的过程中,监督测试设备的测试人员还可以发现哪些控件,在被执行点击操作后,测试设备出现崩溃的情况,从而可以基于该控件进行问题排查,及时发现存在问题的控件。

基于上述所述,测试设备每获取一个显示界面,可以将该显示界面输入到控件识别模型中,识别出该显示界面中至少一个控件的控件位置,从这些控件中选取目标控件,然后获取由该目标控件触发的显示界面,之后根据目标控件、目标控件所在的显示界面以及由目标控件触发的显示界面,确定跳转关系网。得到跳转关系网后,测试设备或者监督检测设备的测试人员可以确定跳转关系网中控件所对应的界面跳转关系是否正确。

由此可见,测试设备通过控件识别模型对显示界面中的控件进行识别,识别出各个控件在显示界面中的位置之后,可以在这些控件中,确定待点击的目标控件。由于目标控件在显示界面中的位置已经确定,故无需通过随机点击的方式操控目标控件,而是直接在显示界面中目标控件所对应的位置处执行点击操作即可,进而可以提高点击到显示界面上的控件的概率,缩短寻找控件的时间,使得测试设备可以遍历应用程序中尽可能多的控件,甚至可以使测试设备可以遍历应用程序的所有的控件,进而可以提升测试设备对应用程序进行自动测试的效果。

而且,由于该测试设备可以向外输出跳转关系网,这样测试设备在对应用程序进行测试的过程中,无需测试人员在测试设备傍边持续现场监督,测试人员只需要从测试设备中调取存储的跳转关系网,通过查看跳转关系网即可判断应用程序中的控件是否具有正确的界面跳转关系。进而可以提高测试人员的工作效率,减少测试过程中的人力成本。

其中,测试设备可以通过多种方式判断是否停止对应用程序进行测试,例如,测试设备可以根据获取到的显示界面的数量,结束对应用程序进行测试,相应的可以是,测试设备检测到i不大于预设数值时,获取应用程序的第i个显示界面,其中,预设数值为获取显示界面的上限数量。例如,预设数值可以是500,当测试设备检测到i小于或者等于500时,获取应用程序的第i个显示界面。

其中,显示界面的上限数量可以根据具体的应用程序而定,对于具有较多显示界面的应用程序,上限数量可以比较大,而对于具有较少显示界面的应用程序,上限数量可以比较小,测试人员可以根据待测试的应用程序的实际情况灵活设定。

又例如,测试设备可以根据应用程序中控件的历史点击次数,结束对应用程序进行测试,相应的可以是,测试设备在获取第i个显示界面之前,先获取应用程序的累计历史点击次数;当测试设备检测到累计历史点击次数不大于次数阈值时,获取应用程序的第i个显示界面。

其中,累积历史点击次数为应用程序的已点击的控件的历史点击次数之和,控件的历史点击次数,是在对应用程序进行测试过程,控件被点击的次数。

其中,次数阈值是对应用程序执行点击操作的上限次数,该次数阈值根据具体的应用程序而定,对于具有较多显示界面的应用程序,该次数阈值可以比较大,而对于具有较少显示界面的应用程序,该次数阈值可以比较小,测试人员可以根据待测试的应用程序的实际情况灵活设定。

例如,测试设备在对应用程序进行测试的过程中,每点击一个控件,可以记录本次点击的控件对应的控件位置以及该控件对应的历史点击次数,还可以将累计历史点击次数在原来的基础上累加1。如果检测到累计历史点击次数不大于次数阈值,则继续按照上述方式对应用程序的控件执行测试过程。

其中,控件识别模型是根据人工智能中的机器学习技术得到,控件识别模型的训练过程可以按照如图6所示的流程执行:

其中,控件识别模型的训练可以由测试设备来执行,也可以由其它的设备来执行,本实施例对此不做限定,可以以测试设备来执行进行示例。

其中,控件识别模型可以选择yolov3(youonlylookonce:unified,real-timeobjectdetection,一阶段统一实时目标检测)、fasterr-cnn(fastregionconvolutionalneuralnetwork,快速区域卷积神经网络)和refinenet(提炼网络)等检测速度快并且准确度高的目标检测模型。

在步骤601中,获取训练样本。

其中,训练样本中可以包括样本显示界面和该样本显示界面的样本控件信息。

在一个示例中,训练样本的数量可以是多个,每一个训练样本均包括样本显示界面和该样本显示界面的样本控件信息。其中,样本控件信息可以是样本控件位置,也可以是样本控件位置和样本控件类型,样本控件类型为控件按照所执行的功能进行划分的类别,例如,可以包括取消、关闭、确定、返回、开始、菜单和其他等,其中,其它可以是用于调整音量的控件,也可以是用于进行评论和回复的控件等。

其中,获取训练样本的过程可以是,技术人员每获取一个训练样本的样本显示界面,可以在该样本显示界面上将控件信息标注出来作为该样本控件信息,例如,可以将该样本显示界面中的控件位置和空间类型标注出来,作为该样本显示界面的样本控件信息。

例如,如图7所示是一张用于设置的样本显示界面,其中,样本显示界面中关闭按钮、取消按钮和确定按钮均为控件,虚线框所框住的位置即为控件对应的控件位置,关闭、取消和确定即为相对应的控件类型。如图8所示,是一张样本显示界面,图中虚线框框住的位置即为控件所对应的控件位置,每个虚线框还对应有控件的控件类型。

在一个示例中,为了减少样本显示界面的分辨率不同,而影响到识别结果的准确性,相应的,训练样本中可以包括多个显示内容相同且分辨率不相同的样本显示界面。

例如,两个样本显示界面中的显示内容相同,但是分辨率具有比例关系,实现分辨率的长宽比变换。如样本显示界面1与样本显示界面2的显示内容相同,但是样本显示界面1的分辨率为a×b,样本显示界面2的分辨率为m×(a×b),其中,a、b和m均不为0的正数,a可以为长度方向上的像素点数,b可以为宽度方向上的像素点数,m可以为不等于1的缩放比例。

例如,训练样本中可以包括显示内容相同,但是分辨率分别为1280×720和640×360的两张样本显示界面。

又例如,两个样本显示界面中的显示内容相同,但是长度方向的像素点数不相等,或者宽度方向上的像素点数不相等。如样本显示界面3的分辨率为c×d,样本显示界面4的分辨率为c×e,样本显示界面5的分辨率为f×d,其中,c、d、e和f均为不为0的正数,c和f可以为长度方向上的像素点数,d和e可以为宽度方向上的像素点数。

例如,训练样本中可以包括显示内容相同,但是分辨率分别为1280×720、1280×640和1280×606的三张样本显示界面。

这样,使用不同分辨率的样本显示界面对待训练的控件识别模型进行训练,使得训练后的控件识别模型能够识别不同分辨率下的显示界面,避免因为分辨率的不同而导致识别结果不准确,进而可以提高控件识别模型的识别率。

在步骤602中,将训练样本的样本显示界面输入到待训练的控件识别模型,得到训练样本的测试控件信息。

在一个示例中,测试设备获取多个训练样本之后,可以将每个训练样本的样本显示界面输入到待训练的控件识别模型,待训练的控件识别模型可以输出该训练样本的测试控件信息,其中,测试控件信息是与样本控件信息相对应的信息。

在步骤603中,根据测试控件信息和样本控件信息,确定训练样本对应的损失值。

在一个示例中,测试设备得到每个训练样本的测试控件信息之后,可以使用损失函数,得到测试控件信息和样本控件信息之间的损失值,并将该损失值确定为该训练样本的损失值。

在步骤604中,使用损失值对待训练的控件识别模型进行误差反向传播训练,得到控件识别模型。

在一个示例中,误差反向传播是与正向传播相反的一个过程,将样本显示界面通过输入层输入,通过卷积层和池化层等各层传播至输出层,输出测试控件信息的过程为正向传播。而将测试控件信息与样本控件信息之间的损失值由输出层反向传播至输入层的过程可以称为误差反向转播。误差反向转播过程中,可以将损失值分摊给输出层至输入层之间的各层中,从而获取各层的损失值信号,该损失值信号可以作为对各层的参数进行修改调整的依据。这样,对多个训练样本进行多次正向传播和误差反向传播后,当损失值满足条件时,或者当训练次数达到阈值时,可以得到控件识别模型。

其中,测试设备在第i个显示界面的至少一个控件中,确定目标控件的过程可以如下:

测试设备可以在第i个显示界面的至少一个控件中,根据控件的历史点击次数确定目标控件。或者,测试设备可以在第i个显示界面的至少一个控件中,根据控件的控件类型确定目标控件。或者,测试设备可以在第i个显示界面的至少一个控件中,根据随机选取方式确定目标控件。

又或者,测试设备可以在第i个显示界面的至少一个控件中,根据控件的历史点击次数、控件类型和随机选取方式中的至少一种确定目标控件。例如,如上述所述,根据控件的历史点击次数、控件类型和随机选取方式中的一种确定目标控件。例如,可以根据控件的历史点击次数和控件类型确定目标控件。又例如,可以根据历史点击次数和随机选取方式确定目标控件。又例如,可以根据控件的控件类型和随机选取方式确定目标控件。又例如,可以根据控件的历史点击次数、控件类型和随机选取方式确定目标控件。

其中,控件类型是通过控件识别模型识别出的,例如,控件识别模型不仅可以识别出控件的控件位置还可以识别出控件的空间类型,相应的,将第i个显示界面输入到所述控件识别模型,识别出第i个显示界面中的至少一个控件的控件位置和控件类型。

如上述所述,控件类型可以包括取消、关闭、确定、返回、开始、菜单和其他等。

其中,测试设备在第i个显示界面的至少一个控件中,根据控件的历史点击次数确定目标控件,可以是测试设备在第i个显示界面的至少一个控件中,选取历史点击次数最小且历史点击次数小于目标数值的控件作为目标控件,其中,目标数值为对应用程序的控件进行测试的轮数。

例如,对于具有大量显示界面的应用程序,测试设备可以进行一轮测试,目标数值可以为1,相应的,历史点击次数最小且历史点击次数小于目标数值的控件,也即是,第i个显示界面的至少一个控件中未被点击过的控件,将该控件作为目标控件。

其中,如果第i个显示界面中存在多个未被点击过的控件,则可以在这多个未被点击过的控件中,通过随机选取方式,选取一个控件作为目标控件。

又例如,对于显示界面不太多的应用程序,测试设备可以进行多轮测试,相应的,目标数值可以大于1,例如,目标数值为2,也即是,测试设备在对应用程序进行第2轮测试的过程中,历史点击次数最小且历史点击次数小于目标数值的控件,也即是,历史点击次数为1的控件。

其中,测试设备在第i个显示界面的至少一个控件中,根据控件的控件类型确定目标控件,也即是,测试设备在第i个显示界面的至少一个控件中,选取控件类型为关闭的控件,作为目标控件。或,在第i个显示界面的至少一个控件中,选取控件类型为返回的控件,作为目标控件。

其中,测试设备在第i个显示界面的至少一个控件中,根据控件的历史点击次数、控件类型和随机选取方式确定目标控件的过程可以是:

第一步,测试设备先确定第i个显示界面的至少一个控件中,是否存在历史点击次数最小且历史点击次数小于目标数值的控件,如果存在,则将历史点击次数最小且历史点击次数小于目标数值的控件作为目标控件。如果不存在,也即是,第i个显示界面的所有的控件的历史点击次数均为目标数值,则进行第二步。

例如,目标数值为1的情况下,测试设备首选判断第i个显示界面的至少一个控件中,是否存在未被点击的控件,如果存在未被点击的控件,则将未被点击的控件作为目标控件。而如果第i个显示界面的至少一个控件中,所有的控件均被点击过,也即是,第i个显示界面的所有的控件的历史点击次数均为1,则进行第二步。

其中,如果第i个显示界面中存在多个历史点击次数最小且历史点击次数小于目标数值的控件,则可以在这些控件中随机选取一个作为目标控件。

第二步,在第i个显示界面的至少一个控件中,响应于至少一个控件的历史点击次数均等于目标数值,选取用于触发显示第i+1个显示界面的控件,作为目标控件,其中,第i+1个显示界面中存在历史点击次数最小且历史点击次数小于目标数值的控件。

其中,至少一个控件的历史点击次数均等于目标数值,也即是,在第目标数值轮测试中,第i个显示界面中所有控件均被点击过。相应的,由于第i个显示界面中各个控件均被点击过,则测试设备可以获取各个控件所触发的显示界面,测试设备在这些显示界面中判断是否存在历史点击次数最小且历史点击次数小于目标数值的控件。如果存在,则将用于触发显示第i+1个显示界面的控件,作为目标控件,如果不存在,则进行第三步,其中,第i+1个显示界面中存在历史点击次数最小且历史点击次数小于目标数值的控件。

例如,第i个显示界面中具有第一控件和第二控件两个控件,如果第一控件触发的显示界面中存在历史点击次数最小且历史点击次数小于目标数值的控件,则可以将第i个显示界面中的第一控件作为目标控件。而如果第一控件触发显示的显示界面和第二控件触发显示的显示界面中均不存在历史点击次数最小且历史点击次数小于目标数值的控件,则进行第三步。

其中,如果第一控件触发显示的显示界面和第二控件触发显示的显示界面中均存在历史点击次数最小且历史点击次数小于目标数值的控件,则可以在第一控件和第二控件中随机选取一个作为目标控件。

第三步,在第i个显示界面的至少一个控件中,响应于至少一个控件的历史点击次数均等于目标数值,且不存在用于触发显示第i+1个显示界面的控件,选取控件类型为关闭的控件,作为目标控件,其中,第i+1个显示界面中存在历史点击次数最小且历史点击次数小于目标数值的控件。而如果第i个显示界面中控件类型均不为关闭,则进行第四步。

例如,以目标数值为1,第i个显示界面中包括第一控件和第二控件进行示例,第i个显示界面中第一控件和第二控件均被点击过,且第一控件触发显示的显示界面和第二控件触发显示的显示界面中的控件也均被点击过,则可以将控件类型为关闭的控件,作为目标控件。而如果第一控件和第二控件的控件类型均不为关闭,则进行第四步。

第四步,在第i个显示界面的至少一个控件中,响应于至少一个控件的历史点击次数均等于目标数值,不存在用于触发显示第i+1个显示界面的控件,且不存在控件类型为关闭的控件,选取控件类型为返回的控件,作为目标控件。而如果第i个显示界面中控件类型均不为关闭,也均不为返回,则进行第五步。

例如,还是以目标数值为1,第i个显示界面中包括第一控件和第二控件进行示例,第i个显示界面中第一控件和第二控件均被点击过,且第一控件触发显示的显示界面和第二控件触发显示的显示界面中的控件也均被点击过,而且,第一控件和第二控件的控件类型均不为关闭,则可以将控件类型为返回的控件,作为目标控件。而如果第一控件和第二控件的控件类型均不为关闭,也均不为返回,则进行第五步。

第五步,在第i个显示界面的至少一个控件中,响应于至少一个控件的历史点击次数均等于目标数值,不存在用于触发显示第i+1个显示界面的控件,不存在控件类型为关闭的控件,且不存在控件类型为返回的控件,随机选取一个控件,作为目标控件。

例如,还是以目标数值为1,第i个显示界面中包括第一控件和第二控件进行示例,第i个显示界面中第一控件和第二控件均被点击过,且第一控件触发显示的显示界面和第二控件触发显示的显示界面中的控件也均被点击过,而且,第一控件和第二控件的控件类型均不为关闭,且均不为返回,则可以在第一控件和第二控件中随机选取一个控件,作为目标控件。

以上是测试设备在第i个显示界面的至少一个控件中,确定目标控件的过程。

由上述可知,测试设备可以输出跳转关系网,其中,跳转关系网的生成过程可以如下:

其中,跳转关系网的生成也可以称为跳转关系网的更新过程。

当i等于1时,也即是,测试设备获取的第i个显示界面为第1个显示界面,这种情况下,跳转关系网是根据第1个显示界面、目标控件以及由目标控件触发显示的第2个显示界面之间的界面跳转关系生成,作为初始的跳转关系网。

而当i大于1时,响应于第i个显示界面、目标控件以及第i+1个显示界面之间的界面跳转关系不存在于跳转关系网,根据第i个显示界面、目标控件和第i+1个显示界面之间的界面跳转关系,更新跳转关系网。

也即是,测试设备获取第i+1个显示界面之后,可以根据第i个显示界面、目标控件以及第i+1个显示界面之间的界面跳转关系,判断该界面跳转关系是否在存于当前的跳转关系网中,如果不存在,则可以对当前的跳转关系网进行更新,得到更新后的跳转关系网。而如果上述界面跳转关系存在于当前的跳转关系网中,则不对当前的跳转关系网进行更新。

其中,判断第i个显示界面、目标控件以及第i+1个显示界面之间的界面跳转关系是否存在于当前的跳转关系网,也即是,判断第i+1个显示界面是否存在于当前的跳转关系网中,判断第i个显示界面和第i+1个显示界面之间是否具有界面跳转。

在一个示例中,测试设备可以在跳转关系网中判断是否存在与第i+1个显示界面相同的显示界面,如果不存在,则第i+1个显示界面不存在于跳转关系网中,而如果存在,则第i+1个显示界面存在于跳转关系网中。

在另一个示例中,为了提高判断速度,测试设备可以先判断跳转关系网中是否存在与第i+1个显示界面相似的候选显示界面,然后再在候选显示界面中判断是否存在与第i+1个显示界面相同的显示界面。

例如,如果跳转关系网中不存在与第i+1个显示界面相似的显示界面,则第i+1个显示界面不存在于跳转关系网中。

而如果跳转关系网中存在与第i+1个显示界面相似的显示界面,则第i+1个显示界面有可能存在于跳转关系网中,可以将与第i+1个显示界面相似的显示界面称为候选显示界面。然后,测试设备再判断候选显示界面中是否存在与第i+1个显示界面相同的显示界面,如果候选显示界面中不存在与第i+1个显示界面相同的显示界面,则第i+1个显示界面不存在于跳转关系网中。而如果候选显示界面中存在与第i+1个显示界面相同的显示界面,则第i+1个显示界面存在于跳转关系网中。

基于上述先判断相似性后判断相同性的原则,测试设备可以通过第i+1个显示界面分别与跳转关系网中各个显示界面的整体相似度,判断跳转关系网中是否存在与第i+1个显示界面相似的候选显示界面。

其中,整体相似度也可以称为全局相似度,也就是从两个显示界面的整体上或者全局上,判断这两个显示界面是否相似,或者是否接近。

例如,响应于整体相似度均小于第一阈值,确定第i+1个显示界面不存在于跳转关系网中,则第i个显示界面、目标控件和所述第i+1个显示界面之间的界面跳转关系也不存在于跳转关系网中。

也即是,如果跳转关系网中各个显示界面分别与第i+1个显示界面之间的整体相似度均小于第一阈值,则第i+1个显示界面不存在于跳转关系网中,那么相应的,第i个显示界面、目标控件和所述第i+1个显示界面之间的界面跳转关系也不存在于跳转关系网中。

其中,测试设备计算整体相似度的方式具有多种,例如,一种计算整体相似度的方式可以是,测试设备可以根据第i+1个显示界面和跳转关系网中每个显示界面的显示内容,计算整体相似度,如果所有的整体相似度均小于第一阈值,则第i+1个显示界面不存在跳转关系网中。

又例如,另一种计算整体相似度的方式也可以是,测试设备可以根据第i+1个显示界面和跳转关系网中每个显示界面的控件布局,计算整体相似度,如果所有的整体相似度均小于第一阈值,则第i+1个显示界面不存在跳转关系网中。

其中,控件布局也即是显示界面中的控件在显示界面中的分布情况,根据控件布局计算整体相似度的方式可以是:

首先,测试设备可以对第i+1个显示界面以及跳转关系网中各个显示界面进行像素值调整,将第i+1个显示界面以及各个显示界面中,控件位置处的像素点的像素值调整为255,将除控件位置以外的其它位置处的像素点的像素值调整为0,得到第i+1个显示界面以及各个显示界面对应的黑白图像。

然后,测试设备对经过像素值调整后的第i+1个显示界面以及各个显示界面进行相似度计算,得到根据控件布局的整体相似度。

又例如,另一种计算整体相似度的方式也可以是,根据第i+1个显示界面和跳转关系网中每个显示界面的显示内容和控件布局,计算整体相似度。

作为示例,首先,测试设备可以根据第i+1个显示界面和第一显示界面的显示内容,计算出第i+1个显示界面和第一显示界面之间的第一整体相似度,其中第一显示界面是跳转关系网中任意一个显示界面。然后,测试设备可以根据第i+1个显示界面与第一显示界面的控件布局,计算出第i+1个显示界面与第一显示界面之间的第二整体相似度。最后,测试设备可以将第一整体相似度与第二整体相似度的平均值,作为第i+1个显示界面与第一显示界面之间的整体相似度。或者,测试设备根据显示内容的权重系数a、控件布局的权重系数b、第一整体相似度s1和第二整体相似度s2,通过公式a×s1+b×s2,确定第i+1个显示界面与第一显示界面之间的整体相似度。

其中,本实施例对计算第i+1个显示界面与跳转关系网中各个显示界面之间的整体相似度的方式不做限定,以上仅作为一种示例,不做具体限定。

其中,可以使用相关系数匹配的图像相似度计算方法,计算整体相似度;也可以使用余弦匹配的图像相似度计算方法,计算整体相似度;还可以使用标准差匹配的图像相似度计算方法,计算整体相似度;还可以使用梯度匹配的图像相似度计算方法,计算整体相似度等。

测试设备计算出第i+1个显示界面与跳转关系网中各个显示界面之间的整体相似度之后,如果存在不小于第一阈值的整体相似度,则可以将整体相似度不小于第一阈值的至少一个显示界面,确定为与第i+1个显示界面相似的候选显示界面,之后,再判断候选显示界面中是否存在与第i+1个显示界面相同的显示界面。

在一个示例中,测试设备可以通过控件相似度判断候选显示界面中是否存在与第i+1个显示界面相同的显示界面。例如,测试设备根据第i+1个显示界面中每个控件的控件图像和候选显示界面中每个控件的控件图像,计算第i+1个显示界面与候选显示界面的控件相似度;响应于控件相似度小于第二阈值,确定第i+1个显示界面不存在于跳转关系网中,则第i个显示界面、目标控件和第i+1个显示界面之间的界面跳转关系也不存在于所述跳转关系网中。

其中,控件图像也即是显示界面中控件所在的控件位置所对应的图像。

在一个示例中,控件相似度可以是根据控件图像计算出的相似度,可以包括第一相似度和第二相似度,第一相似度是根据第i+1个显示界面上的控件图像和候选显示界面上的区域图像所计算,第二相似度是根据候选显示界面上的控件图像和第i+1个显示界面上的区域图像所计算。相应的,控件相似度小于第二阈值也即是,第一相似度小于第二阈值,且第二相似度小于第二阈值。其中,第一相似度和第二相似度的计算过程可以按照如图9所示的流程执行:

其中,为便于描述可以将候选显示界面中任一个候选显示界面记为目标候选显示界面。

在步骤901中,测试设备根据第i+1个显示界面中每个控件的控件位置,在目标候选显示界面中,确定与第i+1个显示界面中每个控件位置相对应的位置处的区域图像。

在一个示例中,可以参考图10所示,可以以第i+1个显示界面中具有第一控件和第二控件进行示例,测试设备确定第一控件对应的第一控件图像和第二控件对应的第二控件图像之后,可以根据第一控件图像的尺寸以及第一控件图像的中心点在第i+1个显示界面上的位置,在目标候选显示界面中确定与第一控件图像相对应的第一区域图像。同样测试设备也可以在目标候选显示界面中确定与第二控件图像相对应的第二区域图像。

例如,如果第i+1个显示界面与目标候选显示界面的尺寸相同,第一控件图像的中心点在第i+1个显示界面中的控件位置为p×q,其中,p为第一控件图像的中心点到第i+1个显示界面的长边的距离值,q为第一控件图像的中心点到第i+1个显示界面的短边的距离值。那么,测试设备可以在目标候选显示界面中以p×q确定的位置为中心点,确定与第一控件图像的尺寸相同的第一区域图像,作为与第一控件相对应的区域图像。其中,测试设备再通过上述同样的方式,在目标候选显示界面中确定与第二控件相对应的区域图像。

在步骤902中,测试设备根据第i+1个显示界面的每个控件图像和目标候选显示界面的对应区域图像,计算第一相似度。

在一个示例中,测试设备得到第i+1个显示界面中第一控件对应的控件图像和第二控件对应的控件图像,以及目标候选显示界面中与第一控件相对应的区域图像,与第二控件相对应的区域图像之后,可以根据第一控件对应的控件图像和区域图像计算一个第一相似度,根据第二控件对应的控件图像和区域图像计算一个第一相似度。

其中,第一相似度的数量与第i+1个显示界面中控件的数量相关,例如,第i+1个显示界面中具有一个控件,则测试设备可以确定出一个第一相似度,又例如,第i+1个显示界面中具有两个控件,则测试设备可以确定出两个第一相似度。

其中,目标候选显示界面中与第i+1个显示界面的控件位置处相对应的位置处可能具有控件,也可能不具有控件。如果第一相似度不小于第二阈值,则具有控件,且具有与第i+1个显示界面的控件相同或接近相同的控件。如果第一相似度小于第二阈值,则目标候选显示界面中与第i+1个显示界面的控件位置处相对应的位置处不具有控件,或者,具有与第i+1个显示界面的控件不相同的控件。

在步骤903中,测试设备根据目标候选显示界面中每个控件的控件位置,在第i+1个显示界面中,确定与目标候选显示界面中每个控件位置相对应的位置处的区域图像。

其中,在第i+1个显示界面中,确定与目标候选显示界面中每个控件位置相对应的位置处的区域图像的过程,同上述步骤901中,在目标候选显示界面中,确定与第i+1个显示界面中每个控件位置相对应的位置处的区域图像的过程类似,可以参见上述所述,便不再一一赘述。

在步骤904中,测试设备根据目标候选显示界面中每个控件图像和第i+1个显示界面的对应区域图像,计算第二相似度。

其中,计算第二相似度的过程同上述步骤902中,计算第一相似度的过程相似,可以参见上述所述,便不再一一赘述。

其中,第二相似度的数量与目标候选显示界面中控件的数量相关,例如,目标候选显示界面中具有一个控件,则测试设备可以确定出一个第二相似度,又例如,目标候选显示界面中具有两个控件,则测试设备可以确定出两个第二相似度。

测试设备通过上述方式,计算出第一相似度和第二相似度之后,可以根据第一相似度和第二相似度,判断候选显示界面中是否存在与第i+1个显示界面相同的显示界面。

例如,如果第i+1个显示界面与目标候选显示界面之间的所有第一相似度均不小于第二阈值,且所有的第二相似度均不小于第二阈值,则第i+1个显示界面与目标候选显示界面属于同一个显示界面,候选显示界面中存在与第i+1个显示界面相同的显示界面。

而如果第i+1个显示界面与目标候选显示界面之间的至少一个第一相似度小于第二阈值,或者,至少一个第二相似度小于第二阈值,则第i+1个显示界面与目标候选显示界面不属于同一个显示界面,候选显示界面中不存在与第i+1个显示界面相同的显示界面。

其中,上述第一相似度和第二相似度的计算方法,同计算整体相似度的计算方法类似。例如,可以使用相关系数匹配的图像相似度计算方法,计算第一相似度和第二相似度;也可以使用余弦匹配的图像相似度计算方法,计算第一相似度和第二相似度;还可以使用标准差匹配的图像相似度计算方法,计算第一相似度和第二相似度;还可以使用梯度匹配的图像相似度计算方法,计算第一相似度等和第二相似度。

以上是判断当前的跳转关系网中是否存在第i+1个显示界面的过程,如果第i+1个显示界面不存在于跳转关系网中,则目标控件、第i个显示界面与第i+1个显示界面三者之间的界面跳转关系必然也不存在于跳转关系网中,则测试设备根据目标控件、第i个显示界面与第i+1个显示界面之间的界面跳转关系,对当前的跳转关系网进行更新,也即是,将第i个显示界面添加至当前的跳转关系网中,并在第i个显示界面上目标控件对应的控件位置处添加指向第i+1个显示界面的箭头。

又例如,另一种通过整体相似度和控件相似度,判断第i+1个显示界面是否存在于跳转关系网中,然后是否对跳转关系网进行更新的方式还可以是,该方式也是先根据整体相似度判断相似性,再根据控件相似度判断相同性,具体的过程可以如下:

其中,由于跳转关系网中具有大量显示界面,测试设备可以根据整体相似度对显示界面进行分组,并对各个分组进行编号。

首先,测试设备可以根据显示内容,计算第i+1个显示界面分别与每个分组中的显示界面之间的第一整体相似度,再基于每个分组中各个第一整体相似度,计算该分组的第一整体平均相似度。

然后,测试设备再根据控件布局,计算第i+1个显示界面分别与每个分组中的显示界面之间的第二整体相似度,再基于每个分组中各个第二整体相似度,计算该分组的第二整体平均相似度。

之后,测试设备再根据每个分组的第一整体平均相似度和第二整体平均相似度之和,计算该分组的整体相似度。

这样,测试设备得到各个分组的整体相似度之后,比较各个分组的整体相似度分别与第一阈值的关系,如果所有分组的整体相似度均小于第一阈值,则第i+1个显示界面不存在于每个分组,则第i+1个显示界面不存在于跳转关系网中,测试设备将第i+1个显示界面添加至跳转关系网中时,为第i+1个显示界面分配一个分组编号。

而如果某一个或多个分组的整体相似度不小于第一阈值,再从这些分组中选取最大的整体相似度对应的分组,例如,可以记为目标显示界面组,该目标显示界面组也可以认为是上述至少一个候选显示界面组成的分组。

测试设备选取出一组不小于第一阈值,整体相似度最大的分组之后,也即是选取出目标显示界面组之后,可以根据控件图像计算第i+1个显示界面分别与目标显示界面组中各个显示界面之间的控件相似度。

其中,控件相似度的计算过程同上述相同,可以参见上述内容,此处便不再一一赘述。

其中,上述对跳转关系网中的显示界面进行分组后,如图11所示,跳转关系网中每个显示界面的命名可以是,显示界面(m,n),其中,m为分组的编号,m的取值为整数,可以从0开始进行顺序取值,n为显示界面在该分组中的编号,n的取值也为整数,可以从0开始进行顺序取值。在跳转关系网中,每一个显示界面唯一对应一个命名,一个命名唯一对应一个显示界面。

例如,目标显示界面组在跳转关系网中的编号为1,如果目标显示界面组中具有与第i+1个显示界面相同的显示界面,例如,显示界面(1,3)与第i+1个显示界面相同,那么可以将第i+1个显示界面记为显示界面(1,3)。

而如果目标显示界面组中不存在与第i+1个显示界面相同的显示界面,则测试设备将第i+1个显示界面添加至跳转关系网中时,可以将第i+1个显示界面在跳转关系网中命名为显示界面(1,n),如果目标显示界面组中已经具有三个显示界面,那么,第i+1个显示界面在跳转关系网中命名可以为显示界面(1,4)。

基于上述所述,测试设备可以将每获取的一个显示界面,通过上述方式,添加至跳转关系网中,并将该显示界面、触发该显示界面的控件的控件信息以及该控件所在的显示界面三者之间的界面跳转关系添加至跳转关系网中。

例如,测试设备可以按照如图12所示的流程,判断第i+1个显示界面是否存在于跳转关系网中,以及是否对跳转关系网进行更新。

在步骤1201中,计算第i+1个显示界面与各个分组中的显示界面的整体相似度,在步骤1202中判断第i+1个显示界面在跳转关系网中的分组号是否为空,也即是,判断是否存在整体相似度最大且大于第一阈值的分组,如果不存在该分组,则第i+1个显示界面在跳转关系网中的分组号为空,则执行步骤1203,为第i+1个显示界面分配一个新的分组号。而如果存在上述分组号,则执行步骤1204,获取第i+1个显示界面的分组号,其分组号即为整体相似度最大且大于第一阈值的分组的分组号。

之后,执行步骤1205,在第i+1个显示界面所在的分组中,判断第i+1个显示界面在该分组中的编号是否为空,也即是,判断第i+1个显示界面所在的分组中是否存在与第i+1个显示界面相同的显示界面,如果不存在,则第i+1个显示界面在该分组中的编号为空,则执行步骤1206,为第i+1个显示界面分配一个新的编号,而如果第i+1个显示界面所在的分组中存在与第i+1个显示界面相同的显示界面,则执行步骤1207,获取第i+1个显示界面在所在分组中的编号,之后,执行步骤1208,在第i个显示界面与第i+1个显示界面之间添加界面跳转关系,界面跳转关系也即是,目标控件的控件信息、第i个显示界面与第i+1个显示界面三者之间的关系,再之后,执行步骤1209,输出更新后的跳转关系网。

综上所述,测试设备对应用程序进行测试的过程可以按照如图13所示的流程执行:

在步骤1301中,获取显示界面。在步骤1302中,将获取的显示界面输入到控件识别模型中。在步骤1303中,通过控件识别模型输出的结果,判断显示界面中是否存在控件,如果不存在控件,则转至步骤1301。如果存在控件,则进行步骤1304,根据显示界面、触发该显示界面的控件以及该控件所在的显示界面之间的界面跳转关系,对跳转关系网进行更新。测试设备还可以进行步骤1305,在显示界面的控件中,选取下一个待点击的目标控件。其中,测试设备可以先进行步骤1304再进行步骤1305,也可以先进行步骤1305再进行步骤1304,也可以并行进行步骤1304和步骤1305。步骤1304和步骤1305之后,再次转至步骤1301,循环执行上述过程,直至将应用程序中所有的控件完成点击操作,或者,直至应用程序的控件的累积历史点击次数达到次数阈值,输出跳转关系网。

这样通过上述方式得到跳转关系网之后,测试设备或者监督检测设备的测试人员可以确定跳转关系网中控件所对应的界面跳转关系是否正确。

基于上述所述,可以参考图14所示,测试设备获取到第i个显示界面,将第i个显示界面输入到控件识别模型中,通过控件识别,得到第i个显示界面的各个控件的控件信息,也即是,可以得到各个控件的控件位置和控件类型。然后,可以按照上述所述的选取目标控件的方式,在至少一个控件中选取一个控件作为目标控件。之后,可以基于目标控件的控件位置,在第i个显示界面上对应目标控件的位置处执行点击操作,使得显示界面可以由当前的第i个显示界面,跳转至由目标控件触发的第i+1个显示界面。之后,测试设备可以得到第i+1个显示界面,进而可以根据目标控件、第i个显示界面以及第i+1个显示界面三者之间的界面跳转关系,对当前的跳转关系网进行更新,得到更新后的跳转关系网。

这样,测试设备对每获取的一个显示界面都按照如图14所示的流程执行,最后,测试设备可以输出跳转关系网。

在本申请实施例中,测试设备每获取一个显示界面,可以将该显示界面输入到控件识别模型中,得到显示界面中各个控件的控件位置,再从这些控件中选取目标控件,作为下一个点击的控件。然后,测试设备可以输出跳转关系网,其中,跳转关系网是根据目标控件、目标控件所在的显示界面以及由目标控件触发的显示界面三者之间的界面跳转关系确定的关系网。这样,测试设备或者监督检测设备的测试人员可以根据跳转关系网,判断跳转关系网中的各个控件所对应的界面跳转关系是否正确。

由此可见,测试设备通过控件识别模型对显示界面中的控件进行识别,识别出各个控件在显示界面中的位置之后,可以在这些控件中,确定待点击的目标控件。直接在显示界面中目标控件所对应的位置处执行点击操作即可,无需通过随机点击的方式操控目标控件,进而可以提高点击到显示界面上的控件的概率,缩短寻找控件的时间,使得测试设备可以遍历应用程序中尽可能多的控件,甚至可以使测试设备可以遍历应用程序的所有的控件,进而可以提升测试设备对应用程序进行自动测试的效果。

基于相同的技术构思,本申请实施例还提供了一种应用程序的测试方法,该方法由第一设备和第二设备执行,其中,第一设备可以是上述所述的终端,第二设备可以是上述所述的测试设备。

第一设备向第二设备发送所述应用程序的第i个显示界面,i为正整数;

所述第二设备获取所述第i个显示界面,并向所述第一设备发送目标控件的控件位置,所述目标控件在所述第i个显示界面的至少一个控件中确定,所述控件位置由控件识别模型识别;

所述第一设备响应于接收到所述目标控件的控件位置,在所述第i个显示界面中所述目标控件对应的控件位置处,执行点击操作;

所述第一设备响应于检测到所述目标控件上触发的点击操作,向所述第二设备发送所述目标控件触发的第i+1个显示界面;

所述第二设备获取所述应用程序的第i+1个显示界面,输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

其中,上述实施例提供的应用程序的测试方法与上述实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于相同的技术构思,本申请实施例还提供了一种应用程序的测试方法,该方法由上述所述的测试设备执行,也可以由上述的终端执行。

获取所述应用程序的第i个显示界面,i为正整数;在所述第i个显示界面中目标控件对应的控件位置处,执行点击操作,所述目标控件在所述第i个显示界面的至少一个控件中确定,所述控件位置由控件识别模型识别;获取所述目标控件触发的第i+1个显示界面;输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

其中,上述实施例提供的应用程序的测试方法与上述实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于相同的技术构思,本申请实施例还提供了一种应用程序的测试装置,该装置可以是上述所述的测试设备,如图15所示,该装置包括:

第一获取模块1501,用于获取所述应用程序的第i个显示界面,i为正整数;

识别模块1502,用于识别出所述第i个显示界面中的至少一个控件;

控件确定模块1503,用于在所述第i个显示界面的至少一个控件中,确定目标控件;

第二获取模块1504,用于获取所述目标控件触发的第i+1个显示界面;

输出模块1505,用于根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系,输出用于确定所述应用程序的测试结果的跳转关系网。

可选的,所述识别模块1502,具体用于将所述第i个显示界面输入到控件识别模型,识别出所述第i个显示界面中的至少一个控件。

可选的,所述控件识别模型是根据如下步骤训练得到的:

获取训练样本,所述训练样本中包括样本显示界面和所述样本显示界面的样本控件信息;

将所述训练样本的样本显示界面输入到待训练的控件识别模型,得到所述训练样本的测试控件信息;

根据所述测试控件信息和样本控件信息,确定所述训练样本对应的损失值;

使用所述损失值对待训练的控件识别模型进行误差反向传播训练,得到控件识别模型。

可选的,所述训练样本中包括多个显示内容相同且分辨率不相同的样本显示界面。

可选的,所述控件确定模块1503,具体用于:

在所述第i个显示界面的至少一个控件中,根据所述控件的历史点击次数确定所述目标控件;

或,

在所述第i个显示界面的至少一个控件中,根据随机选取方式确定所述目标控件。

可选的,所述控件确定模块1503,具体用于:

在所述第i个显示界面的至少一个控件中,选取所述历史点击次数最小且所述历史点击次数小于目标数值的控件作为所述目标控件;

其中,所述目标数值为对所述应用程序的控件进行测试的轮数。

可选的,所述控件确定模块1503,具体用于:

在所述第i个显示界面的至少一个控件中,选取用于触发显示第i+1个显示界面的控件作为所述目标控件;

其中,所述第i+1个显示界面中存在所述历史点击次数最小且所述历史点击次数小于目标数值的控件,所述目标数值为对所述应用程序的控件进行测试的轮数。

可选的,所述识别模块1502,具体用于:

将所述第i个显示界面输入到所述控件识别模型,识别出所述第i个显示界面中的至少一个控件的控件类型;

所述控件确定模块1503,具体用于:

在所述第i个显示界面的至少一个控件中,根据所述控件的控件类型确定所述目标控件;

或,

在所述第i个显示界面的至少一个控件中,根据所述控件的历史点击次数、所述控件类型和随机选取方式中的至少一种确定所述目标控件。

可选的,所述控件确定模块1503,具体用于:

在所述第i个显示界面的至少一个控件中,选取所述控件类型为关闭的控件,作为所述目标控件;

或,

在所述第i个显示界面的至少一个控件中,选取所述控件类型为返回的控件,作为所述目标控件。

可选的,所述控件确定模块1503,具体用于:

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于目标数值,选取用于触发显示第i+1个显示界面的控件,作为所述目标控件,所述第i+1个显示界面中存在所述历史点击次数最小且所述历史点击次数小于目标数值的控件,所述目标数值为对所述应用程序的控件进行测试的轮数;

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于所述目标数值,且不存在用于触发显示所述第i+1个显示界面的控件,选取所述控件类型为关闭的控件,作为所述目标控件;

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于所述目标数值,且不存在用于触发显示所述第i+1个显示界面的控件,且不存在所述控件类型为关闭的控件,选取所述控件类型为返回的控件,作为所述目标控件;

在所述第i个显示界面的至少一个控件中,响应于至少一个所述控件的所述历史点击次数均等于所述目标数值,且不存在用于触发显示所述第i+1个显示界面的控件,不存在所述控件类型为关闭的控件,且不存在所述控件类型为返回的控件,随机选取一个控件作为所述目标控件。

可选的,所述第一获取模块1501,具体用于:

获取所述应用程序的累计历史点击次数,所述累积历史点击次数为所述应用程序的已点击的控件的历史点击次数之和;

响应于所述累计历史点击次数不大于次数阈值,获取所述应用程序的第i个显示界面。

可选的,所述输出模块1505,具体用于:

当i等于1时,根据第1个显示界面、所述目标控件以及第2个显示界面之间的界面跳转关系,生成初始的跳转关系网;

当i大于1时,响应于所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系不存在于所述跳转关系网,根据所述第i个显示界面、所述目标控件和所述第i+1个显示界面之间的界面跳转关系,更新所述跳转关系网。

可选的,所述输出模块1505,具体用于:

计算所述第i+1个显示界面和所述跳转关系网中每个显示界面的整体相似度;

响应于所述整体相似度均小于第一阈值,确定所述第i+1个显示界面不存在于所述跳转关系网中,以及所述第i个显示界面、所述目标控件和所述第i+1个显示界面之间的界面跳转关系不存在于所述跳转关系网中;

响应于所述整体相似度不小于所述第一阈值的至少一个显示界面,将所述整体相似度不小于所述第一阈值的至少一个显示界面,确定为与所述第i+1个显示界面相似的候选显示界面;根据所述第i+1个显示界面中每个控件的控件图像和所述候选显示界面中每个控件的控件图像,计算所述第i+1个显示界面与所述候选显示界面的控件相似度;响应于所述控件相似度小于第二阈值,确定所述第i+1个显示界面不存在于所述跳转关系网中,以及所述第i个显示界面、所述目标控件和所述第i+1个显示界面之间的界面跳转关系不存在于所述跳转关系网中。

可选的,所述输出模块1505,具体用于:

根据所述第i+1个显示界面和所述跳转关系网中每个显示界面的显示内容,计算所述整体相似度;

或,根据所述第i+1个显示界面和所述跳转关系网中每个显示界面的控件布局,计算所述整体相似度;

或,根据所述第i+1个显示界面和所述跳转关系网中每个显示界面的显示内容和控件布局,计算所述整体相似度。

在本申请实施例中,该装置每获取一个显示界面,可以将该显示界面输入到控件识别模型中,得到显示界面中各个控件的控件位置,再从这些控件中选取目标控件,作为下一个点击的控件。然后,该装置可以输出跳转关系网,其中,跳转关系网是根据目标控件、目标控件所在的显示界面以及由目标控件触发的显示界面三者之间的界面跳转关系确定的关系网。这样,该装置或者监督该装置的测试人员可以根据跳转关系网,判断跳转关系网中的各个控件所对应的界面跳转关系是否正确。

由此可见,该装置通过控件识别模型对显示界面中的控件进行识别,识别出各个控件在显示界面中的位置之后,可以在这些控件中,确定待点击的目标控件。直接在显示界面中目标控件所对应的位置处执行点击操作即可,无需通过随机点击的方式操控目标控件,进而可以提高点击到显示界面上的控件的概率,缩短寻找控件的时间,使得该装置可以遍历应用程序中尽可能多的控件,甚至可以使该装置可以遍历应用程序的所有的控件,进而可以提升该装置对应用程序进行自动测试的效果。

需要说明的是:上述实施例提供的应用程序的测试装置在应用程序的测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序的测试装置与应用程序的测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于相同的技术构思,本申请实施例还提供了一种应用程序的测试系统,该系统可以包括第一设备和第二设备,第一设备可以是上述所述的终端,第二设备可以是上述所述的测试设备,其中:

所述第一设备,用于向所述第二设备发送所述应用程序的第i个显示界面,i为正整数;

所述第二设备,用于获取所述第i个显示界面,并向所述第一设备发送目标控件的控件位置,所述目标控件在所述第i个显示界面的至少一个控件中确定,所述控件位置由控件识别模型识别;

所述第一设备,用于响应于接收到所述目标控件的控件位置,在所述第i个显示界面中所述目标控件对应的控件位置处,执行点击操作;

所述第一设备,用于响应于检测到所述目标控件上触发的点击操作,向所述第二设备发送所述目标控件触发的第i+1个显示界面;

所述第二设备,用于获取所述应用程序的第i+1个显示界面,输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

其中,上述实施例提供的应用程序的测试系数与应用程序的测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

基于相同的技术构思,本申请实施例还提供了一种应用程序的测试装置,该装置可以是上述的测试设备或者终端,所述装置包括:

第一获取模块,用于获取所述应用程序的第i个显示界面,i为正整数;

执行点击模块,用于在所述第i个显示界面中目标控件对应的控件位置处,执行点击操作,所述目标控件在所述第i个显示界面的至少一个控件中确定,所述控件位置由控件识别模型识别;

第二获取模块,用于获取所述目标控件触发的第i+1个显示界面;

输出模块,用于输出用于确定所述应用程序的测试结果的跳转关系网,所述跳转关系网是根据所述第i个显示界面、所述目标控件以及所述第i+1个显示界面之间的界面跳转关系确定的。

图16是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以是上述所述的测试设备,该计算机设备1600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)1601和一个或一个以上的存储器1602,其中,所述存储器1602中存储有至少一条指令,所述至少一条指令由所述处理器1601加载并执行以实现上述应用程序的测试方法的步骤。

本申请实施例还提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该至少一条指令由处理器加载并执行以实现如上述所述的应用程序的测试方法。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1