首页> 中国专利> 菜单名称的自动检测方法及自动检测单元

菜单名称的自动检测方法及自动检测单元

摘要

本发明涉及自动化测试领域,公开了一种菜单名称的自动检测方法及自动检测单元。本发明中,菜单名称的自动检测方法,包含以下步骤:反编译各安装包以产生各目标文本文件;从所述各目标文本文件中获取各菜单当前名称;根据获取的各安装包的各菜单当前名称与预设的各安装包的各菜单标准名称产生菜单名称检测信息。本发明提供的菜单名称的自动检测方法及自动检测单元,不仅使得菜单名称的检测变得省时省力,大幅度降低了测试成本;而且提高了检测的准确性。

著录项

  • 公开/公告号CN104978273A

    专利类型发明专利

  • 公开/公告日2015-10-14

    原文格式PDF

  • 申请/专利权人 上海与德通讯技术有限公司;

    申请/专利号CN201510401961.8

  • 发明设计人 江奇;

    申请日2015-07-09

  • 分类号

  • 代理机构上海晨皓知识产权代理事务所(普通合伙);

  • 代理人张婧

  • 地址 201506 上海市金山区通业路218号3幢2层

  • 入库时间 2023-12-18 11:28:43

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-23

    未缴年费专利权终止 IPC(主分类):G06F11/36 授权公告日:20181106 终止日期:20190709 申请日:20150709

    专利权的终止

  • 2018-11-06

    授权

    授权

  • 2015-11-18

    实质审查的生效 IPC(主分类):G06F11/36 申请日:20150709

    实质审查的生效

  • 2015-10-14

    公开

    公开

说明书

技术领域

本发明涉及自动化测试领域,特别涉及一种菜单名称的自动检测方法及自动检测单元。

背景技术

随着计算机技术的发展,智能手机的功能越来越强大;为适应市场需求,大多数智能手机都支持多种语言版本,即,智能手机的菜单文本内预设有多个语言版本的菜单名称。

为确保每种语言下各应用菜单的描述及功能正确,手机出厂前需要对各语言版本的菜单名称进行检测。目前,通常采用人工检测的方式对智能手机内的各语言版本的菜单名称进行检测;即,测试人员需要将智能手机设置成各语言版本后显示出来的各菜单名称与该语言版本的标准菜单名称进行比对以判断是否准确。上述人工遍历的方式不仅需要耗费大量时间及人力成本,效率极其低下;而且由于测试人员语言能力或细心程度不够,还会降低测试结果的准确性。

发明内容

本发明的目的在于提供一种菜单名称的自动检测方法及自动检测单元,不仅使得菜单名称的检测变得省时省力,大幅度降低了测试成本;而且提高了检测的准确性。

为解决上述技术问题,本发明的实施方式提供了一种菜单名称的自动检测方法,包含以下步骤:反编译各安装包以产生各目标文本文件;从所述各目标文本文件中获取各菜单当前名称;根据获取的各安装包的各菜单当前名称与预设的各安装包的各菜单标准名称产生菜单名称检测信息。

本发明的实施方式还提供了一种菜单名称的自动检测单元,包含:反编译子单元,用于反编译各安装包以产生各目标文本文件;菜单名称获取子单元,用于从所述各目标文本文件中获取各菜单当前名称;检测信息产生子单元,用于根据预设的各安装包的各菜单标准名称与获取的各安装包的各菜单当前名称产生菜单名称检测信息。

本发明实施方式相对于现有技术而言,将通过反编译方式获取的各安装包的各菜单当前名称与预设的各安装包的各菜单标准名称以产生菜单名称检测信息,不仅使得菜单名称的检测变得省时省力,大幅度降低了测试成本,而且提高了检测的准确性。

另外,在反编译各安装包以产生目标文本文件的步骤之前,还包含以下步骤:建立标准树形数据库,所述预设的各安装包的各菜单标准名称以树形结构排列并储存于所述标准树形数据库。将各菜单标准名称以树形结构排列,有利于按顺序逐个比对。

另外,在从所述各目标文本文件中获取各菜单当前名称的步骤之后,还包含以下步骤:建立当前树形数据库,所述获取的各安装包的各菜单当前名称以树形结构排列并储存于所述当前树形数据库。将各菜单当前名称以树形结构排列,有利于缩小查找时间,加快检测速度。

另外,反编译各安装包以产生各目标文本文件的步骤,还包含以下子步骤:解压缩各安装包;提取解压缩后的各安装包中的目标项;反编译提取的各目标项以产生各目标文本文件。仅对提取的目标项进行反编译,可以缩短反编译时间,进一步加快检测速度。

附图说明

图1是根据本发明第一实施方式的菜单名称的自动检测方法的流程图;

图2是根据本发明第一实施方式的标准树形数据库中的安装包APK1对应的标准菜单树的示意图。

图3是根据本发明第一实施方式的步骤S3的具体流程图;

图4是根据本发明第一实施方式的步骤S5的具体流程图;

图5是根据本发明第二实施方式的菜单名称的自动检测方法的流程图;

图6是根据本发明第三实施方式的菜单名称的自动检测单元的方框图;

图7是根据本发明第四实施方式的菜单名称的自动检测单元的方框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。

本发明的第一实施方式涉及一种菜单名称的自动检测方法,应用于一检测装置(例如为个人电脑),该检测装置用于自动检测移动终端的菜单名称,移动终端例如为智能手机;然而,本实施方式对此不作任何限制,检测装置亦可以检测其自身的各安装包的菜单名称。

如图1至4所示,本实施方式的菜单名称的自动检测方法包含以下步骤:

步骤S1:建立标准树形数据库,预设的各安装包APK的各菜单标准名称以树形结构排列并储存于标准树形数据库。

具体而言,智能手机内包含多个APK,例如多个应用APK。各APK包含多级菜单且各级菜单包含至少一个菜单项,根据智能手机支持的多种语言版本的需求,各菜单项对应于多个菜单标准名称。例如,在某个APK中,第一级菜单包含的一个菜单项的中文版本的菜单标准名称为“设置”,且该菜单项还对应于英文、德文等版本的菜单标准名称,以满足该智能手机工作于多种语言环境的需要。即,各菜单项对应于多个菜单标准名称,该多个菜单标准名称对应于多个语言版本。

检测装置将各APK的各菜单项(每个菜单项对应于多个菜单标准名称)按照菜单层级顺序以树形结构排列并储存,各APK的所有菜单项由一个树形结构表示;即,检测装置为该智能手机建立标准树形数据库,该标准树形数据库中包含各APK对应的标准菜单树。其中,标准菜单树中的各菜单标准名称(即各菜单项)具有对应的层级标志符。

如图2所示为标准树形数据库中的安装包APK1对应的标准菜单树,图2中的菜单项1至8仅为示意性的文字说明,各菜单项对应于多个菜单标准名称(多种语言版本,例如包含三个语言版本名称:中文名称、英文名称、德文名称)。即,检测装置储存每个菜单项的位置实质储存的内容为该菜单项对应的多个菜单标准名称。需要说明的是,图2中仅为举例说明,本实施方式并不以此为限。

步骤S2:自动获取各安装包。

当检测装置侦测到有智能手机连接时,自动获取该智能手机中的各APK。例如,检测装置可以使用adb pull命令将手机中每个应用APK导出至检测装置中。然而,本实施方式对此不作任何限制;检测装置亦可自动获取其自身的各APK以对其自身的各菜单名称进行检测。

步骤S3:反编译各安装包以产生各目标文本文件。其中,步骤S3包含以下子步骤:

子步骤S31:解压缩各安装包。

例如,使用解压工具winzip或winrar解压打开各APK,解压缩后的各APK包含多个文件项。

子步骤S32:提取解压缩后的各安装包中的目标项。

具体而言,多个菜单当前名称实质上储存在解压缩后的APK的其中一个文件项内,本实施方式中将储存有多个菜单当前名称的文件项称之为目标项。检测装置从解压缩后的各APK中提取该目标项。

本实施方式中的智能手机采用安卓系统,因此本实施方式中所述的目标项为class.dex文件;然而,本实施方式对此不作任何限制;当智能手机采用其它操作系统时,APK中的目标项可能会是其它文件格式。

子步骤S33:反编译提取的各目标项以产生各目标文本文件。

检测装置利用dexdump工具把各APK中的目标项class.dex文件dump成文本格式。

步骤S4:从各目标文本文件中获取各菜单当前名称。

检测装置从被dump成文本格式的目标项class.dex中获取多个菜单当前名称;获取的多个菜单当前名称包含该APK中所有菜单项对应的菜单当前名称。

其中,各菜单当前名称对应于一个识别字符串,该识别字符串中包含层级标志符。例如,识别字符串包含六个字符,其中前两位字符被设定为层级标志符;以上仅为举例说明,本实施方式对识别字符串的字符数目以及层级标识符的设定不作任何限制。因此,同一层级菜单项对应的各菜单当前名称所对应的识别字符串包含相同的层级标志符。

步骤S5:根据获取的各安装包的各菜单当前名称与预设的各安装包的各菜单标准名称产生菜单名称检测信息。其中,步骤S5包含以下子步骤:

子步骤S51:识别按照树形结构的层级顺序依次提取的各安装包的各菜单标准名称所对应的菜单当前名称。其中,子步骤S51还包含以下子步骤:

子步骤S511:获取与各层级的各菜单标准名称至少部分相同的至少一菜单当前名称。

检测装置对于各APK的多个菜单当前名称的检测顺序为:按照标准数据库中该APK对应的菜单标准树的层级顺序。如下为以图2所示的APK1对应的标准菜单树为例进行说明。

首先,检测装置获取第一层级中的菜单项1对应的各菜单标准名称。其次,检测装置在获取的APK1对应的多个菜单当前名称中查找与该菜单标准名称至少部分相同的菜单标准名称,其中,所述“至少部分相同”的具体含义可以根据需要设定。本实施方式中将“至少部分相同”设定为至少四个的字母相同。

例如,检测装置当前正检测菜单项1对应的一个英文版本的菜单标准名称,假设该菜单标准名称为setting;其中,该菜单标准名称setting位于第一层级,即对应的层级标志符为01。检测装置从该APK1对应的多个菜单当前名称获取了3个至少部分相同的菜单当前名称,分别被标志为序号(1)至(3),表示如下:(1)setting、(2)setting、(3)putting。

子步骤S512:分析获取的各菜单当前名称对应的识别字符串以辨别出包含该菜单标准名称对应的层级标志符的识别字符串,将辨别出的识别字符串所对应的菜单当前名称对应于该菜单标准名称。

检测装置分别获取上述序号为(1)至(3)的三个菜单当前名称对应的识别字符串,并判断各识别字符串中的层级标志符与该菜单标准名称对应的层级标志符是否一致;若一致,表示该菜单当前名称为该菜单标准名称所对应的菜单当前名称。

例如,与(1)setting对应的识别字符串包含的层级标志符为01,表示第一层级;与(2)setting对应的识别字符串包含的层级标志符为02,表示第二层级;与(3)putting对应的识别字符串包含的层级标志符为02,表示第二层级。显然的,(1)setting被识别为对应于该菜单标准名称setting的菜单当前名称。

子步骤S52:根据依次提取的各菜单标准名称与识别出的对应的菜单当前名称产生菜单名称检测信息。其中,子步骤S42还包含以下子步骤:

子步骤S521:判断依次提取的各菜单标准名称与识别出的对应的菜单当前名称是否完全一致。若是,进入子步骤S522;若否,进入子步骤S523。

例如,检测装置判断菜单项1对应的菜单标准名称(英文版本)setting与识别出的(1)setting是否完全一致。若两者一致,表示该菜单当前名称正确,若两者不一致,表示该菜单当前名称错误。

于本实施方式中,菜单标准名称(英文版本)setting与识别出的(1)setting完全一致,表示该菜单当前名称检测结果为正确。于其它实施方式中,若识别出的菜单当前名称与对应的菜单标准名称不完全一致,则表示该菜单当前名称检测结果为错误。

子步骤S522:将该菜单当前名称对应的检测结果记录为正确。

子步骤S523:将该菜单当前名称对应的检测结果记录为错误,并返回该菜单当前名称对应的识别字符串。

其中,检测装置分别对各菜单标准名称执行子步骤S521至子步骤S523的判断过程。即,检测装置判断是否满足预设条件:依次提取的各菜单标准名称与识别出的对应的菜单当前名称完全一致;并获取不满足所述预设条件的各菜单当前名称对应的识别字符串,以形成名称检测信息。从而,检测人员可以根据返回的识别字符串快速地找到检测结果为错误的菜单当前名称所在位置,从而方便修改。

本发明的第二实施方式涉及一种菜单名称的自动检测方法,具体流程如图5所示。第二实施方式与第一实施方式大致相同,主要区别之处在于:在本发明第二实施方式中,在步骤S4与步骤S5之间,还包含以下步骤:

步骤S40:建立当前树形数据库,获取的各安装包的各菜单当前名称以树形结构排列并储存于当前树形数据库。

即,检测装置将各APK的各菜单项(每个菜单项对应于多个菜单当前名称)按照层级顺序以树形结构排列并储存,各APK的所有菜单项由一个树形结构表示;即,检测装置为该智能手机建立当前树形数据库,该当前树形数据库中包含各APK对应的当前菜单树。

由于各APK的多个菜单当前名称(菜单项)按照树形排列,即与各APK对应的多个菜单标准名称的排列方式一致,因此,有利于缩小查找时间,加快检测速度。

上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。

本发明第三实施方式涉及一种菜单名称的自动检测单元,如图6所示。自动检测单元1包含:反编译子单元10、菜单名称获取子单元11、检测信息产生子单元12、树形数据库建立子单元13、存储子单元14以及安装包获取子单元15。反编译子单元10连接于安装包获取子单元15与菜单名称获取子单元11之间;存储子单元14连接于菜单名称获取子单元11与检测信息产生子单元12之间;树形数据库建立子单元13连接于存储子单元14。

树形数据库建立子单元13用于建立标准树形数据库,并将该标准树形数据库储存于存储子单元14。其中,预设的各安装包的各菜单标准名称(菜单项)以树形结构排列并储存于所述标准树形数据库。安装包获取子单元15用于从智能手机自动获取该智能手机的各安装包。反编译子单元10用于反编译各安装包以产生各目标文本文件。菜单名称获取子单元11用于从所述各目标文本文件中获取各菜单当前名称,并将获取的多个菜单当前名称储存于存储子单元14。检测信息产生子单元12用于根据预设的各安装包的各菜单标准名称与获取的各安装包的各菜单当前名称产生菜单名称检测信息。

不难发现,本实施方式为与第一实施方式相对应的系统实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。

值得一提的是,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。

本发明的第四实施方式涉及一种菜单名称的自动检测单元,如图7所示。第四实施方式与第三实施方式大致相同,主要区别之处在于:在第三实施方式中,菜单名称获取子单元11连接于存储子单元14。然而,在本发明第四实施方式中,菜单名称获取子单元11连接于树形数据库建立子单元13。即,树形数据库建立子单元13还用于根据获取的多个菜单当前名称建立当前树形数据库,其中,各安装包的各菜单当前名称以树形结构排列并储存于所述当前树形数据库。

不难发现,本实施方式为与第二实施方式相对应的系统实施例,本实施方式可与第二实施方式互相配合实施。第二实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第二实施方式中。

本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号