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

文档序号:9261308阅读:220来源:国知局
菜单名称的自动检测方法及自动检测单元的制作方法
【技术领域】
[0001]本发明涉及自动化测试领域,特别涉及一种菜单名称的自动检测方法及自动检测单元。
【背景技术】
[0002]随着计算机技术的发展,智能手机的功能越来越强大;为适应市场需求,大多数智能手机都支持多种语言版本,即,智能手机的菜单文本内预设有多个语言版本的菜单名称。
[0003]为确保每种语言下各应用菜单的描述及功能正确,手机出厂前需要对各语言版本的菜单名称进行检测。目前,通常采用人工检测的方式对智能手机内的各语言版本的菜单名称进行检测;即,测试人员需要将智能手机设置成各语言版本后显示出来的各菜单名称与该语言版本的标准菜单名称进行比对以判断是否准确。上述人工遍历的方式不仅需要耗费大量时间及人力成本,效率极其低下;而且由于测试人员语言能力或细心程度不够,还会降低测试结果的准确性。

【发明内容】

[0004]本发明的目的在于提供一种菜单名称的自动检测方法及自动检测单元,不仅使得菜单名称的检测变得省时省力,大幅度降低了测试成本;而且提高了检测的准确性。
[0005]为解决上述技术问题,本发明的实施方式提供了一种菜单名称的自动检测方法,包含以下步骤:反编译各安装包以产生各目标文本文件;从所述各目标文本文件中获取各菜单当前名称;根据获取的各安装包的各菜单当前名称与预设的各安装包的各菜单标准名称产生菜单名称检测信息。
[0006]本发明的实施方式还提供了一种菜单名称的自动检测单元,包含:反编译子单元,用于反编译各安装包以产生各目标文本文件;菜单名称获取子单元,用于从所述各目标文本文件中获取各菜单当前名称;检测信息产生子单元,用于根据预设的各安装包的各菜单标准名称与获取的各安装包的各菜单当前名称产生菜单名称检测信息。
[0007]本发明实施方式相对于现有技术而言,将通过反编译方式获取的各安装包的各菜单当前名称与预设的各安装包的各菜单标准名称以产生菜单名称检测信息,不仅使得菜单名称的检测变得省时省力,大幅度降低了测试成本,而且提高了检测的准确性。
[0008]另外,在反编译各安装包以产生目标文本文件的步骤之前,还包含以下步骤:建立标准树形数据库,所述预设的各安装包的各菜单标准名称以树形结构排列并储存于所述标准树形数据库。将各菜单标准名称以树形结构排列,有利于按顺序逐个比对。
[0009]另外,在从所述各目标文本文件中获取各菜单当前名称的步骤之后,还包含以下步骤:建立当前树形数据库,所述获取的各安装包的各菜单当前名称以树形结构排列并储存于所述当前树形数据库。将各菜单当前名称以树形结构排列,有利于缩小查找时间,加快检测速度。
[0010]另外,反编译各安装包以产生各目标文本文件的步骤,还包含以下子步骤:解压缩各安装包;提取解压缩后的各安装包中的目标项;反编译提取的各目标项以产生各目标文本文件。仅对提取的目标项进行反编译,可以缩短反编译时间,进一步加快检测速度。
【附图说明】
[0011]图1是根据本发明第一实施方式的菜单名称的自动检测方法的流程图;
[0012]图2是根据本发明第一实施方式的标准树形数据库中的安装包APKl对应的标准菜单树的示意图。
[0013]图3是根据本发明第一实施方式的步骤S3的具体流程图;
[0014]图4是根据本发明第一实施方式的步骤S5的具体流程图;
[0015]图5是根据本发明第二实施方式的菜单名称的自动检测方法的流程图;
[0016]图6是根据本发明第三实施方式的菜单名称的自动检测单元的方框图;
[0017]图7是根据本发明第四实施方式的菜单名称的自动检测单元的方框图。
【具体实施方式】
[0018]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
[0019]本发明的第一实施方式涉及一种菜单名称的自动检测方法,应用于一检测装置(例如为个人电脑),该检测装置用于自动检测移动终端的菜单名称,移动终端例如为智能手机;然而,本实施方式对此不作任何限制,检测装置亦可以检测其自身的各安装包的菜单名称。
[0020]如图1至4所示,本实施方式的菜单名称的自动检测方法包含以下步骤:
[0021]步骤S1:建立标准树形数据库,预设的各安装包APK的各菜单标准名称以树形结构排列并储存于标准树形数据库。
[0022]具体而言,智能手机内包含多个APK,例如多个应用APK。各APK包含多级菜单且各级菜单包含至少一个菜单项,根据智能手机支持的多种语言版本的需求,各菜单项对应于多个菜单标准名称。例如,在某个APK中,第一级菜单包含的一个菜单项的中文版本的菜单标准名称为“设置”,且该菜单项还对应于英文、德文等版本的菜单标准名称,以满足该智能手机工作于多种语言环境的需要。即,各菜单项对应于多个菜单标准名称,该多个菜单标准名称对应于多个语言版本。
[0023]检测装置将各APK的各菜单项(每个菜单项对应于多个菜单标准名称)按照菜单层级顺序以树形结构排列并储存,各APK的所有菜单项由一个树形结构表示;即,检测装置为该智能手机建立标准树形数据库,该标准树形数据库中包含各APK对应的标准菜单树。其中,标准菜单树中的各菜单标准名称(即各菜单项)具有对应的层级标志符。
[0024]如图2所示为标准树形数据库中的安装包APKl对应的标准菜单树,图2中的菜单项I至8仅为示意性的文字说明,各菜单项对应于多个菜单标准名称(多种语言版本,例如包含三个语言版本名称:中文名称、英文名称、德文名称)。即,检测装置储存每个菜单项的位置实质储存的内容为该菜单项对应的多个菜单标准名称。需要说明的是,图2中仅为举例说明,本实施方式并不以此为限。
[0025]步骤S2:自动获取各安装包。
[0026]当检测装置侦测到有智能手机连接时,自动获取该智能手机中的各APK。例如,检测装置可以使用adb pull命令将手机中每个应用APK导出至检测装置中。然而,本实施方式对此不作任何限制;检测装置亦可自动获取其自身的各APK以对其自身的各菜单名称进行检测。
[0027]步骤S3:反编译各安装包以产生各目标文本文件。其中,步骤S3包含以下子步骤:
[0028]子步骤S31:解压缩各安装包。
[0029]例如,使用解压工具winzip或winrar解压打开各APK,解压缩后的各APK包含多个文件项。
[0030]子步骤S32:提取解压缩后的各安装包中的目标项。
[0031]具体而言,多个菜单当前名称实质上储存在解压缩后的APK的其中一个文件项内,本实施方式中将储存有多个菜单当前名称的文件项称之为目标项。检测装置从解压缩后的各APK中提取该目标项。
[0032]本实施方式中的智能手机采用安卓系统,因此本实施方式中所述的目标项为class, dex文件;然而,本实施方式对此不作任何限制;当智能手机采用其它操作系统时,APK中的目标项可能会是其它文件格式。
[0033]子步骤S33:反编译提取的各目标项以产生各目标文本文件。
[0034]检测装置利用dexdump工具把各APK中的目标项class, dex文件dump成文本格式。
[0035]步骤S4:从各目标文本文件中获取各菜单当前名称。
[0036]检测装置从被dump成文本格式的目标项class, dex中获取多个菜单当前名称;获取的多个菜单当前名称包含该APK中所有菜单项对应的菜单当前名称。
[0037]其中,各菜单当前名称对应于一个识别字符串,该识别字符串中包含层级标志符。例如,识别字符串包含六个字符,其中前两位字符被设定为层级标志符;以上仅为举例说明,本实施方式对识别字符串的字符数目以及层级标识符的设定不作任何限制。因此,同一层级菜单项对应的各菜单当前名称所对应的识别字符串包含相同的层级标志符。
[0038]步骤S5:根据获取的各安装包的各菜单当前名称与预设的各安装包的各菜单标准名称产生菜单名称检测信息。其中,步骤S5包含以下子步骤:
[0039]子步骤S51:识别按照树形结构的层级顺序依次提取的各安装包的各菜单标准名称所对应的菜单当前名称。其中,子步骤S51还包含以下子步骤:
[0040]子步骤S511:获取与各层级的各菜单标准名称至少部分相同的至少一菜单当前名称。
[0041]检测装置对于各APK的多个菜单当前名称的检测顺序为:按照标准数据库中该APK对应的菜单标准树的层级顺序。如下为以图2所示的APKl对应的标准菜单树为例进行说明。
[0042]首先,检测装置获取第一层级中的菜单项I对应的各菜单标准名称。其次,检测装置在获取的APKl对应的多个菜单当前名称中查找与该菜单标准名称至少部分相同的菜单标准名称,其中,所述“至少部分相同”的具体含义可以根据需要设定。本实施方式中将“至少部分相同”设定为至少四个的字母相同。
[0043]例如,检测装置当前正检测菜单项I对应的一个英文版本的菜单标准名称,假设该菜单标准名称为setting ;其中,该菜单标准名称setting位于第一层级,即对应的层级标志符为01。检测装置从该APKl对应的多个菜单当前名称获取了 3个至少部分相同的菜单当前名称,分别被标志为序号(I)至(3),表示如下:(I) setting、(2) setting、(3) putting。
[0044]子步骤S512:分析获取的各菜单当前名称对应的识别字符串以辨别出包含该菜单标准名称对应的层级标志符的识别字符串,将辨别出的识别字符串所对应的菜单当前名称对应于该菜单标准名称。
[0045]检测装置分别获取上述序号为(I)至(3)的三个菜单当前名称对应的识别字符串,并判断各识别字符串中的层级标志符与该菜单标准
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1