CN109359056B - 一种应用程序测试方法及装置 - Google Patents
一种应用程序测试方法及装置 Download PDFInfo
- Publication number
- CN109359056B CN109359056B CN201811574752.3A CN201811574752A CN109359056B CN 109359056 B CN109359056 B CN 109359056B CN 201811574752 A CN201811574752 A CN 201811574752A CN 109359056 B CN109359056 B CN 109359056B
- Authority
- CN
- China
- Prior art keywords
- target attribute
- operable
- screenshot
- result
- recognition model
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
Abstract
本申请实施例公开了一种应用程序测试方法及装置,首先获取待测试应用程序的界面截图,将该界面截图输入预先训练生成的对象识别模型中,以获得该界面截图的识别结果。该识别结果可以包括界面截图中可操作对象的数目以及每个可操作对象的位置信息,并根据每个可操作对象的位置信息,依次对界面截图中所包括的可操作对象进行测试。也就是,本申请实施例可以通过预先训练生成的对象识别模型准确识别界面截图的可操作对象以及定位可操作对象,无需获取可操作对象的特性属性,提高了识别和定位可操作对象的准确性,而且无需解析布局结构树,减少识别可操作对象时间,提高测试效率。
Description
技术领域
本申请涉及互联网技术领域,具体涉及一种应用程序测试方法及装置。
背景技术
在应用程序投入使用之前,需要对应用程序进行测试。目前,可以采用自动化测试框架实现应用程序的自动测试。在应用程序的自动测试过程中,需要识别和定位测试对象,再对测试对象进行相应测试。
在现有技术中,识别和定位测试对象的过程通常需要获取应用程序当前界面的布局结构树,再解析布局结构树找到具有特定属性的测试对象,从而获得测试对象的位置。
但是,在一些应用程序中,一些测试对象并不具有特定属性,或者,并不属于布局结构树,则这些测试对象根据上述方式无法进行识别,导致无法对这些测试对象进行自动测试。
发明内容
有鉴于此,本申请实施例提供一种应用程序测试方法及装置,以解决现有技术中无法准确识别应用程序包括的可操作对象并对其进行测试的问题。
为解决上述问题,本申请实施例提供的技术方案如下:
在本申请实施例第一方面,提供了一种应用程序测试方法,所述方法包括:
获取待测试应用程序的界面截图;
将所述界面截图输入预先训练生成的对象识别模型,获得所述对象识别模型输出的识别结果;所述对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的可操作对象的数目以及每个可操作对象的位置信息;
依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试。
在一种可能的实现方式中,所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中触发所述可操作对象的位置信息对应的位置,获得每个所述可操作对象的操作执行结果。
在一种可能的实现方式中,所述对象识别模型为识别具有目标属性的对象识别模型,所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
在一种可能的实现方式中,所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中的所述可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象;
触发具有所述目标属性的可操作对象对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
在一种可能的实现方式中,所述方法还包括:判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致。
在一种可能的实现方式中,所述判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致,包括:
将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
在一种可能的实现方式中,所述对象识别模型的训练过程包括:
获取第一训练样本,所述第一训练样本包括应用程序界面截图;
从所述第一训练样本中识别得到包括可操作对象的应用程序界面截图作为正样本数据,将不包括可操作对象的应用程序界面截图作为负样本数据;
根据所述正样本数据以及所述负样本数据训练生成所述对象识别模型。
在一种可能的实现方式中,所述目标识别模型的训练过程包括:
获取第二训练样本,所述第二训练样本包括具有目标属性的可操作对象的操作结果截图;
从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据;根据所述正样本数据以及所述负样本数据训练生成所述目标识别模型。
在本申请实施例第二方面,提供了一种应用程序测试装置,该装置可以包括:
第一获取单元,用于获取待测试应用程序的界面截图;
第二获取单元,用于将所述界面截图输入预先训练生成的对象识别模型,获得所述对象识别模型输出的识别结果;所述对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的可操作对象的数目以及每个可操作对象的位置信息;
测试单元,用于依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试。
在一种可能的实现方式中,所述测试单元,具体用于在应用程序界面中触发所述可操作对象的位置信息对应的位置,获得每个所述可操作对象的操作执行结果。
在一种可能的实现方式中,所述对象识别模型为识别具有目标属性的对象识别模型,所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
所述测试单元,具体用于在应用程序界面中触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
在一种可能的实现方式中,所述测试单元,包括:
查找子单元,用于在应用程序界面中的所述可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象;
触发子单元,用于触发具有所述目标属性的可操作对象对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
在一种可能的实现方式中,所述装置还包括:
判断单元,用于判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致。
在一种可能的实现方式中,所述判断单元,包括:
获取子单元,用于将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
第一确定子单元,用于当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
第二确定子单元,用于当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
在一种可能的实现方式中,所述对象识别模型的训练过程包括:
获取第一训练样本,所述第一训练样本包括应用程序界面截图;
从所述第一训练样本中识别得到包括可操作对象的应用程序界面截图作为正样本数据,将不包括可操作对象的应用程序界面截图作为负样本数据;
根据所述正样本数据以及所述负样本数据训练生成所述对象识别模型。
在一种可能的实现方式中,所述目标识别模型的训练过程包括:
获取第二训练样本,所述第二训练样本包括具有目标属性的可操作对象的操作结果截图;
从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据;根据所述正样本数据以及所述负样本数据训练生成所述目标识别模型。
本申请实施例第三方面,提供了一种一种测试对象识别装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取待测试应用程序的界面截图;
将所述界面截图输入预先训练生成的对象识别模型,获得所述对象识别模型输出的识别结果;所述对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的可操作对象的数目以及每个可操作对象的位置信息;
依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试。
本申请实施例第四方面,提供了一种计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如第一方面中一个或多个所述的测试对象识别方法。
由此可见,本申请实施例具有如下有益效果:
本申请实施例首先获取待测试应用程序的界面截图,将该界面截图输入预先训练生成的对象识别模型中,以获得该界面截图的识别结果。该识别结果可以包括界面截图中可操作对象的数目以及每个可操作对象的位置信息,并根据每个可操作对象的位置信息,依次对界面截图中所包括的可操作对象进行测试。也就是,本申请实施例可以通过预先训练生成的对象识别模型准确识别界面截图的可操作对象以及定位可操作对象,并根据位置信息对每个可操作对象进行测试,无需获取测试对象的特性属性,提高了识别和定位可操作对象的准确性,而且无需解析布局结构树,减少识别可操作对象时间,提高测试效率。
附图说明
图1为本申请实施例提供的示例性应用场景的框架示意图;
图2为本申请实施例提供的一种应用程序测试方法的流程图;
图3为本申请实施例提供的另一种应用程序测试方法的流程图;
图4为本申请实施例提供的又一种应用程序测试方法的流程图;
图5为本申请实施例提供的再一种应用程序测试方法的流程图;
图6为本申请实施例提供的一种生成对象识别模型方法的流程图;
图7为本申请实施例提供的一种生成目标识别模型方法的流程图;
图8为本申请实施例提供的一种测试对象识别装置的结构图;
图9为本申请实施例提供的另一种测试对象识别装置结构图;
图10为本申请实施例提供的一种服务器设备结构示意图。
具体实施方式
为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本申请实施例作进一步详细的说明。
为便于理解本申请的技术方案,下面将先对本申请的背景技术进行说明。
传统的应用程序测试方法中,需要先获取应用程序界面的布局结构树,通过解析布局结构树获取具有特定属性的测试对象,再进行坐标转换,进而获取测试对象的位置信息。这样识别方法较为复杂,耗时较长;而且,由于应用程序开发设定的限制,一些测试对象并不具有特性属性,造成无法识别。由此使得,采用现有的应用程序测试方法对操作对象进行测试时,存在对象识别困难导致测试耗时过长,或者是对象无法识别使得测试无法进行的问题。
基于此,本申请实施例提供了一种应用程序测试方法及装置,主要依据预先训练的对象识别模型,当需要进行可操作对象识别时,首先获取待测试应用程序界面截图,将获取的界面截图输入对象识别模型中,获得该界面截图中可操作对象的识别结果。该识别结果包括:该界面截图中包括的可操作对象数目、以及每个可操作对象的位置信息。从而使得用户可以直接依据获取的界面截图中包括的可操作对象的相关信息,实现对待测试应用程序的可操作对象的测试工作。可见,通过本申请的技术方案,无需获取应用程序的布局结构树,就可以自动识别出界面截图中所有可能的可操作对象以及相应的位置信息,从而实现对该待测试应用程序的可操作对象的测试工作,提高测试效率。
参见图1,该图为本申请实施例提供的示例性应用场景的框架示意图。其中,本申请实施例提供的应用程序测试方法可以应用于服务器20中。
实际应用时,服务器20获取客户端10的界面截图,并将获取的界面截图输入对象识别模型,获得该界面截图对应的识别结果。服务器20可以根据识别结果中待测试应用程序界面截图中包括的可操作对象的位置信息,对每个可操作对象进行测试。
本领域技术人员可以理解,图1所示的框架示意图仅是本申请的实施方式可以在其中得以实现的一个示例。本申请实施方式的适用范围不受到该框架任何方面的限制。
需要注意的是,客户端10可以承载于终端,终端可以是现有的、正在研发的或将来研发的、能够通过任何形式的有线和/或无线连接(例如,Wi-Fi、LAN、蜂窝、同轴电缆等)相互交互的任何用户设备,包括但不限于:现有的、正在研发的或将来研发的智能可穿戴设备、智能手机、非智能手机、平板电脑、膝上型个人计算机、桌面型个人计算机、小型计算机、中型计算机、大型计算机等。本申请的实施方式在此方面不受任何限制。还需要注意的是,本申请实施例中服务器20可以是现有的、正在研发的或将来研发的、能够提供测试服务的设备的一个示例。本申请的实施方式在此方面不受任何限制。
为便于理解本申请提供的技术方案,下面将结合附图对本申请提供的测试对象识别方法进行说明。
参见图2,该图为本申请实施例提供的一种应用程序测试方法的流程图,如图2所示,该方法用于实现对应用程序包括的可操作对象的自动识别与测试,该方法可以包括:
S201:获取待测试应用程序的界面截图。
本实施例中,对于需要进行可操作对象识别的待测试应用程序,首先获取该待测试应用程序的界面截图,以便利用该待测试应用程序的界面截图进行后续的识别操作。
S202:将界面截图输入预先训练生成的对象识别模型,获得对象识别模型输出的识别结果;识别结果包括:界面截图中包括的可操作对象的数目、以及每个可操作对象的位置信息。
本实施例中,当获取待测试应用程序的界面截图后,将该界面截图输入预先训练生成的对象识别模型中,由该对象识别模型输出识别结果。
其中,识别结果可以包括:界面截图中包括可操作对象、以及包括的可操作对象的数目。当界面截图中包括的可操作对象的数目不为零时,识别结果还包括每个可操作对象的位置信息。即为,当界面截图中包括一个或多个可操作对象时,识别结果可以包括每个可操作对象的位置信息,从而实现对可操作对象的定位。其中,可操作对象可以为待测试应用程序的界面所包括的登录按钮、注册按钮、超级链接等可以触发的对象。
在实际应用中,对应用程序进行测试可以分为两类:
一类为遍历测试,即可以对应用程序界面中的可操作对象依次触发,获得每个可操作对象的操作执行结果,在该场景下需要识别界面截图中各种属性的可操作对象。
另一类为定向测试,即针对具有目标属性的可操作对象,触发该具有目标属性的可操作对象,获得该具有目标属性的可操作对象的操作执行结果,并进一步可以判断该操作执行结果是否与该目标属性对应的正确操作结果一致。例如,针对登录按钮,可以触发登录按钮,获得登录按钮的操作执行结果,并进一步判断该操作执行结果是否与登录的正确操作结果一致。在该场景下需要识别界面截图中具有目标属性的可操作对象。因此,在具体实现时,还可以根据识别可操作对象的具体需求,预先训练生成针对不同属性的可操作对象的对象识别模型,并将界面截图输入至特定属性的对象识别模型。例如,当需要识别界面截图中包括的各种属性的可操作对象时,则将界面截图输入用于识别各种属性的可操作对象的对象识别模型,从而识别出界面截图中所有可操作对象;当需要识别界面截图中具有目标属性的可操作对象时,则将界面截图输入用于识别目标属性的可操作对象的对象识别模型,从而识别出界面截图中具有目标属性的可操作对象,例如,目标属性为登录属性,则具有目标属性的可操作对象可以为登录按钮。
步骤S203:依据识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对界面截图中包括的可操作对象进行测试。本实施例中,可以根据识别结果中所包括的可操作对象的数目以及每个可操作对象的位置信息依次对应用程序界面中的每个可操作对象进行触发,以实现对各个可操作对象的测试。
需要说明的是,当识别结果中可操作对象为多个时,可以按照预设顺序,例如以从左至右、从上至下的顺序,依次触发可操作对象对应的位置,分别获得每个可操作对象的操作执行结果。
在一种可能的实现方式中,当对界面截图中所包括的可操作对象进行测试时,可以在应用程序界面中触发可操作对象的位置信息对应的位置,如果触发之后可以获得该可操作对象的操作执行结果,则说明对象识别模型的识别结果准确;如果未获得可操作对象的操作执行结果,表明对象识别模型的识别结果有误。其中,所述可以获得该可操作对象的操作执行结果,表明该位置信息对应的对象是可操作的,即为对象识别模型的识别结果准确。
当对象识别模型的识别结果有误时,即如果在应用程序界面中触发测试对象的位置信息对应的位置,未获得可操作对象的操作执行结果时,为使得对象识别模型可以准确识别可操作对象,可以对对象识别模型进行修正。在具体实现时,可以采用两种方式进行修正,一种是,调整对象识别模型的相关参数;另一种是,获取该待测试应用程序界面截图对应的正确可操作对象信息,并将该正确可操作对象信息与界面截图作为训练数据重新对该对象识别模型进行训练,以使得训练后的对象识别模型可以准确识别界面截图中的可操作对象。
在实际应用中,对界面截图中包括的各个可操作对象进行触发后,分别获得各个可操作对象的操作执行结果截图,即可以完成针对应用程序的各个可操作对象的遍历测试。
在另一种定向测试的应用场景中,还可以获取具有目标属性的可操作对象的操作执行结果,并可以进一步判断具有目标属性的可操作对象的操作执行结果是否与该目标属性对应的正确操作结果一致,以便通过判断结果验证可操作对象的功能是否正常。其中,针对定向测试的具体实现方式将在后续实施例中进行说明。
本实施例中,对象识别模型可以根据大批量图像数据训练生成;其中,该图像数据为包括可操作对象的图像以及不包括可操作对象的图像。其中,关于对象识别模型训练生成的过程将在后续实施例进行说明,本实施例暂不说明。
通过上述描述可知,本申请实施例首先获取待测试应用程序的界面截图,将该界面截图输入预先训练生成的对象识别模型中,以获得该界面截图的识别结果;该识别结果可以包括界面截图中可操作对象的数目以及每个可操作对象的位置信息;由此可以依据每个可操作对象的位置信息,依次对界面截图中所包括的可操作对象进行测试,实现对应用程序的自动测试。也就是,本申请实施例可以通过预先训练生成的对象识别模型准确识别界面截图包括的可操作对象以及定位可操作对象,无需通过解析布局结构树获取可操作对象的特性属性,减少了识别可操作对象时间,提高了识别和定位可操作对象的准确性以及测试效率测试。
通过上述实施例可知,当需要定向测试时,需要首先获取具有目标属性的可操作对象的操作执行结果。在本申请实施例中,获取具有目标属性的可操作对象的操作执行结果的实现方式,下面将结合附图分别进行说明。
参见图3所示,该图为本申请实施例提供的另一种应用程序测试方法的流程图,如图3所示,该方法可以包括:
S301:获取待测试应用程序的界面截图。
S302:将界面截图输入预先训练生成的识别具有目标属性的对象识别模型,获得识别具有目标属性的对象识别模型输出的识别结果;识别具有目标属性的对象识别模型输出的识别结果包括:待测试应用程序界面截图中包括的具有目标属性的可操作对象的数目以及每个具有目标属性的可操作对象的位置信息。
本实施例中,将获取的待测试应用程序的界面截图输入用于识别具有目标属性的对象识别模型中,以获得该对象识别模型输出的识别结果。其中,目标属性可以为需要进行测试的特定属性,可以根据实际需求训练获得用于识别具有该目标属性的对象识别模型。例如,该目标属性为登录属性,即该对象识别模型可以识别具有登录属性的可操作对象,即识别登录按钮。
在具体实现时,为识别出界面截图中是否包括具有目标属性的可操作对象时,可以将该界面截图输入识别具有该目标属性的对象识别模型,从而获得识别结果。该识别结果可以包括:界面截图中包括的具有该目标属性的可操作对象的数目以及每个具有该目标属性的可操作对象的位置信息。
S303:在应用程序界面中触发具有目标属性的可操作对象的位置信息对应的位置,获得每个具有目标属性的可操作对象的操作执行结果。
本实施例中,识别结果中包括具有目标属性的可操作对象的位置信息,因此,可以根据上述位置信息在应用程序界面中触发具有目标属性的可操作对象的位置信息对应的位置,获得每个具有该目标属性的可操作对象的操作执行结果。
通过本实施例可知,可以将待测试应用程序界面截图输入识别具有目标属性的对象识别模型,以便获得该界面截图是否包括具有该目标属性的可操对象。当识别结果为包括具有该目标属性的可操作对象时,由于识别结果中还可以包括具有该目标属性的可操作对象的数据以及每个具有该目标属性的可操作对象的位置信息,因此,可以根据位置信息在应用程序界面中分别对具有该目标属性的可操作对象进行触发,以获得操作执行结果。
参见图4所示,该图为本申请实施例提供的又一种应用程序测试方法的流程图,如图4所示,该方法可以包括:
S401:获取待测试应用程序的界面截图。
S402:将界面截图输入预先训练生成的对象识别模型,获得对象识别模型输出的识别结果;对象识别模型输出的识别结果包括:待测试应用程序界面截图中包括的可操作对象的数目以及每个可操作对象的位置信息。
需要说明的是,S401和S402分别与S201、S202具有相同的实现,具体可以参见图2所述实施例,本实施例在此不再赘述。
S403:在应用程序界面中的可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象。
本实施例中,由于识别结果中包括每个可操作对象的位置信息,因此,可以在应用程序界面中可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象。其中,目标属性可以为需要进行测试的特定属性,从而在应用程序界面中识别出具有该目标属性的可操作对象。
在具体实现时,可以利用光学字符识别方法(Optical Character Recognition,OCR)在应用程序界面中可操作对象的位置信息对应的位置进行字符识别,以识别该位置的可操作对象是否具有目标属性。例如,目标属性为登录属性,利用OCR在每个可操作对象对应的位置进行字符识别,识别该位置的字符是否包括“登录”字符,如果包括,则表明该位置对应的可操作对象为登录按钮。再例如,目标属性为支付属性,在利用OCR在每个可操作对象对应的位置进行字符识别,识别该位置的字符是否包括“支付”字符,如果包括,则表明该位置对应的可操作对象为支付按钮。
S404:触发具有目标属性的可操作对象对应的位置,获得每个具有目标属性的可操作对象的操作执行结果。
本实施例中,当查找到具有目标属性的可操作对象时,在应用程序界面中触发具有该目标属性的可操对象对应的位置,以获得每个具有该目标属性的可操作对象的操作执行结果。
通过上述实施例,当识别出待测试应用程序界面截图中包括的可操作对象时,可以在应用程序界面中的可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象,并触发具有目标属性的可操作对象的位置,以获得每个具有目标属性的可操作对象的操作执行结果。
基于图3、图4可以获得每个具有目标属性的可操作对象的操作执行结果,然后可以进一步判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致,参见图5所示,示出了判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致的具体实现过程。
参见图5,该图为本申请实施例提供的再一种应用程序测试方法的流程图,如图5所示,该方法可以包括:
S501:将具有目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得目标识别模型输出的识别结果;识别结果包括:操作结果截图是否包括目标属性对应的正确操作标识。
本实施例中,当获得具有目标属性的可操作对象的操作执行结果后,将该操作执行结果对应的截图输入预先训练生成的目标识别模型中,以获得该目标识别模型的识别结果。
其中,目标识别模型可以通过利用目标属性对应的正确操作结果截图训练生成,该正确操作结果截图中包括目标属性对应的正确操作标识。因此,目标识别模型可以对输入的操作结果截图是否包括正确操作标识进行准确识别。
在实际应用时,当触发应用程序界面中可操作对象后,可以获得该可操作对象的操作执行结果。即通过触发可操作对象,可以获得操作执行结果对应的界面。例如,当可操作对象为应用程序界面的超级链接时,触发该超级链接,即可跳转到该超级链接对应的界面,对该界面进行截图,获得操作结果截图,以便识别该界面截图是否包括该超级链接对应的正确操作标识。再例如,当可操作对象对应用程序界面的登录按钮时,触发该登录按钮,既可获得触发登录按钮之后对应的界面,对该界面进行截图,获得操作结果截图,以便识别该界面截图是否包括登录之后对应的正确操作标识。
S502:当操作结果截图中包括目标属性对应的正确操作标识时,确定具有目标属性的可操作对象的操作执行结果与目标属性对应的正确操作结果一致。
本实施例中,当目标识别模型输出的识别结果为操作结果截图包括目标属性对应的正确操作标识时,确定操作执行结果与目标属性对应的正确操作结果一致。
例如,操作结果截图为登录之后的界面截图,当识别结果中包括登录属性对应的正确操作标识时,则确定操作执行结果与登录属性对应的正确操作结果一致,表明登录成功。
可以理解的是,当S501中操作执行结果是通过在应用程序界面中触发可操作对象的位置信息对应的位置时获得,S502中的识别结果可以验证所识别的可操作对象可以进行稳定地跳转。
S503:当操作结果截图中不包括目标属性对应的正确操作标识时,确定具有目标属性的可操作对象的操作执行结果与目标属性对应的正确操作结果不一致。
可以理解的是,当目标识别模型输出的识别结果中不包括目标属性对应的正确操作标识时,确定具有目标属性的操作执行结果与目标属性对应的正确操作结果不一致。
另外,当S501中操作执行结果是通过在应用程序界面中触发可操作对象的位置信息对应的位置时获得,S503中的识别结果表明所识别的可操作对象出现识别错误,或者该可操作对象不能进行稳定地跳转。
通过上述实施例可知,本申请实施例可以通过识别操作执行结果对应的操作结果截图中是否包括目标属性对应的正确操作标识,来确定操作执行结果与目标属性对应的正确操作结果是否一致。而识别目标属性对应的正确操作标识,可以通过将操作结果对应的操作结果截图输入至预先训练生成的目标识别模型中,以获得识别结果。该识别结果包括操作结果界面截图是否包括目标属性对应的正确操作标识,从而实现对可操作对象是否可以进行稳定跳转进行测试。
上述实施例分别介绍了利用预先训练生成的对象识别模型以及目标识别模型进行识别,下面将结合附图分别对训练生成对象识别模型和目标识别模型进行说明。
参见图6,该图为本申请实施例提供的一种生成对象识别模型的方法的流程图,如图4所示,该方法可以包括:
S601:获取第一训练样本,第一训练样本包括:应用程序界面截图。
本实施例中,为训练生成对象识别模型,首先获取训练样本,训练样本可以包括:应用程序界面截图,利用应用程序界面截图进行后续训练。
在具体实现时,为使得训练生成的对象识别模型可以准确地对输入的待测试应用程序界面截图进行识别,在获取作为训练样本的应用程序界面截图时,可以获取多组不同应用程序界面截图,利用多个应用程序界面截图进行训练。
S602:从第一训练样本中识别得到包括可操作对象的应用程序界面截图作为正样本数据,将不包括可操作对象的应用程序界面截图作为负样本数据。
本实施例中,当获取训练样本后,需要针对训练样本包括的应用程序界面截图识别可操作对象,以获得包括可操作对象的应用程序界面截图,作为正样本。也就是,从训练样本中提取包括可操作对象的图像,以利用包括可操作对象的图像进行训练。
在实际应用中,用户可以根据自身需求,获取包括不同功能可操作对象的应用程序界面截图,以便训练生成不同功能的对象识别模型。当对象识别模型用于识别应用程序界面截图中某个特定功能的可操作对象时,则只需获取包括该特定可操作对象的图像。例如,该对象识别模型用于识别应用程序界面截图中登录按钮时,则只需从待训练应用程序界面截图中,获取包括登录按钮的图像。当对象识别模型用于识别应用程序界面截图中多个可操作对象时,可以从待训练应用程序界面截图获取多张包括可操作对象的图像。例如,对象识别模型用于识别应用程序界面截图中登录按钮、注册按钮、超级链接时,则从待训练应用程序界面截图中分别获取包括登录按钮截图、注册按钮截图、超级链接按钮截图。
本实施例中,将包括可操作对象的图像作为正样本数据,而不包括可操作对象的图像作为负样本数据。其中,负样本数据可以为任意图像,只要不包括可操作对象即可。
在实际应用中,由于训练需要大量正样本数据,当可操作对象比较单一时,将导致正样本数据量较小。为提高正样本数据的量,可以通过图像合成技术,利用少量的正样本数据生成大量的正样本数据。
S603:根据正样本数据以及负样本数据训练生成对象识别模型。
本实施例中,当获取训练所需的正样本数据以及负样本数据后,将上述正样本数据和负样本数据作为训练数据训练生成对象识别模型。在具体实现时,可以利用训练数据训练生成级联分类器,以使得训练后的级联分类器可以识别可操作对象。
实际应用中,在利用正样本数据进行训练之前,还可以对正样本数据进行预处理,例如,图片降噪、灰度化处理、直方图均衡化等处理操作,以突出正样本数据中测试对象的特征。当在利用对象识别模型时,也可以先对待测试应用程序界面截图进行预处理操作,从而提高识别的准确性。上述的一些预处理操作技术比较成熟,本实施例不再赘述。
需要说明的是,在具体实现时,还可以通过提取可操作对象的应用程序界面截图的图像特征训练生成对象识别模型。
参见图7,该图为本申请实施例提供的一种生成目标识别模型的方法的流程图,如图7所示,该方法可以包括:
S701:获取第二训练样本,第二训练样本包括:具有目标属性的可操作对象的操作结果截图。
本实施例中,为训练生成目标识别模型,首先获取训练样本,以便将该训练样本作为训练数据进行后续训练。其中,目标识别模型的训练样本可以为:对应用程序包括的具有目标属性的可操作对象执行触发操作后,得到的操作结果界面截图。
S702:从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据。
本实施例中,当获取操作结果截图后,识别该操作结果截图中目标属性对应的正确操作标识,并从操作结果截图中提取包括目标属性对应的正确操作标识的图像,以利用该图像进行训练。其中,目标属性对应的正确操作标识,用于表征可操作对象功能正常。当该可操作对象功能正常时,触发该可操作对象后会出现该正确操作标识。
在实际应用中,用户可以根据自身需求,获取不同目标属性对应的正确操作标识的操作结果截图,以便训练生成不同的目标识别模型。当目标识别模型用于识别具有目标属性的可操作对象对应的正确操作标识时,则只需获取包括该目标属性对应的正确操作标识的图像。例如,该目标识别模型用于识别登录属性对应的正确操作标识,则只需获取包括触发登录按钮后对应的正确操作标识的图像。
本实施例中,将包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,而不包括目标属性对应的正确操作标识的图像作为负样本数据。其中,负样本数据可以为任意图像,只要不包括目标属性对应的正确可操作标识即可。
在实际应用中,由于训练需要大量正样本数据,当目标属性对应的正确操作标识比较单一时,将导致正样本数据量较小。为提高正样本数据的量,可以通过图像合成技术,利用少量的正样本数据生成大量的正样本数据。
S703:根据正样本数据以及负样本数据训练生成目标识别模型。
本实施例中,当获取训练所需的正样本数据以及负样本数据后,将上述正样本数据和负样本数据作为训练数据训练生成目标识别模型。在具体实现时,可以利用训练数据训练生成级联分类器,以使得训练后的级联分类器可以识别可操作对象对应的正确标识。
实际应用中,在利用正样本数据进行训练之前,还可以对正样本数据进行预处理,例如,图片降噪、灰度化处理、直方图均衡化等处理操作,以突出正样本数据中测试对象的特征。当在利用目标识别模型时,也可以先对操作结果截图进行预处理操作,从而提高识别的准确性。上述的一些预处理操作技术比较成熟,本实施例不再赘述。
基于上述方法实施例,本申请还提供了一种测试对象识别装置,下面将结合附图对该装置进行说明。
参见图8,该图为本申请实施例提供的一种测试对象识别装置结构图,如图8所示,该装置可以包括:
第一获取单元801,用于获取待测试应用程序的界面截图;
第二获取单元802,用于将所述界面截图输入预先训练生成的对象识别模型,获得所述对象识别模型输出的识别结果;所述对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的可操作对象的数目以及每个可操作对象的位置信息;
测试单元803,用于依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试。
在一种可能的实现方式中,所述测试单元,具体用于在应用程序界面中触发所述可操作对象的位置信息对应的位置,获得每个所述可操作对象的操作执行结果。
在一种可能的实现方式中,所述对象识别模型为识别具有目标属性的对象识别模型,所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
所述测试单元,具体用于在应用程序界面中触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
在一种可能的实现方式中,所述测试单元,包括:
查找子单元,用于在应用程序界面中的所述可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象;
触发子单元,用于触发具有所述目标属性的可操作对象对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
在一种可能的实现方式中,所述装置还包括:
判断单元,用于判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致。
在一种可能的实现方式中,所述判断单元,包括:
获取子单元,用于将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
第一确定子单元,用于当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
第二确定子单元,用于当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
在一种可能的实现方式中,所述对象识别模型的训练过程包括:
获取第一训练样本,所述第一训练样本包括应用程序界面截图;
从所述第一训练样本中识别得到包括可操作对象的应用程序界面截图作为正样本数据,将不包括可操作对象的应用程序界面截图作为负样本数据;
根据所述正样本数据以及所述负样本数据训练生成所述对象识别模型。
在一种可能的实现方式中,所述目标识别模型的训练过程包括:
获取第二训练样本,所述第二训练样本包括具有目标属性的可操作对象的操作结果截图;
从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据;根据所述正样本数据以及所述负样本数据训练生成所述目标识别模型。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9示出了一种针对应用程序语音识别评测的装置900的框图。例如,装置900可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图9,装置900可以包括以下一个或多个组件:处理组件902,存储器904,电源组件906,多媒体组件908,音频组件910,输入/输出(I/O)的接口912,传感器组件914,以及通信组件916。
处理组件902通常控制装置900的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件902可以包括一个或多个处理器920来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件902可以包括一个或多个模块,便于处理组件902和其他组件之间的交互。例如,处理部件902可以包括多媒体模块,以方便多媒体组件908和处理组件902之间的交互。
存储器904被配置为存储各种类型的数据以支持在设备900的操作。这些数据的示例包括用于在装置900上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器904可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件906为装置900的各种组件提供电力。电源组件906可以包括电源管理系统,一个或多个电源,及其他与为装置900生成、管理和分配电力相关联的组件。
多媒体组件908包括在所述装置900和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件908包括一个前置摄像头和/或后置摄像头。当设备900处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件910被配置为输出和/或输入音频信号。例如,音频组件910包括一个麦克风(MIC),当装置900处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储904或经由通信组件916发送。在一些实施例中,音频组件910还包括一个扬声器,用于输出音频信号。
I/O接口912为处理组件902和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件914包括一个或多个传感器,用于为装置900提供各个方面的状态评估。例如,传感器组件914可以检测到设备900的打开/关闭状态,组件的相对定位,例如所述组件为装置900的显示器和小键盘,传感器组件914还可以检测装置900或装置900一个组件的位置改变,用户与装置900接触的存在或不存在,装置900方位或加速/减速和装置900的温度变化。传感器组件914可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件914还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件914还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件916被配置为便于装置900和其他设备之间有线或无线方式的通信。装置900可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信部件916经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件916还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置900可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行下述方法:
获取待测试应用程序的界面截图;
将所述界面截图输入预先训练生成的对象识别模型,获得所述对象识别模型输出的识别结果;所述对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的可操作对象的数目以及每个可操作对象的位置信息;
依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试。
可选的,所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中触发所述可操作对象的位置信息对应的位置,获得每个所述可操作对象的操作执行结果。
可选的,所述对象识别模型为识别具有目标属性的对象识别模型,所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
可选的,所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中的所述可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象;
触发具有所述目标属性的可操作对象对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
可选的,所述方法还包括:判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致。
可选的,所述判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致,包括:
将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
可选的,所述对象识别模型的训练过程包括:
获取第一训练样本,所述第一训练样本包括应用程序界面截图;
从所述第一训练样本中识别得到包括可操作对象的应用程序界面截图作为正样本数据,将不包括可操作对象的应用程序界面截图作为负样本数据;
根据所述正样本数据以及所述负样本数据训练生成所述对象识别模型。
可选的,所述目标识别模型的训练过程包括:
获取第二训练样本,所述第二训练样本包括具有目标属性的可操作对象的操作结果截图;
从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据;根据所述正样本数据以及所述负样本数据训练生成所述目标识别模型。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器904,上述指令可由装置900的处理器920执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行测试对象识别的方法,所述方法包括:
获取待测试应用程序的界面截图;
将所述界面截图输入预先训练生成的对象识别模型,获得所述对象识别模型输出的识别结果;所述对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的可操作对象的数目以及每个可操作对象的位置信息;
依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试。
可选的,所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中触发所述可操作对象的位置信息对应的位置,获得每个所述可操作对象的操作执行结果。
可选的,所述对象识别模型为识别具有目标属性的对象识别模型,所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
可选的,所述依据所述识别结果中包括的可操作对象的数目以及每个可操作对象的位置信息,依次对所述界面截图中包括的可操作对象进行测试,包括:
在应用程序界面中的所述可操作对象的位置信息对应的位置,查找具有目标属性的可操作对象;
触发具有所述目标属性的可操作对象对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果。
可选的,所述方法还包括:判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致。
可选的,所述判断具有所述目标属性的可操作对象的操作执行结果是否与所述目标属性对应的正确操作结果一致,包括:
将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
可选的,所述对象识别模型的训练过程包括:
获取第一训练样本,所述第一训练样本包括应用程序界面截图;
从所述第一训练样本中识别得到包括可操作对象的应用程序界面截图作为正样本数据,将不包括可操作对象的应用程序界面截图作为负样本数据;
根据所述正样本数据以及所述负样本数据训练生成所述对象识别模型。
可选的,所述目标识别模型的训练过程包括:
获取第二训练样本,所述第二训练样本包括具有目标属性的可操作对象的操作结果截图;
从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据;根据所述正样本数据以及所述负样本数据训练生成所述目标识别模型。
图10是本发明实施例中服务器的结构示意图。该服务器1000可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1022(例如,一个或一个以上处理器)和存储器1032,一个或一个以上存储应用程序1042或数据1044的存储介质1030(例如一个或一个以上海量存储设备)。其中,存储器1032和存储介质1030可以是短暂存储或持久存储。存储在存储介质1030的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1022可以设置为与存储介质1030通信,在服务器1000上执行存储介质1030中的一系列指令操作。
终端1000还可以包括一个或一个以上电源1026,一个或一个以上有线或无线网络接口1050,一个或一个以上输入输出接口1058,一个或一个以上键盘1056,和/或,一个或一个以上操作系统1041,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
为便于理解本申请的技术方案,先对本申请的应用场景进行描述。在本申请实施例中,下面将分别对上述两种应用场景进行说明。
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (8)
1.一种应用程序测试方法,其特征在于,所述方法包括:
获取待测试应用程序的界面截图;
将所述界面截图输入预先训练生成的识别具有目标属性的对象识别模型,获得所述识别具有目标属性的对象识别模型输出的识别结果;所述识别具有目标属性的对象识别模型用于识别具有单个特定功能的可操作对象;所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
依据所述识别结果中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息,在应用程序界面中依次触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果;
将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
2.根据权利要求1所述的方法,其特征在于,所述对象识别模型的训练过程包括:
获取第一训练样本,所述第一训练样本包括应用程序界面截图;
从所述第一训练样本中识别得到包括具有所述特定功能的可操作对象的应用程序界面截图作为正样本数据,将不包括具有所述特定功能的可操作对象的应用程序界面截图作为负样本数据;
根据所述正样本数据以及所述负样本数据训练生成所述对象识别模型。
3.根据权利要求1所述的方法,其特征在于,所述目标识别模型的训练过程包括:
获取第二训练样本,所述第二训练样本包括具有目标属性的可操作对象的操作结果截图;
从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据;根据所述正样本数据以及所述负样本数据训练生成所述目标识别模型。
4.一种应用程序测试装置,其特征在于,所述装置包括:
第一获取单元,用于获取待测试应用程序的界面截图;
第二获取单元,用于将所述界面截图输入预先训练生成的识别具有目标属性的对象识别模型,获得所述识别具有目标属性的对象识别模型输出的识别结果;所述识别具有目标属性的对象识别模型用于识别具有单个特定功能的可操作对象;所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
测试单元,用于依据所述识别结果中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息,在应用程序界面中依次触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果;
获取子单元,用于将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
第一确定子单元,用于当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
第二确定子单元,用于当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
5.根据权利要求4所述的装置,其特征在于,所述对象识别模型的训练过程包括:
获取第一训练样本,所述第一训练样本包括应用程序界面截图;
从所述第一训练样本中识别得到包括具有所述特定功能的可操作对象的应用程序界面截图作为正样本数据,将不包括具有所述特定功能的可操作对象的应用程序界面截图作为负样本数据;
根据所述正样本数据以及所述负样本数据训练生成所述对象识别模型。
6.根据权利要求5所述的装置,其特征在于,所述目标识别模型的训练过程包括:
获取第二训练样本,所述第二训练样本包括具有目标属性的可操作对象的操作结果截图;
从所述第二训练样本中识别得到包括目标属性对应的正确操作标识的操作结果截图作为正样本数据,将不包括目标属性对应的正确操作标识的操作结果截图作为负样本数据;根据所述正样本数据以及所述负样本数据训练生成所述目标识别模型。
7.一种应用程序测试装置,其特征在于,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:
获取待测试应用程序的界面截图;
将所述界面截图输入预先训练生成的识别具有目标属性的对象识别模型,获得所述识别具有目标属性的对象识别模型输出的识别结果;所述识别具有目标属性的对象识别模型用于识别具有单个特定功能的可操作对象;所述识别具有目标属性的对象识别模型输出的识别结果包括:所述待测试应用程序界面截图中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息;
依据所述识别结果中包括的具有所述目标属性的可操作对象的数目以及每个具有所述目标属性的可操作对象的位置信息,在应用程序界面中依次触发具有所述目标属性的可操作对象的位置信息对应的位置,获得每个具有所述目标属性的可操作对象的操作执行结果;
将具有所述目标属性的可操作对象的操作执行结果对应的操作结果截图输入预先训练生成的目标识别模型,获得所述目标识别模型输出的识别结果;所述目标识别模型输出的识别结果包括:所述操作结果截图是否包括所述目标属性对应的正确操作标识;
当所述操作结果截图中包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果一致;
当所述操作结果截图中不包括所述目标属性对应的正确操作标识时,确定具有所述目标属性的可操作对象的操作执行结果与所述目标属性对应的正确操作结果不一致。
8.一种计算机可读介质,其上存储有指令,当由一个或多个处理器执行时,使得装置执行如权利要求1至3中一个或多个所述的应用程序测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574752.3A CN109359056B (zh) | 2018-12-21 | 2018-12-21 | 一种应用程序测试方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811574752.3A CN109359056B (zh) | 2018-12-21 | 2018-12-21 | 一种应用程序测试方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109359056A CN109359056A (zh) | 2019-02-19 |
CN109359056B true CN109359056B (zh) | 2022-11-11 |
Family
ID=65330040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811574752.3A Active CN109359056B (zh) | 2018-12-21 | 2018-12-21 | 一种应用程序测试方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359056B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992505A (zh) * | 2019-03-15 | 2019-07-09 | 平安科技(深圳)有限公司 | 应用程序测试方法、装置、计算机设备及存储介质 |
CN110347608B (zh) * | 2019-07-17 | 2024-03-22 | 腾讯科技(深圳)有限公司 | 一种交互式应用的测试方法及相关装置 |
CN115004190A (zh) * | 2020-01-31 | 2022-09-02 | 谷歌有限责任公司 | 分析图形用户界面以促进自动交互 |
CN112506778A (zh) * | 2020-12-10 | 2021-03-16 | 北京云测信息技术有限公司 | Web用户界面自动化测试方法、装置、设备和存储介质 |
CN113254333B (zh) * | 2021-05-14 | 2023-07-04 | 成都安恒信息技术有限公司 | 基于机器学习识别第三方应用结果自动化测试方法 |
CN114895994B (zh) * | 2022-03-10 | 2023-09-01 | 深圳优美创新科技有限公司 | 终端设备进入测试模式的方法、终端设备及可读存储介质 |
CN115048309B (zh) * | 2022-06-27 | 2023-03-07 | 广州掌动智能科技有限公司 | 无侵入app软件性能测试方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170101076A (ko) * | 2016-02-26 | 2017-09-05 | 삼성전자주식회사 | 컨텐트를 인식하는 방법 및 장치 |
CN108052944A (zh) * | 2017-12-27 | 2018-05-18 | 深圳市大熊动漫文化有限公司 | 一种图像识别方法和装置 |
CN108229485A (zh) * | 2018-02-08 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于测试用户界面的方法和装置 |
CN108236785A (zh) * | 2018-02-08 | 2018-07-03 | 腾讯科技(深圳)有限公司 | 一种获取对象信息的方法及装置 |
CN108681508A (zh) * | 2018-05-15 | 2018-10-19 | 福建天泉教育科技有限公司 | 一种基于视觉识别的测试方法及终端 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9053435B2 (en) * | 2013-09-17 | 2015-06-09 | Xamarin Inc. | Generating application models based on discovery based machine learning |
CN104516812A (zh) * | 2013-09-27 | 2015-04-15 | 腾讯科技(深圳)有限公司 | 一种软件测试方法和装置 |
US10552303B2 (en) * | 2016-07-18 | 2020-02-04 | International Business Machines Corporation | Segmented accessibility testing in web-based applications |
CN106503617A (zh) * | 2016-09-21 | 2017-03-15 | 北京小米移动软件有限公司 | 模型训练方法及装置 |
CN107622016A (zh) * | 2017-09-25 | 2018-01-23 | 无线生活(杭州)信息科技有限公司 | 一种页面测试方法及装置 |
CN107832774A (zh) * | 2017-10-09 | 2018-03-23 | 无线生活(杭州)信息科技有限公司 | 一种页面异常检测方法及装置 |
CN108763068B (zh) * | 2018-05-15 | 2021-12-28 | 福建天泉教育科技有限公司 | 一种基于机器学习的自动化测试方法及终端 |
CN108845930B (zh) * | 2018-05-23 | 2022-12-30 | 深圳市腾讯网络信息技术有限公司 | 界面操作测试方法和装置、存储介质及电子装置 |
-
2018
- 2018-12-21 CN CN201811574752.3A patent/CN109359056B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170101076A (ko) * | 2016-02-26 | 2017-09-05 | 삼성전자주식회사 | 컨텐트를 인식하는 방법 및 장치 |
EP3399765A1 (en) * | 2016-02-26 | 2018-11-07 | Samsung Electronics Co., Ltd. | Method and device for recognising content |
CN108052944A (zh) * | 2017-12-27 | 2018-05-18 | 深圳市大熊动漫文化有限公司 | 一种图像识别方法和装置 |
CN108229485A (zh) * | 2018-02-08 | 2018-06-29 | 百度在线网络技术(北京)有限公司 | 用于测试用户界面的方法和装置 |
CN108236785A (zh) * | 2018-02-08 | 2018-07-03 | 腾讯科技(深圳)有限公司 | 一种获取对象信息的方法及装置 |
CN108681508A (zh) * | 2018-05-15 | 2018-10-19 | 福建天泉教育科技有限公司 | 一种基于视觉识别的测试方法及终端 |
Non-Patent Citations (3)
Title |
---|
Sketch-guided GUI test generation for mobile applications;Chucheng Zhang等;《2017 32nd IEEE/ACM International Conference on Automated Software Engineering (ASE)》;20171123;1-3 * |
基于图像相似性的Android钓鱼恶意应用检测方法;刘永明等;《计算机系统应用》;20141215(第12期);170-175 * |
应用图像对比方法的UI自动化功能测试;刘煦等;《计算机应用与软件》;20121015(第10期);117-122 * |
Also Published As
Publication number | Publication date |
---|---|
CN109359056A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359056B (zh) | 一种应用程序测试方法及装置 | |
CN109446994B (zh) | 手势关键点检测方法、装置、电子设备及存储介质 | |
JP6167245B2 (ja) | 通信メッセージ識別方法、通信メッセージ識別装置、プログラム及び記録媒体 | |
CN114240882A (zh) | 缺陷检测方法及装置、电子设备和存储介质 | |
US11749273B2 (en) | Speech control method, terminal device, and storage medium | |
CN110532956B (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN111539443A (zh) | 一种图像识别模型训练方法及装置、存储介质 | |
CN110781813B (zh) | 图像识别方法及装置、电子设备和存储介质 | |
US11335348B2 (en) | Input method, device, apparatus, and storage medium | |
US20170371506A1 (en) | Method, device, and computer-readable medium for message generation | |
EP4184506A1 (en) | Audio processing | |
CN111931844A (zh) | 图像处理方法及装置、电子设备和存储介质 | |
CN112241361A (zh) | 测试用例生成方法及装置、问题场景自动复现方法及装置 | |
CN111614990B (zh) | 加载时长的获取方法、装置及电子设备 | |
EP3825894A1 (en) | Method, device and terminal for performing word segmentation on text information, and storage medium | |
CN110213062B (zh) | 处理消息的方法及装置 | |
CN112381091A (zh) | 视频内容识别方法、装置、电子设备及存储介质 | |
CN112559309A (zh) | 页面性能采集算法的调整方法及装置 | |
CN107526683B (zh) | 应用程序功能冗余度的检测方法、装置及存储介质 | |
CN111650554A (zh) | 定位方法及装置、电子设备和存储介质 | |
CN112446366A (zh) | 一种图像翻译评测方法、装置和用于图像翻译评测的装置 | |
CN111611470A (zh) | 一种数据处理方法、装置和电子设备 | |
CN112733141B (zh) | 一种信息处理方法及装置 | |
CN112346968B (zh) | 一种多媒体文件清晰度的自动化检测方法及装置 | |
CN111428806B (zh) | 图像标签确定方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |