CN101154182A - 一种语法检查器 - Google Patents
一种语法检查器 Download PDFInfo
- Publication number
- CN101154182A CN101154182A CNA2006101133491A CN200610113349A CN101154182A CN 101154182 A CN101154182 A CN 101154182A CN A2006101133491 A CNA2006101133491 A CN A2006101133491A CN 200610113349 A CN200610113349 A CN 200610113349A CN 101154182 A CN101154182 A CN 101154182A
- Authority
- CN
- China
- Prior art keywords
- grammar
- file
- grammar checker
- option
- rule
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明提出一种语法检查器,用于自动测试中对驱动文件进行语法检查,所述语法检查器使用正则表达式对所述驱动文件进行解析,并且使用可扩展标识语言存储所述正则表达式。其中所述可扩展标识语言包含至少一个选项,所述选项包含至少一个规则和至少一个应用所述规则的示例。所述选项的所述示例与和所述示例处于同一选项下的规则相匹配,并且与和所述示例处于不同选项下的规则不相匹配。本发明能够检查出驱动文件中的语法错误,将经过修改的驱动文件在自动测试工具中运行,这样就可以保证运行时不会再出现语法错误,提高测试速度,缩短测试时间。
Description
技术领域
本发明涉及一种语法检查器,尤其是一种自动测试中用于对驱动文件进行检查的语法检查器。
背景技术
在一个项目的开发过程中,软件测试的工作量所占的比例很大(可以占到总开发时间的40%到60%),随着软件测试技术的发展,越来越多的测试采用自动测试(Automation Test)来进行,采用自动测试会提高整个开发工作的质量、节约开发成本、缩短开发周期。
通常对于一个完整的测试场景(Scenario)而言,需要开发若干测试例(Test Case)。图1是现有技术中的一种自动测试流程图。在步骤101中,测试人员根据测试场景的需求(Requirement)编写测试例,测试例要尽可能覆盖测试场景可能发生的所有情况。在步骤102中,测试人员将上述测试例写入驱动文件。在步骤104中,将上述驱动文件在自动测试工具QTP(Quick Test Professional)中运行。在步骤105中产生运行错误的提示。在步骤106中针对步骤105出现的错误提示进行分析评估,并且修改驱动文件中的错误。
在上述步骤105中产生错误提示是由于在步骤102中,测试人员将测试例写入驱动文件(DriverFile)时因疏忽、拼写错误等原因而产生语法错误(Syntax Error),或者是由于测试例本身存在逻辑错误(Logical Error),以及由于其他不属于上述两者的其他原因导致的错误。而且,在测试过程中的测试需求经常发生变更,测试人员使用的测试例也要随需求而做相应调整,即发生变更,例如增加新的测试例,改变原有的测试例等。当测试人员将变更后的测试例写入驱动文件时,就可能因上述的疏忽、拼写错误等原因而产生语法错误。也就是说,由于需求的变更导致出现语法错误是不可避免的。
当驱动文件在自动测试工具QTP中运行时,如果存在一条语法错误就会产生至少一个错误提示,并且在屏幕上弹出该错误提示,此时运行的测试程序就会中止,等待测试人员解决该语法错误。如果测试人员因故不在测试现场,就会耽误测试程序的运行、增加测试时间。
另外,如上所述,产生错误提示原因并不唯一。在运行结束后针对出现的错误提示进行分析评估时,需要逐一找出每个错误提示的原因,而多一个产生错误提示的原因就增加一份找出错误原因的工作量,这样也会增加测试的时间。
发明内容
因此,本发明的主要目的在于提供一种语法检查器,在自动测试的测试流程中使用该语法检查器对驱动文件进行语法检查,测试人员根据检查结果对检查到的语法错误进行修改,使得经过语法检查的驱动文件中不再存在语法错误,在自动测试工具中运行时不再提示出现语法错误,从而提高测试速度、减少测试时间。
为达到上述目的,本发明的技术方案具体是这样实现的:一种语法检查器,用于自动测试中对驱动文件进行语法检查,所述语法检查器使用正则表达式对所述驱动文件进行解析,并且使用可扩展标识语言存储所述正则表达式。
根据本发明的一个方面,首先将所述驱动文件读取到一可扩展标识语言文件中,然后所述语法检查器使用所述正则表达式对所述可扩展标识语言文件进行解析。
根据本发明的一个方面,所述可扩展标识语言包含至少一个选项,所述选项包含至少一个规则和至少一个应用所述规则的示例。
根据本发明的一个方面,所述选项的所述示例与和所述示例处于同一选项下的规则相匹配,并且与和所述示例处于不同选项下的规则不相匹配。
根据本发明的一个方面,所述可扩展标识语言包含一个警告选项。
根据本发明的一个方面,所述语法检查器产生至少一个错误报告,该错误报告可以被显示在用户界面上,或者,该错误报告被输出到一个统计文件、例如EXCEL文件中。
可见,本发明所提供的一种语法检查器具有以下的优点和特点:
(1)在测试人员将根据需求编写或者更改的测试例写入驱动文件之后,应用本发明的语法检查器对驱动文件进行检查,检查出所有的语法错误后针对所述语法的错误进行修改,将经过修改的驱动文件在自动测试工具中运行,这样就可以保证运行时不会再出现语法错误,不会再出现语法错误提示,测试人员也不必针对该弹出的语法错误进行操作,因此提高了测试速度,缩短了测试时间。
(2)由于采用上述方法可以保证运行时不会再出现语法错误,因此在运行结束后针对出现的错误提示进行分析评估时,不再需要考虑语法错误的原因,从而降低了找出错误原因的工作量,进一步缩短了测试时间。
(3)本发明方法的语法检查器中,对于每个示例只允许使用与所述示例同一个选项下的规则进行检查,而不允许使用与所述示例处于不同选项下的规则进行检查,因此能够保证语法检查器自身的语法正确性,具有良好的自我检查功能。
(4)本发明方法的语法检查器的结构使得很容易在该检查器中添加新的语法,对驱动文件中添加的新语法进行检查,因此具有很好的可扩展性。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的描述,其中:
图1是现有技术中的一种自动测试流程图。
图2是将本发明的语法检查器应用到图1的自动测试过程的流程图。
图3是应用本发明的语法检查器的进行呼叫拨号的实施例。
具体实施方式
图2是将本发明的语法检查器应用到图1的自动测试过程的流程图,其测试的流程如下:在步骤201中,测试人员根据测试场景的需求编写测试例,测试例要尽可能覆盖测试场景可能发生的所有情况。由于在测试过程中的测试需求经常发生变更,测试人员使用的测试例也要随需求发生变更,例如增加新的测试例,改变原有的测试例。
在步骤202中,测试人员将上述根据需求编写或者更改的测试例写入驱动文件。
在步骤203中,测试人员使用本发明的语法检查器对驱动文件进行语法检查,检查出驱动文件中所有的语法错误,测试人员针对所述语法错误进行修改,最后在驱动文件中的测试例是不存在语法错误的测试例。
在步骤204中,将上述驱动文件在自动测试工具QTP中运行。
在步骤205中产生运行错误的提示。
在步骤206中针对步骤205出现的错误提示进行评价,并且修改驱动文件中的错误。由于已经排除了出现语法错误的可能,因此此时产生错误的原因通常是由于测试例本身的逻辑错误,以及其他不属于语法错误与逻辑错误的其他原因。
本发明提出的语法检查器结构如下段所示,该语法检查器表示对通信中的呼叫拨号测试例进行语法检查,其中包含一个正则表达式<![CDATA[^[A-N]>*((O|o)k)?$]]>,语法检查器使用该正则表达式对驱动文件进行解析,并且,该正则表达式是使用可扩展标识语言XML进行存储。
<groups>
<group id=″dial″>
<item>
<sample>
<l[CDATA[B>>]]>
</sample>
<regex>
<![CDATA[^[A-N]>*((O|o)k)?$]]>
</regex>
</item>
</group>
</groups>
其中,<groups>是XML语言的标记开始,</groups>是XML语言的标记结束。<group id=″dial″>是表示该语法检查器所检查的是呼叫拨号。该语法检查器包含一个选项item,<item>表示选项开始,</item>表示选项结束。在该选项中包含一个用正则表达式表示的规则regex和一个应用所述规则的示例sample。类似地,<regex>表示规则开始,</regex>表示规则结束,</sample>表示示例开始,</sample>表示示例结束。
在上述表示规则<![CDATA[^[A-N]>*((O|o)k)?$]]>中,CDATA是可扩展标识语言XML的属性,表示它所包含的内容应作为普通文本来处理。在正则表达式^[A-N]>*((O|o)k)?$中,^表示匹配字符串的开始,[A-N]表示呼叫拨号可以选择A到N中的任何字符,*表示之前的>可以存在至少一个,((O|o)k)表示呼叫拨号时表示确认的Ok中,O既可以采用大写字符O,也可以使用小写字符o,?表示((O|o)k)所表达的内容可以有一个或者零个,$表示匹配字符串的结束。在上述呼叫拨号测试例中,上述示例sample只能用与该示例sample同一个选项item下的规则regex来检查(或称匹配),并且与和所述示例处于不同选项下的规则不相匹配。
根据本发明的一个方面,所述可扩展标识语言包含如下所示的警告选项。
<regex>
<![CDATA[^[A-N]>*((O|o)k)?$]]>
<exact>
<![CDATA[^[A-N]>*(ok)?$]]>
</exact>
</regex>
上段表明在用规则regex进行检查时,如果呼叫拨号测试例中表示确认的用小写的ok,则是最正确的匹配,如果呼叫拨号测试例中表示确认的用大写的Ok,则虽然不属于错误,但并不属于最正确的匹配,此时可以向测试人员发出一个警告提示。
根据本发明的一个方面,将所述可扩展标识语言数据输出到一个统计表格中。根据本发明的一个方面,所述统计表格为excel表。
图3是应用本发明的语法检查器的进行呼叫拨号的实施例。本实施例中的驱动文件包含两部分内容,一部分是配置,另一部分为呼叫场景。语法检查器只是检查呼叫场景中的脚本部分。
在图3中,首先,语法检查器调用一个Excel解析器JXL解析Excel格式的驱动文件,并且上述语法检查器将驱动文件中的信息输出到可扩展标识语言XML文件中。接着,语法检查器读取这些可扩展标识语言XML文件中的所有信息。上述的Excel解析器JXL是一个语法检查器使用的第三方软件包,作用是负责读取Excel文档。然后,语法检查器从格式为XML的语法仓库中读取正则表达式。接着,在系统配置文件中,用户可以自定义在驱动文件中要检查或者忽略的行的规则,要检查的列。语法检查器调用一个轻量级J2EE容器SpringFramework将系统配置转化为主程序易于操作的Java对象。再后,语法检查器根据系统配置,使用语法仓库中的正则表达式来检查呼叫语法的有效性。最后,语法检查器产生一个错误报告,该报告可以直接显示在用户界面上,也可以输出到一个统计文件、例如Excel文件中。根据需要,通过修改语法仓库,语法检查器可以检查任何具有一定格式的文本。
本发明的有益效果在于,在测试人员将根据需求编写或者更改的测试例写入驱动文件之后,应用本发明的语法检查器对驱动文件进行检查,检查出所有的语法错误后针对所述语法的错误进行修改,将经过修改的驱动文件在自动测试工具中运行,这样就可以保证运行时不会再出现语法错误,不会再出现语法错误提示,测试人员也不必针对该弹出的语法错误进行操作,因此提高了测试速度,缩短了测试时间。而且,由于采用上述方法可以保证运行时不会再出现语法错误,因此在运行结束后针对出现的错误提示进行分析评估时,不再需要考虑语法错误的原因,从而降低了找出错误原因的工作量,进一步缩短了测试时间。
以上具体实施方式仅用于说明本发明,而非用于限定本发明。
Claims (9)
1.一种语法检查器,用于自动测试中对驱动文件进行语法检查,其特征在于:所述语法检查器使用正则表达式对所述驱动文件进行解析,并且使用可扩展标识语言存储所述正则表达式。
2.根据权利要求1所述的一种语法检查器,其特征在于:首先将所述驱动文件读取到一可扩展标识语言文件中,然后所述语法检查器使用所述正则表达式对所述可扩展标识语言文件进行解析。
3.根据权利要求1所述的一种语法检查器,其特征在于:所述可扩展标识语言包含至少一个选项,所述选项包含至少一个规则和至少一个应用所述规则的示例。
4.根据权利要求3所述的一种语法检查器,其特征在于:所述选项的所述示例与和所述示例处于同一选项下的规则相匹配,并且与和所述示例处于不同选项下的规则不相匹配。
5.根据权利要求3或4所述的一种语法检查器,其特征在于:所述可扩展标识语言包含一个警告选项。
6.根据权利要求1至4之一所述的一种语法检查器,其特征在于:所述语法检查器产生至少一个错误报告。
7.根据权利要求6所述的一种语法检查器,其特征在于:将所述错误报告显示在用户界面上。
8.根据权利要求6所述的一种语法检查器,其特征在于:将所述错误报告输出到一个统计文件中。
9.根据权利要求8所述的一种语法检查器,其特征在于:所述统计文件为EXCEL文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101133491A CN101154182A (zh) | 2006-09-25 | 2006-09-25 | 一种语法检查器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101133491A CN101154182A (zh) | 2006-09-25 | 2006-09-25 | 一种语法检查器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101154182A true CN101154182A (zh) | 2008-04-02 |
Family
ID=39255855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101133491A Pending CN101154182A (zh) | 2006-09-25 | 2006-09-25 | 一种语法检查器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101154182A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101901268A (zh) * | 2010-08-02 | 2010-12-01 | 华为技术有限公司 | 一种规则匹配方法及装置 |
CN101989224A (zh) * | 2009-07-31 | 2011-03-23 | 西门子(中国)有限公司 | 用于生成目标对象的测试值的方法和装置 |
-
2006
- 2006-09-25 CN CNA2006101133491A patent/CN101154182A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101989224A (zh) * | 2009-07-31 | 2011-03-23 | 西门子(中国)有限公司 | 用于生成目标对象的测试值的方法和装置 |
CN101989224B (zh) * | 2009-07-31 | 2013-04-03 | 西门子(中国)有限公司 | 用于生成目标对象的测试值的方法和装置 |
CN101901268A (zh) * | 2010-08-02 | 2010-12-01 | 华为技术有限公司 | 一种规则匹配方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105426394B (zh) | 基于跨平台的移动报表生成方法和系统 | |
CN100483419C (zh) | 一种数据格式的校验方法及装置 | |
CN101930400B (zh) | Sdk自动化测试系统及方法 | |
CN100375059C (zh) | 一种个人数字助理手机功能的自动测试系统及其方法 | |
CN102184138A (zh) | 一种软件错误自动重现和定位的方法及系统 | |
CN102306122A (zh) | 自动化测试方法及设备 | |
CN109254907A (zh) | 一种基于Java的接口测试报告生成方法及系统 | |
CN101308495A (zh) | 局数据核查制作方法 | |
CN101482817A (zh) | 基于黑盒的大粒度Java构件组装方法 | |
CN102955740A (zh) | 一种基于Perl的驱动函数和桩函数生成方法 | |
CN107453978A (zh) | 基于群组的数据统计方法、移动终端、服务器及存储介质 | |
CN103631719A (zh) | 一种Web自动化测试方法和装置 | |
CN101631262A (zh) | 一种VoiceXml业务集成开发系统及其实现方法 | |
US20070277165A1 (en) | Debugging Interpreted Input | |
CN103593188B (zh) | 一种用于仪器所见即所得菜单的管理系统及管理方法 | |
CN100428153C (zh) | 一种生成测试脚本的方法及装置 | |
CN101154182A (zh) | 一种语法检查器 | |
CN110134380A (zh) | 一种基于模板引擎的代码生成方法、装置及电子设备 | |
CN109885493A (zh) | 一种基于Android平台和Java反射的自动化混合框架 | |
CN101272222A (zh) | 一种约束校验方法及装置 | |
CN116775458A (zh) | 一种动态链接库的接口测试方法及系统 | |
CN101201788A (zh) | 定位检测项的系统 | |
CN106484728A (zh) | 日志数据的生成方法、解析方法、生成装置及解析装置 | |
CN102419724B (zh) | 提高芯片验证io效率的方法 | |
CN104536892A (zh) | 一种软件在线调试方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |