【技术实现步骤摘要】
应用测试方法及装置
本公开涉及软件测试领域,特别涉及一种应用测试方法及装置。
技术介绍
遍历测试是对APP(Application,应用程序)进行测试的诸多测试方法中的一种。遍历测试用于尝试访问一个APP的所有可能到达的图形用户界面,并在访问过程中监测是否会出现崩溃或其它异常情况。图形用户界面可以简称为界面。相关技术提供的遍历测试方法中,首先生成若干个伪随机事件流,每个伪随机事件流包括有用户可能对界面执行的各种UI(UserInterface,用户界面)操作事件,比如:按键输入事件、触摸屏点击事件、手势输入事件等;然后,对待测试的APP输入上述伪随机事件流,从而实现遍历测试。
技术实现思路
为了解决伪随机事件流的每个事件流并不一定符合当前APP的实际操作流,相关测试方法经常重复测试APP的几个主要界面,还可能会漏掉一些比较隐蔽的界面的问题,本公开提供一种应用测试方法及装置。该技术方案如下:根据本公开实施例的第一方面,提供一种应用测试方法,该方法包括:在节点列表中确定初始的当前节点,该节点列表包括至少一个节点,每个节点对应本次测试的应用程序中的一个界面,每个节点对应的任务是与该节点对应的界面上所支持的UI操作事件;判断该当前节点是否存在未执行的任务;若存在未执行的任务,则执行该任务,根据执行该任务后跳转至的界面记录与该任务对应的跳转关系,将该跳转至的界面对应的节点设置为该当前节点;若不存在未执行的任务,则在该节点列表中查找出存在未执行的任务的目标节点,从该当前节点跳转至该目标节点,将该目标节点设置为该当前节点;若在该节点列表中无法查找出该目标节点,则结束该应用程 ...
【技术保护点】
1.一种应用测试方法,其特征在于,用于测试终端中,所述方法包括:在节点列表中确定初始的当前节点,所述节点列表包括至少一个节点,所述节点列表是用于记录应用程序的节点与节点之间跳转关系的列表,每个节点对应本次测试的所述应用程序中的一个界面,每个节点对应的任务是与所述节点对应的界面上所支持的UI操作事件;判断所述当前节点是否存在未执行的任务;若存在未执行的任务,则执行所述任务,根据执行所述任务后跳转至的界面记录与所述任务对应的跳转关系,将所述跳转至的界面对应的节点设置为所述当前节点;若不存在未执行的任务,则在所述节点列表中查找出存在未执行的任务的目标节点,从所述当前节点跳转至所述目标节点,将所述目标节点设置为所述当前节点;若在所述节点列表中无法查找出所述目标节点,则结束所述应用程序的遍历测试。
【技术特征摘要】
1.一种应用测试方法,其特征在于,用于测试终端中,所述方法包括:在节点列表中确定初始的当前节点,所述节点列表包括至少一个节点,所述节点列表是用于记录应用程序的节点与节点之间跳转关系的列表,每个节点对应本次测试的所述应用程序中的一个界面,每个节点对应的任务是与所述节点对应的界面上所支持的UI操作事件;判断所述当前节点是否存在未执行的任务;若存在未执行的任务,则执行所述任务,根据执行所述任务后跳转至的界面记录与所述任务对应的跳转关系,将所述跳转至的界面对应的节点设置为所述当前节点;若不存在未执行的任务,则在所述节点列表中查找出存在未执行的任务的目标节点,从所述当前节点跳转至所述目标节点,将所述目标节点设置为所述当前节点;若在所述节点列表中无法查找出所述目标节点,则结束所述应用程序的遍历测试。2.根据权利要求1所述的方法,其特征在于,所述将所述跳转至的界面对应的节点设置为所述当前节点,包括:获取所述跳转至的界面的信息;根据所述信息判断所述跳转至的界面是否为已经访问过的界面;若所述界面是已经访问过的界面,则将所述已经访问过的界面所对应的节点设置为所述当前节点;若所述界面是未访问过的界面,则生成与所述未访问过的界面对应的节点,根据所述未访问过的界面所支持的UI操作事件初始化生成的所述节点的任务列表,将生成的所述节点设置为所述当前节点。3.根据权利要求1所述的方法,其特征在于,所述在所述节点列表中查找出存在未执行的任务的目标节点,包括:在所述节点列表中查找出距离根节点最近的一个存在未执行的任务的节点作为所述目标节点,所述根节点是所述应用程序的主界面所对应的节点。4.根据权利要求1所述的方法,其特征在于,所述从所述当前节点跳转至所述目标节点,包括:计算从所述当前节点跳转至所述目标节点的任务链,所述任务链包括至少两个节点和至少一个跳转关系,每个跳转关系与两个节点关联;判断所述任务链中的跳转关系是否已经全部执行完毕;若没有全部执行完毕,则按照所述任务链中的顺序执行一个未执行的跳转关系;检测执行所述跳转关系后是否跳转至期望的界面;若跳转至所述期望的界面,则再次执行判断所述任务链中的跳转关系是否已经全部执行完毕的步骤;若所述任务链中的跳转关系已经全部执行完毕,则确定跳转至所述目标节点。5.根据权利要求4所述的方法,其特征在于,所述方法,还包括:若没有跳转至所述期望的界面,则获取所述跳转至的界面的信息;根据所述信息判断所述跳转至的界面是否为已经访问过的界面;若所述界面是已经访问过的界面,则根据所述已经访问过的节点修改本次执行的所述跳转关系;将所述已经访问过的界面所对应的节点设置为所述当前节点;若所述界面是未访问过的界面,则生成与所述未访问过的界面对应的节点,根据所述未访问过的界面所支持的UI操作事件初始化生成的所述节点的任务列表,将生成的所述节点设置为所述当前节点。6.根据权利要求1至5任一所述的方法,其特征在于,所述在节点列表中确定初始的当前节点,包括:在清空的节点列表中,将所述应用程序的主界面确定为根节点,并将所述根节点确定为所述初始的当前节点。7.一种应用测试装置,其特征在于,用于测试终端中,所述装置包括:确定模块,被配置为在节点列表中确定初始的当前节点,所述节点列表包括至少一个节点,所述节点列表是用于记录应用程序的节点与节点之间跳转关系的列表,每个节点对应本次测试的所述应用程序中的一个界面,每个节点对应的任务是与所述节点对应的界面上所支持的UI操作事件;判断模块,被配置为判断所述当前节点是否存在未执行的任务;第一设置模块,被配置为当存在未执行的任务时,执行所述任务,根据执行所述任务后跳转至的界面记录与所述任务对应的跳转关系,将所述跳转至的界面对应的节点设置为所述当前节点;第二设置模块,被配置为在不存在未执行的任务时,在...
【专利技术属性】
技术研发人员:梁博,华承平,姜华,张文瓅,
申请(专利权)人:小米科技有限责任公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。