应用测试方法及装置制造方法及图纸

技术编号:18557461 阅读:45 留言:0更新日期:2018-07-31 17:46
本公开揭示了一种应用测试方法及装置,属于软件测试领域。该应用测试方法包括:在节点列表中确定初始的当前节点;判断当前节点是否存在未执行的任务;若存在未执行的任务,则执行任务,将跳转至的界面对应的节点设置为当前节点;若不存在未执行的任务,则在节点列表中查找出存在未执行的任务的目标节点,从当前节点跳转至目标节点,将目标节点设置为当前节点;若无法查找出目标节点,则结束遍历测试。本公开解决了伪随机事件流并不一定符合当前APP的实际操作流,相关测试方法经常重复测试APP的几个主要界面,还可能会漏掉一些比较隐蔽的界面的问题;达到了尽可能按照APP的实际操作流进行遍历测试,提高APP的测试效率的效果。

【技术实现步骤摘要】
应用测试方法及装置
本公开涉及软件测试领域,特别涉及一种应用测试方法及装置。
技术介绍
遍历测试是对APP(Application,应用程序)进行测试的诸多测试方法中的一种。遍历测试用于尝试访问一个APP的所有可能到达的图形用户界面,并在访问过程中监测是否会出现崩溃或其它异常情况。图形用户界面可以简称为界面。相关技术提供的遍历测试方法中,首先生成若干个伪随机事件流,每个伪随机事件流包括有用户可能对界面执行的各种UI(UserInterface,用户界面)操作事件,比如:按键输入事件、触摸屏点击事件、手势输入事件等;然后,对待测试的APP输入上述伪随机事件流,从而实现遍历测试。
技术实现思路
为了解决伪随机事件流的每个事件流并不一定符合当前APP的实际操作流,相关测试方法经常重复测试APP的几个主要界面,还可能会漏掉一些比较隐蔽的界面的问题,本公开提供一种应用测试方法及装置。该技术方案如下:根据本公开实施例的第一方面,提供一种应用测试方法,该方法包括:在节点列表中确定初始的当前节点,该节点列表包括至少一个节点,每个节点对应本次测试的应用程序中的一个界面,每个节点对应的任务是与该节点对应的界面上所支持的UI操作事件;判断该当前节点是否存在未执行的任务;若存在未执行的任务,则执行该任务,根据执行该任务后跳转至的界面记录与该任务对应的跳转关系,将该跳转至的界面对应的节点设置为该当前节点;若不存在未执行的任务,则在该节点列表中查找出存在未执行的任务的目标节点,从该当前节点跳转至该目标节点,将该目标节点设置为该当前节点;若在该节点列表中无法查找出该目标节点,则结束该应用程序的遍历测试。可选的,该将该跳转至的界面对应的节点设置为该当前节点,包括:获取该跳转至的界面的信息;根据该信息判断该跳转至的界面是否为已经访问过的界面;若该界面是已经访问过的界面,则将该已经访问过的界面所对应的节点设置为该当前节点;若该界面是未访问过的界面,则生成与该未访问过的界面对应的节点,根据该未访问过的界面所支持的UI操作事件初始化生成的该节点的任务列表,将生成的该节点设置为该当前节点。可选的,该在该节点列表中查找存在未执行的任务的目标节点,包括:在该节点列表中查找出距离根节点最近的一个存在未执行的任务的节点作为该目标节点,根节点是应用程序的主界面对应的节点。可选的,该从该当前节点跳转至该目标节点,包括:计算从该当前节点跳转至该目标节点的任务链,该任务链包括至少两个节点和至少一个跳转关系,每个跳转关系与两个节点关联;判断该任务链中的跳转关系是否已经全部执行完毕;若没有全部执行完毕,则按照该任务链中的顺序执行一个未执行的跳转关系;检测执行该跳转关系后是否跳转至期望的界面;若跳转至该期望的界面,则再次执行判断该任务链中的跳转关系是否已经全部执行完毕的步骤;若任务链中的跳转关系已经全部执行完毕,则确定跳转至该目标节点。可选的,该方法,还包括:若没有跳转至该期望的界面,则获取该跳转至的界面的信息;根据该信息判断该跳转至的界面是否为已经访问过的界面;若该界面是已经访问过的界面,则根据该已经访问过的节点修改本次执行的该跳转关系;将该已经访问过的界面所对应的节点设置为该当前节点;若该界面是未访问过的界面,则生成与该未访问过的界面对应的节点,根据该未访问过的界面所支持的UI操作事件初始化生成的该节点的任务列表,将生成的该节点设置为该当前节点。可选的,该在节点列表中确定初始的当前节点,包括:在清空的节点列表中,将该应用程序的主界面确定为根节点,并将所述根节点确定为初始的当前节点。根据本公开实施例的第二方面,提供一种应用测试装置,该装置包括:确定模块,被配置为在节点列表中确定初始的当前节点,该节点列表包括至少一个节点,每个节点对应本次测试的应用程序中的一个界面,每个节点对应的任务是与该节点对应的界面上所支持的UI操作事件;判断模块,被配置为判断该当前节点是否存在未执行的任务;第一设置模块,被配置为当存在未执行的任务时,执行该任务,根据执行该任务后跳转至的界面记录与该任务对应的跳转关系,将该跳转至的界面对应的节点设置为该当前节点;第二设置模块,被配置为在不存在未执行的任务时,在该节点列表中查找出存在未执行的任务的目标节点,从该当前节点跳转至该目标节点,将该目标节点设置为该当前节点;结束模块,被配置为在该节点列表中无法查找出该目标节点时,结束该应用程序的遍历测试。可选的,该第一设置模块,包括:获取子模块,被配置为获取该跳转至的界面的信息;第一判断子模块,被配置为根据该信息判断该跳转至的界面是否为已经访问过的界面;第一设置子模块,被配置为当该界面是已经访问过的界面时,将该已经访问过的界面所对应的节点设置为该当前节点;第二设置子模块,被配置为当该界面是未访问过的界面时,生成与该未访问过的界面对应的节点,根据该未访问过的界面所支持的UI操作事件初始化生成的该节点的任务列表,将生成的该节点设置为该当前节点。可选的,该第二设置模块,还被配置为在该节点列表中查找出距离根节点最近的一个存在未执行的任务的节点作为该目标节点,根节点时营养程序的主界面所对应的节点。可选的,该第二设置模块,包括:计算子模块,被配置为计算从该根节点跳转至该目标节点的任务链,该任务链包括至少两个节点和至少一个跳转关系,每个跳转关系与两个节点关联;第二判断子模块,被配置为判断该任务链中的跳转关系是否已经全部执行完毕;该第二判断子模块,还被配置为当没有全部执行完毕时,按照该任务链中的顺序执行一个未执行的跳转关系;检测执行该跳转关系后是否跳转至期望的界面;若跳转至该期望的界面,则再次执行判断该任务链中的跳转关系是否已经全部执行完毕的步骤;跳转子模块,被配置为当任务链中的跳转关系已经全部执行完毕时,确定跳转至该目标节点。可选的,该装置,还包括:信息获取模块,被配置为当没有跳转至该期望的界面时,获取该跳转至的界面的信息;界面判断模块,被配置为根据该信息判断该跳转至的界面是否为已经访问过的界面;第三设置模块,被配置为当该界面是已经访问过的界面时,根据该已经访问过的节点修改本次执行的该跳转关系;将该已经访问过的界面所对应的节点设置为该当前节点;第四设置模块,被配置为当该界面是未访问过的界面时,生成与该未访问过的界面对应的节点,根据该未访问过的界面所支持的UI操作事件初始化生成的该节点的任务列表,将生成的该节点设置为该当前节点。可选的,该确定模块,还被配置为在清空的节点列表中,将该应用程序的主界面确定为根节点,将根节点确定为初始的当前节点。根据本公开实施例的第三方面,提供一种应用测试装置,该装置包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为:在节点列表中确定初始的当前节点,该节点列表包括至少一个节点,每个节点对应本次测试的应用程序中的一个界面,每个节点对应的任务是与该节点对应的界面上所支持的UI操作事件;判断该当前节点是否存在未执行的任务;若存在未执行的任务,则执行该任务,根据执行该任务后跳转至的界面记录与该任务对应的跳转关系,将该跳转至的界面对应的节点设置为该当前节点;若不存在未执行的任务,则在该节点列表中查找出存在未执行的任务的目标节点,从该当前节点跳转至该目标节点,将该目标节点设本文档来自技高网...

【技术保护点】
1.一种应用测试方法,其特征在于,用于测试终端中,所述方法包括:在节点列表中确定初始的当前节点,所述节点列表包括至少一个节点,所述节点列表是用于记录应用程序的节点与节点之间跳转关系的列表,每个节点对应本次测试的所述应用程序中的一个界面,每个节点对应的任务是与所述节点对应的界面上所支持的UI操作事件;判断所述当前节点是否存在未执行的任务;若存在未执行的任务,则执行所述任务,根据执行所述任务后跳转至的界面记录与所述任务对应的跳转关系,将所述跳转至的界面对应的节点设置为所述当前节点;若不存在未执行的任务,则在所述节点列表中查找出存在未执行的任务的目标节点,从所述当前节点跳转至所述目标节点,将所述目标节点设置为所述当前节点;若在所述节点列表中无法查找出所述目标节点,则结束所述应用程序的遍历测试。

【技术特征摘要】
1.一种应用测试方法,其特征在于,用于测试终端中,所述方法包括:在节点列表中确定初始的当前节点,所述节点列表包括至少一个节点,所述节点列表是用于记录应用程序的节点与节点之间跳转关系的列表,每个节点对应本次测试的所述应用程序中的一个界面,每个节点对应的任务是与所述节点对应的界面上所支持的UI操作事件;判断所述当前节点是否存在未执行的任务;若存在未执行的任务,则执行所述任务,根据执行所述任务后跳转至的界面记录与所述任务对应的跳转关系,将所述跳转至的界面对应的节点设置为所述当前节点;若不存在未执行的任务,则在所述节点列表中查找出存在未执行的任务的目标节点,从所述当前节点跳转至所述目标节点,将所述目标节点设置为所述当前节点;若在所述节点列表中无法查找出所述目标节点,则结束所述应用程序的遍历测试。2.根据权利要求1所述的方法,其特征在于,所述将所述跳转至的界面对应的节点设置为所述当前节点,包括:获取所述跳转至的界面的信息;根据所述信息判断所述跳转至的界面是否为已经访问过的界面;若所述界面是已经访问过的界面,则将所述已经访问过的界面所对应的节点设置为所述当前节点;若所述界面是未访问过的界面,则生成与所述未访问过的界面对应的节点,根据所述未访问过的界面所支持的UI操作事件初始化生成的所述节点的任务列表,将生成的所述节点设置为所述当前节点。3.根据权利要求1所述的方法,其特征在于,所述在所述节点列表中查找出存在未执行的任务的目标节点,包括:在所述节点列表中查找出距离根节点最近的一个存在未执行的任务的节点作为所述目标节点,所述根节点是所述应用程序的主界面所对应的节点。4.根据权利要求1所述的方法,其特征在于,所述从所述当前节点跳转至所述目标节点,包括:计算从所述当前节点跳转至所述目标节点的任务链,所述任务链包括至少两个节点和至少一个跳转关系,每个跳转关系与两个节点关联;判断所述任务链中的跳转关系是否已经全部执行完毕;若没有全部执行完毕,则按照所述任务链中的顺序执行一个未执行的跳转关系;检测执行所述跳转关系后是否跳转至期望的界面;若跳转至所述期望的界面,则再次执行判断所述任务链中的跳转关系是否已经全部执行完毕的步骤;若所述任务链中的跳转关系已经全部执行完毕,则确定跳转至所述目标节点。5.根据权利要求4所述的方法,其特征在于,所述方法,还包括:若没有跳转至所述期望的界面,则获取所述跳转至的界面的信息;根据所述信息判断所述跳转至的界面是否为已经访问过的界面;若所述界面是已经访问过的界面,则根据所述已经访问过的节点修改本次执行的所述跳转关系;将所述已经访问过的界面所对应的节点设置为所述当前节点;若所述界面是未访问过的界面,则生成与所述未访问过的界面对应的节点,根据所述未访问过的界面所支持的UI操作事件初始化生成的所述节点的任务列表,将生成的所述节点设置为所述当前节点。6.根据权利要求1至5任一所述的方法,其特征在于,所述在节点列表中确定初始的当前节点,包括:在清空的节点列表中,将所述应用程序的主界面确定为根节点,并将所述根节点确定为所述初始的当前节点。7.一种应用测试装置,其特征在于,用于测试终端中,所述装置包括:确定模块,被配置为在节点列表中确定初始的当前节点,所述节点列表包括至少一个节点,所述节点列表是用于记录应用程序的节点与节点之间跳转关系的列表,每个节点对应本次测试的所述应用程序中的一个界面,每个节点对应的任务是与所述节点对应的界面上所支持的UI操作事件;判断模块,被配置为判断所述当前节点是否存在未执行的任务;第一设置模块,被配置为当存在未执行的任务时,执行所述任务,根据执行所述任务后跳转至的界面记录与所述任务对应的跳转关系,将所述跳转至的界面对应的节点设置为所述当前节点;第二设置模块,被配置为在不存在未执行的任务时,在...

【专利技术属性】
技术研发人员:梁博华承平姜华张文瓅
申请(专利权)人:小米科技有限责任公司
类型:发明
国别省市:北京,11

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

1