检测项定位方法

文档序号:6564410阅读:218来源:国知局
专利名称:检测项定位方法
技术领域
本发明涉及计算机领域,尤其涉及一种检测项定位方法。
背景技术
随着产品的日益全球化,很多软件都需要应用到全球各个角 落,因此软件的本地化就显得越来越重要了。软件的本地化是指软 件的人才几界面、提示信息等方面可以适应不同国家的需要,即软件 可以提供多种语言版本。
软件的本地化有很多种方法,下面介绍两种常用的软件本地化 的方法。
第 一种方法是为不同语言的软件版本提供不同的源代码或者 配置文件。采用这种方法,如果需要提供一种新的语言版本或者需 要1奮改部分提示信息,就必须修改源代码或者配置文件,然后重新 编译软件。这种方法比较容易引入新的故障,并且很难实现为客户 定制界面的功能。但是采用这种方法,由于在这种方法中提示信息 或者界面中的标签都是固定写死的,所以响应速度比较快。
第二种方法是只提供一份源代码,然后通过配置文件配置软件 的语言环境,通过资源文件定义提示信息或者界面中各个标签需要 的资源字符串。当界面或者提示信息需要一个字符串,系统提供一 个方法,可以根据传入的资源字符串,然后读取配置文件中配置的语言环境,返回对应于此语言环境的相应字符串。这种方法的优点 在于当需要提供一种新的语言版本或者需要修改部分提示信息时, 只需要^f务改资源文件,不需要重新编译软件,因此引入错误的机会 比较少,并且比较容易为客户实现界面定制功能。同时,由于在这 种方法中提示信息或者界面中的标签都是从配置文件中动态读取 的,所以响应速度比4交十曼。
由于软件的本地化主要集中在界面,而界面对于响应速度的要 求不是很高,所以一般采用第二种方法的软件比较多。采用第二种 方法,软件的灵活性和扩展性都比较好。
目前国内的软件本地化一般需要同时支持中英文版本。多数是 先开发出中文版本,然后以中文版本为基础开发英文版本。这种本
地化软件一般容易出现以下问题
1、 英文版本源代码中直接使用中文字符串。
2、 英文版本的帮助文件中包含中文字符或者中文标点符号。
3、 英文版本的数据库脚本文件中包含中文字符或者中文标点 符号。
4、 英文版本的资源文件中包含中文字符或者中文标点符号。
故障,而这些常见故障通过常规手段,例如用户界面黑盒测试或者 走查代码白盒测试的方式来排查都需要花费大量的人力和时间,并 且很难完全发现所有故障。这样就提出了一种需求,如果能够有一 种方法可以快速定位本地化软件的常见故障,那样就能够大大缩短 本地化软件开发的时间,从而降l氐库欠件开发成本。

发明内容
针对以上一个或多个问题,本发明提供了 一种检测项定位方 法,可以快速定位本地化軟件开发过程中的常见故障,可以将本地 化软件中的常见故障输出到检查结果文件中供开发人员分析、修改 故障。因此可以大大缩短本地化软件开发的时间,从而降低软件开 发成本。
本发明的检测项定位方法包4舌以下步骤步骤一,配置至少一 个检测过滤模块和检测项定位模块的检测项以及检测过滤模块和 检测项定位模块的接口;步骤二,至少一个检测过滤模块顺序对输 入代码逐行进行检测并将符合过滤条件的检测项从代码中过滤,将 过滤后的代码输入到检测项定位模块;以及步骤三,检测项定位模 块对需要检测的检测项进行检测和定位,并生成4企测结果输出文 件,检测结果输出文件包括不符合所有过滤条件的代码的位置和代 码内容。
本发明可以配置以下至少 一种j言息;险测过滤才莫块和^r测项定 位模块检查的文件类型和不同文件类型对应的一个或多个检查项。
本发明通过新增类对任何文件类型进行配置。
检测项定位方法用于定位代码中的中文字符和/或中文标点符 号。至少一个检测过滤4莫块的检测项为以下至少一种注释符之间 的多行内容和注释符后面的单行内容。检测项定位模块的检测项为 中文字符和/或中文标点符号。
本发明通过配置文件定制某种文件类型的4企测类,在检测类可 以定制多个检测模块来检查对应文件类型中常见的本地化故障。本 发明适合于各种需要进行本地化处理的软件开发项目。


此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
在附图中
图1是根据本发明的检测项定位系统的框图2是才艮据本发明的检测项定位方法的流程图3是才艮据本发明的实施例的启动时解析配置文件的流程图4是才艮据本发明的实施例的判断是否包含/* */的流程图5是根据本发明的实施例的判断在代码最前面是否为〃的流 程图6是才艮据本发明的实施例的判断在代码后面是否有〃的流程 图;以及
图7是根据本发明的实施例的解析检查结果输出对象,输出检 查结果文件的流程图。
具体实施例方式
下面参考附图,详细说明本发明的具体实施方式

图1是根据本发明的检测项定位系统的框图。如图l所示,本 发明的检测项定位系统包括定制模块102,用于为不同种类的文 件定义至少 一个检测过滤一莫块和检测项定位;漠块;至少 一个检测过 滤模块104,以管道方式进行连接,用于分别对输入代码进行检测 并将符合过滤条件的代码过滤掉,并生成检测结果输出文件,该检
测结果输出文件中包括不符合所有过滤条件的代码的位置和代码
内容以供开发人员修改本地化故障;以及检测项定位模块106,用 于对需要检测的检测项进4于检测和定位,并生成检测结果输出文 件,检测结果输出文件包括不符合所有过滤条件的代码的位置和代 码内容。
定制模块可以配置以下至少 一种信息检测过滤模块和检测项 定位才莫块检查的文件类型和不同文件类型对应的一个或多个冲企查 项。定制才莫块可以通过新增类对任何文件类型进4于配置。至少一个 检测过滤模块的检测项为以下至少 一种注释符之间的多行内容和 注释符后面的单行内容。检测项定位模块的检测项为中文字符和/ 或中文标点符号。
图2是4艮据本发明的检测项定位方法的流程图。如图2所示, 本发明的检测项定位方法包括以下步骤步骤S202,为不同类型的 文件定义至少一个检测过滤模块和检测项定位模块;步骤S204,至 少一个检测过滤4莫块顺序对输入代码进^于^r测并将符合过滤条件 的代码过滤,将过滤后的代码输入到检测项定位才莫块;以及步骤 S206,检测项定位模块对需要检测的检测项进行检测和定位,并生 成检测结果输出文件,所述检测结果输出文件包括不符合所有过滤 条件的代码的位置和代码内容以供开发人员修改本地化故障。
本发明可以配置以下至少 一种〗言息4企测过滤才莫块和检测项定 位模块检查的文件类型和不同文件类型对应的一个或多个检查项。
本发明通过新增类对任何文件类型进行配置。
检测项定位系统用于定位^码中的中文字符和/或中文标点符号。至少一个检测过滤才莫块的^r测项为以下至少一种注释符之间 的多^亍内容和注释符后面的单4亍内容。检测项定位模块的才企测项为 中文字符和/或中文标点符号。
根据本发明的一个实施例,本发明提供了一种快速定位软件本 地化中常见故障的方法。通过配置文件定制某种文件类型的检测 类,在才企测类可以定制多个检测才莫块来才企查对应文件类型中常见的 本地化故障。
本发明可以对指定目录下的源代码、文本文件、HTML、 XML 等类型的文件进行中文符号或者中文字符串的检查,对不同类型文 件的判断方法可以通过不同的检测类来实现,所以可以很容易地扩 展支持新增加的文件类型,检查结果按照一定的格式输出到结果文 件,从而方便用户的查看和纠错。
首先分析上文提到的常见故障,这些常见故障在本地化软件中 的很多种文件类型中都普遍存在。而不同的文件类型存在不同的注 释标志,由于注释行中的中文字符或者中文标点符号不算是故障, 这样就要求为每种文件类型定义不同的检测常见故障的方法。
对于本地化文件中的常见故障,定义了多个才莫块来斥企测,这些 模块顺序执行。某个检测模块通过就说明这个字符串是合法的。就 不用流入下一个检测模块了 。
常见的检测模块有以下三类
1、检测注释多行模块。处于注释符间的多行内容都可以通过 检测。
2、 检测注释单4亍;漠块。处于注释符后面的单4亍内容可以通过 检测。
3、 检测中文字符或者中文标点符号冲莫块,如果检测字符串中 没有中文字符或者中文标点符号可以通过冲企测。
不同类型的文件可以不同的检测模块,可以通过配置文件来为 不同的文件类型配置需要的检测模块,每种文件类型可以多个检测 模块,如果某种文件类型需要使用以上三种常见的检测模块之外的 检测功能,可以通过实现接口的方式来创建一个新的检测模块。
下面介绍本发明的具体步骤,本发明提供了可灵活配置并且可 高度扩展的方案,包括以下步骤
(a) 定义一个检测才莫块的接口 ,接口中包括两个方法。 一个 方法用于初始化,另外一个方法用于对输入的字符串进行检测。所 有的检测模块都需要实现这个接口 。
(b) 定义配置文件,配置文件中为某种文件类型定义^r测类, 这些类都需要实现步骤(a)中的接口。还需要为不同的文件类型 定义不同的检查项。不同的文件类型可以共用某个才企测类,最后配 指文件中还定义输出检测结果文件的格式和名称。
(c) 程序启动时,将配置文件的内容全部加载到内存空间中, 然后为不同文件类型的检测类构造一个实例,然后调用实例的初始 化方法,在初始化方法中,根据配置文件中的检测模块配置信息来 设置检测模块开关项。如图3所示,启动时解析配置文件的流程包 括启动自动检测软件(S302);解析配置文件,将所有的配置信 息加栽到内存中(S304);弹出界面供用户输入需要检测的目录以 及文件类型(S306)。
(d) 弹出界面供用户选择需要检查的目录。
(e) 对用户选中的目录,通过递归方式逐个实现^f每一个符 合检查范围的文件的检查任务。
(f )根据文件类型从内存中查找相应的文件检测类对象实例逐 行对文件的内容进行检测。
(g)由于对某种类型文件可能配置有多种检查项,多种检查 项之间采用管道方式来顺序检查,每项检查项任务输出符合要求的 代码内容和代码行号,同时该输出项作为输入项流入下一个检查 项。
(h ) —般来说检测中文字符或者中文标点符号模块都是最后 一项检测内容,当其他的检查项都检查完后,对于最后一个检查项 流出的符合规范的代码逐行检查是否包括中文字符串,如果包含就 把此行内容和行号记录下来,最后流出 一个包含所有不符合本地化 软件失见范的代码内容和代码行号。
(i)对于上面流出的内容,逐个解析后最后输出一个检查结果 文件。输出文件中针对每个文件都列出不符合的内容,包括错误行 号和错误内容。
配置文件格式考虑到配置文件的扩展性,配置文件采用xml 文件格式。下面简单介绍配置文件的各个配置项。
FILETYPE:文4牛类型
SUFFIX:文^f牛后乡叕名
CLASSNAME:实现该中文件类型的类名。CHECKMODULE:需要进行检测的模块 OUTPUTFILE:输出文件名
下面以WCDMA网管系统为例,详细介绍本发明的实施方法。
WCDMA网管系统采用java语言作为编程语言,本地化主要涉 及到帮助文件html;配置文件xml;数据库脚本文件sql;以及源代 码文件java。
下面重点介绍如何实现java文件的各个检查项的功能。其他文 件类型的检测方法也都类似,但是注释符等略有不同,只要稍微做 一些调整就可以实现对其他文件类型的检测了 。
本地化软件中最常见的故障就是英文版本中的源代码中直接 使用中文字符或者中文标点符号,这会造成在英文操作系统或者其 它语言搮作系统中显示为乱码的故障。
本方法的实现原理就是发现源代码中的中文字符或者中文标 点符号,但是需要注意对于Java源代码中注释部分中的中文字符或 者中文标点符号不属于检查范围。
Java源代码中的注释行有以下几种形式。
1、 /*和*/之间的内容;
2、 行起始字符为//的内容;
3、 行结尾字符为//的内容;
针对这三种注释形式,需要做不同的处理,这属于三个处理模块。
1、 对于/*类型注释,首先表示此行为/*行,然后查询此行是否 有*/,如果有,将此行为/*行的标记清除掉。同时此行内容为注释
行,如果此行中没有v,则检查下一行,直到检查到有*/的行,处 于/*和*/之间的内容全部属于注释行。如图4所示,示出了判断是 否包含/**/的流程图。解析流入的Vector对象,循环获取所有的元 素,得到所有的/*和*/字符(S402);循环获取所有的文件内容,处 于/*和*/之间的内容属于注释,不输出到检查结果Vector对象中 (S404); /*和*/需要成对出现,如果/*后面接着/*,则将后面的/* 丢掉,直到找到下一个*/为止算是一对/*和*/ (S406);对于不属于 注释的代码内容和代码行全部输出到Vector对象中,作为下一个检 查项的流入对象(S408)。
2、 针对在行开始处为〃注释,此行为注释行。图5是根据本发 明的实施例的判断在代码最前面是否为〃的流程图。如图5所示, 包括以下步骤解析流入的Vector对象,循环获取所有的元素,如 果该4于^C码除去空格后最前面包含//,则此4亍属于注释,不输出到 ;险查结果Vector对象中(S502 );对于不属于注释的代码内容和代 码4亍全部输出到Vector对象中,作为下一个4全查项的流入对象
(S504 )。
3、 针对在行结束处后面跟着//,此行不算注释行过滤。但是需 要将〃后面的内容过滤掉,这一行代码还属于检查范围。图6是根 据本发明的实施例的判断在代码后面是否有〃的流程图。如图6所 示,包括以下步骤解析流入的Vector对象,循环获取所有的元素, 如果该行代码后面包含//,则此行包含注释信息(S602);对于包含 注释信息的代码行,取出在最前面的〃之前的内容作为没有注释信 息的代码内容,并和代码行一起输出到Vector对象中(S604);对 于不属于注释的代码内容和代码行全部输出到Vector对象中,作为 下一个检查项的流入对象(S606)。
对于前面两项检测中为注释4亍的内容才尤不需要检测其中是否 包含中文字符或者中文标点符号。但是对于最后一种情况,需要对 过滤掉〃后面的内容进行检测。
对于不属于注释行的内容,需要检测其中是否包括中文字符或
者中文标点符号,如果包含说明该行内容#:测不通过。
将所有不符合的内容和行号输出到Vector对象中,对象中的每 个元素包含错误内容和错误行号信息。图7是根据本发明的实施例 的解析检查结果输出对象,输出检查结果文件的流程图。如图7所 示,包括以下步骤解析通过所有4全查项之后流出的Vector对象 (S702);循环逐行读取通过所有检查项的代码,判断是否包含中 文字符串,如果包含,则将此行的行号和内容记录下来。所有不合 法的代码内容和代码行号都被记录到一个Vector对象中(S704); 将上面Vector对象中的错误行号和错误内容全部输出到检查结果文 件中(S706)。
最后对上面得到的Vector对象逐个元素进行解析,将解析后的 内容输出到检查结果文件中供开发人员分析、定位故障。
只十于其 <也类型文件的处理也可以参照这个方法。 本发明的实施例通过以下过程实现了故障的定位
(a)配置文件的格式,其中,可以定义4企查哪些文件类型, 可以为不同文件类型定义不同的4企查项。通过配置文件,实现高度 的灵活性和可扩展性,可以通过新增类来实现对任何文件类型的检 查。可以通过定义实现4妄口或者继承类来实现某种新增文件类型的 检查功能。
(b) 对于同一种文件类型的多种检查项,采用管道的方式, 每一项检查都屏蔽掉不符合本检查项的内容,然后将符合的内容和 符号保存到一个Vector对象中,作为下一个检查项的输入。
(c) 对一个文件的全部检查项都检查完毕后,解析最后得到 的所有符合检查范围的内容,从中发现包括中文字符串的行号,然后将行号和内容都记录到一个Vector对象中。并将所有文件的才企查 结果都输出到一个文件中,包括文件名、错误内容和错误行号。
本发明可以快速定位本地化软件中的常见故障。实现这种方法 的软件可以将本地化软件中的常见故障输出到检查结果文件中供 开发人员分析、修改故障。因此可以大大缩短本地化软件开发的时 间,从而降低软件开发成本。
以上所述仅为本发明的优选实施例而已,并不用于限制本发 明,对于本领域的技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进 等,均应包含在本发明的保护范围之内。
权利要求
1.一种检测项定位方法,其特征在于,所述方法包括以下步骤步骤一,配置至少一个检测过滤模块和检测项定位模块的检测项以及所述检测过滤模块和所述检测项定位模块的接口;步骤二,所述至少一个检测过滤模块顺序对输入代码逐行进行检测并将符合过滤条件的检测项从所述代码中过滤,将过滤后的代码输入到所述检测项定位模块;以及步骤三,所述检测项定位模块对需要检测的检测项进行检测和定位,并生成检测结果输出文件,所述检测结果输出文件包括不符合所有过滤条件的代码的位置和代码内容。
2. 根据权利要求1所述的检测项定位方法,其特征在于,配置以 下至少 一种信息所述检测过滤^莫块和所述检测项定位^莫块才全 查的文件类型和所述不同文件类型对应的一个或多个才全查项。
3. 根据权利要求1所述的检测项定位方法,其特征在于,通过新 增类对4壬4可文件类型进4于配置。
4. 根据权利要求1至3中任一项所述的检测项定位方法,其特征/或中文标点符号。
5. 根据权利要求4所述的检测项定位方法,其特征在于,所述至 少 一个检测过滤模块的检测项为以下至少 一种注释符之间的 多4亍内容和注释符后面的单4亍内容。
6. 根据权利要求4所述的检测项定位方法,其特征在于,所述检 测项定位模块的检测项为中文字符和/或中文标点符号。
全文摘要
本发明提供了一种检测项定位方法,该方法包括以下步骤步骤一,为不同类型的文件配置至少一个检测过滤模块和检测项定位模块;步骤二,至少一个检测过滤模块顺序对输入代码进行检测并将检测项从代码中过滤,将过滤后的代码输入到检测项定位模块;以及步骤三,检测项定位模块对需要检测的检测项进行检测和定位,并存储检测项在代码中的位置和代码内容。本发明通过配置文件定制某种文件类型的检测类,在检测类可以定制多个检测模块来检查对应文件类型中常见的本地化故障。
文档编号G06F11/36GK101201790SQ20061016815
公开日2008年6月18日 申请日期2006年12月15日 优先权日2006年12月15日
发明者翁在新 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1