CN111708542B - 测试用例生成方法、系统、设备及存储介质 - Google Patents
测试用例生成方法、系统、设备及存储介质 Download PDFInfo
- Publication number
- CN111708542B CN111708542B CN202010587780.XA CN202010587780A CN111708542B CN 111708542 B CN111708542 B CN 111708542B CN 202010587780 A CN202010587780 A CN 202010587780A CN 111708542 B CN111708542 B CN 111708542B
- Authority
- CN
- China
- Prior art keywords
- file
- format
- grammar
- syntax
- test case
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种测试用例生成方法、系统、计算机设备及计算机可读存储介质,通过对所述第一格式语法文件进行解析,生成第一抽象语法树;再调整所述第一抽象语法树,得到第二抽象语法树;再遍历所述第二抽象语法树,解析所述第二格式语法文件,生成所述第二格式语法文件对应的测试用例。可以极大的提高生成测试用例的效率,简化测试用例的生成难度。当数据库产品新增了语法功能,通过第二语法文件修改规则修改第二语法文件,再遍历二抽象语法树,解析所述修改后第二格式语法文件,生成所述第二格式语法文件对应的测试用例。节省了测试用例的生成时间,提高了生成测试用例的准确度,极大的提高了工作效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种测试用例生成方法、系统、设备及存储介质。
背景技术
目前数据库类产品的测试自动化程度较低,尤其是在结构化查询语言测试用例的编写和维护环节,存在以下弊端:结构化查询语句的测试用例少则上万多则千万条,本身存在大量的编写和维护成本。如果数据库产品新增了语法类功能,测试人员一方面需要新增测试用例,另一方面需要手工遍历执行受新增于语法影响的测试用例。这种做法不仅容易漏写测试用例,也非常容易出错。
为了节省人工编写测试用例成本,目前业界开发自动化测试用例生成工具时,普遍采用的是解析bnf(巴科斯范式)文法文件描述的结构化查询语言语法树,得到对应的语法规则库,再从这些语法规则库选择合适的语法规则,进行再开发来生成结构化测试用例,但是这种方法仍然存在一定缺陷,例如需要从大量的语法规则库中寻找生成测试用例对应的规则,以及当需要生成新的语法描述的测试用例时,对应生成测试用例的语法规则不能在语法规则库中找到,因此在工具易用性和后续可维护性上存在一定的问题。
发明内容
有鉴于此,本发明实施例提供了一种测试用例生成方法、系统、计算机设备及计算机可读存储介质,用于解决测试用例生成效率低的问题。
本发明实施例是通过下述技术方案来解决上述技术问题:
接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则;
根据所述第二语法文件解析规则,生成第一抽象语法树;
根据所述第一抽象语法树,得到所述第一抽象语法树的第一语法逻辑;
根据所述第一语法逻辑,获取与所述第一语法逻辑对应的调整规则,通过所述调整规则调整所述第一语法逻辑,得到第二抽象语法树;
遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例。
进一步地,所述接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则包括:
解析所述第一格式语法文件,得到所述第二格式语法文件的解析代码;
集成所述第二格式语法文件的解析代码,生成所述第二格式语法文件的解析规则。
进一步地,所述根据所述第二语法文件解析规则,生成第一抽象语法树包括:
获取所述第二格式语法文件的解析代码的关联关系;
根据所述第二格式语法文件的解析代码的关联关系,将所述解析代码和所述解析代码的关联关系映射至抽象语法树模型中,以生成第一抽象语法树。
进一步地,所述遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例包括:
获取所述第二格式语法文件;
根据所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例。
进一步地,所述获取所述第二格式语法文件包括:
根据测试用例的类别,在所述第二格式语法文件中添加类别标记;
根据所述类别标记,获取所述第二格式语法子文件。
进一步地,所述获取所述第二格式语法文件包括:
获取测试用例对应的第二语法文件修改规则;
通过所述第二语法文件修改规则,对原始第二语法文件进行修改,得到所述第二格式语法文件。
进一步地,所述遍历所述第二抽象语法树,解析所述第二格式语法文件,生成所述第二格式语法文件对应的测试用例包括:
主动遍历所述第二抽象语法树或被动遍历所述第二抽象语法树。
一种测试用例生成系统,包括:
第一格式语法文件接收模块,用于接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则;
第一抽象语法树生成模块,用于根据所述第二语法文件解析规则,生成第一抽象语法树;
第一语法逻辑获取模块,用于根据所述第一抽象语法树,得到所述第一抽象语法树的第一语法逻辑;
第二抽象语法树生成模块,用于根据所述第一语法逻辑,获取与所述第一语法逻辑对应的调整规则,通过所述调整规则调整所述第一语法逻辑,得到第二抽象语法树;
测试用例生成模块,用于遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例。
为了实现上述目的,本发明还提供一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述测试用例生成方法的步骤。
为了实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的测试用例生成方法的步骤。
本发明提供的测试用例生成方法、系统、计算机设备及计算机可读存储介质,通过对所述第一格式语法文件进行解析,生成第一抽象语法树;再调整所述第一抽象语法树,得到第二抽象语法树;再遍历所述第二抽象语法树,解析所述第二格式语法文件,生成所述第二格式语法文件对应的测试用例。可以极大的提高生成测试用例的效率,简化测试用例的生成难度。当数据库产品新增了语法功能,通过第二语法文件修改规则修改第二语法文件,再遍历二抽象语法树,解析所述修改后第二格式语法文件,生成所述第二格式语法文件对应的测试用例。节省了测试用例的生成时间,提高了生成测试用例的准确度,极大的提高了工作效率。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。
附图说明
图1为本发明实施例一之测试用例生成方法的步骤流程图;
图2为步骤接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则的具体流程示意图;
图3为步骤根据所述第二语法文件解析规则,生成第一抽象语法树的具体流程示意图;
图4为步骤遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例的具体流程示意图;
图5为步骤的获取所述第二格式语法文件一种实施方式具体流程示意图;
图6为步骤的获取所述第二格式语法文件另外一种实施方式具体流程示意图;
图7为本发明测试用例生成系统之实施例二的程序模块示意图;
图8为本发明计算机设备之实施例三的硬件结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
请参阅图1,示出了本发明实施例之测试用例生成方法的步骤流程图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。下面以计算机设备为执行主体进行示例性描述,具体如下:
步骤S100:接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则。
具体的,第一格式语法文件是指文件内容中包含了第二格式语法文件解析规则的文件。这里的包含并不是指第一格式语法文件中描述了第二格式语法规则,而是指通过解析第一格式语法文件后,可以得到第二格式语法文件的编写规则或规律,即第二格式语法文件解析规则。
举例而言,第一格式语法文件可以为符合Antlr语法的.gX文件,例如与Antlr V4版本对应的语法文件后缀为.g4,第一格式语法文件即为Antlr语法,其中,Antlr语法是用JAVA写的语言识别工具,它用来声明语言的语法,简称为“元语言”(meta-language)。第二格式语法文件可以为bnf(巴科斯范式)语法文件,其中,bnf是一种语法规则,bnf文件是指根据这种语法规则编写的语法文件,当第二格式语法文件为bnf语法文件时,第一格式语法文件应为bnf.g4文件。在示例性的实施例中,当第二格式语法文件为bnf(巴科斯范式)语法文件时,第一格式语法文件中包含有多种组成bnf(巴科斯范式)语法文件的元素,包括名词解释、规则名、字面名和符号名字等,其中,名词解释包括:Dfa(确定的有穷状态机)、Atn(扩充转移网络),规则名包括,Rulenamea、ruleist、rule、lhs、rhs、alternatives、alternative、element、optional、zeroormore,字面名包括:::=、""、<>、[]、{}、|、等,符号名字包括:id、assign、iparen、rparen、lbrace、rhrace、end、rend、bar等。
在示例性的实施例中,如图2所示,步骤S100还可以进一步包括:
步骤S101:解析所述第一格式语法文件,得到所述第二格式语法文件的解析代码。
具体的,Antlr工具自动解析bnf.g4文件,即可得到bnf格式语法文件的解析代码,这些解析代码是通过antlr自动生成的,antlr读取bnf.g4文件可以自动生成这些解析器代码。解析代码用于组成bnf文件的解析规则。在示例性的实施例中,解析代码一系列的java代码,以class类的形式存在,可以调用执行。
在示例性的实施例中,Antlr工具自动解析bnf.g4文件一般分为两个阶段:词法分析阶段和解析阶段,其中,词法分析阶段负责将bnf.g4文件中的代码字符串分隔成各个不同的class类解析代码数据,解析阶段是指在词法分析的基础上分析各个class类解析代码数据之间的关联关系。
步骤S102:集成所述第二格式语法文件的解析代码,生成所述第二格式语法文件的解析规则。
具体的,由于生成多个不同的class类解析代码数据,因此需要将多个不同的class类解析代码数据集成起来,以得到所述第二格式语法文件的解析规则。
步骤S200:根据所述第二语法文件解析规则,生成第一抽象语法树。
在示例性的实施例中,如图3所示,步骤S200还可以进一步包括:
步骤S201:获取所述第二格式语法文件的解析代码的关联关系;
步骤S202:根据所述第二格式语法文件的解析代码的关联关系,将所述解析代码和所述解析代码的关联关系映射至抽象语法树模型中,以生成第一抽象语法树。
具体的,抽象语法树是解析代码数据的一种抽象表示。它以树状的形式展现出编程语言的语法结构,但是抽象语法树并不会真实展现出语法中的每一处细节。在示例性的实施例中,各个class类解析代码数据可以对应为抽象语法树中的节点数据,各个class类解析代码数据之间的关联关系可以对应为抽象语法树中节点之间的关系,根据各个class类解析代码数据以及它们之间的关联关系,就可以得到第一抽象语法树。
在一种可能的实施方式中,将生成的第一抽象语法树展示在可视化界面上,以直观的看到得到的语法是否正确,并方便开发人员根据测试人员的自定义需求对第一抽象语法树进行再次调整。
步骤S300:根据所述第一抽象语法树,得到所述第一抽象语法树的第一语法逻辑。
具体的,通过对第一抽象语法树的各个节点进行访问,即可得到第一抽象语法树的第一语法逻辑,第一语法逻辑可以表征为第一抽象语法树对第二格式语法文件能够实现的功能,即遍历第一语法树,解析第二语法格式文件的逻辑。
步骤S400:根据所述第一语法逻辑,获取与所述第一语法逻辑对应的调整规则,通过所述调整规则调整所述第一语法逻辑,得到第二抽象语法树。
具体的,遍历第一抽象语法树,解析所述第二格式语法文件并不能生成测试人员想要的测试用例,因此,需要对第一抽象语法树进行调整。在示例性的实施例中,所述调整规则的制定原则上由经验丰富的开发人员制定,但是,本方案并不受这一点的限制,因为随着人工智能技术的发展,计算机也可以完成调整规则的制定。
步骤S500:遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例。
在示例性的实施例中,如图4所示,步骤S500还可以进一步包括:
步骤S501:获取所述第二格式语法文件;
步骤S502:根据所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例。
具体的,遍历所述第二抽象语法树,解析第二格式语法文件指的是根据自定义的遍历规则,依次对抽象语法树中的每个节点均做依次访问,将第二格式语法文件转换为测试用例。例如,使用第二抽象语法树解析bnf语法文件中包含的每一条程序语言,将程序语言根据解析器对应的解析规则转换为对应的测试用例语言。在示例性的实施例中,当要生成select类测试用例为例时,则第二格式语法文件为select语句的bnf语法文件,遍历后生成select类测试用例。
在示例性的实施例中,如图5所示,步骤S501还可以进一步包括:
步骤S5011A:根据测试用例的类别,在所述第二格式语法文件中添加类别标记;
步骤S5012A:根据所述类别标记,获取所述第二格式语法子文件。
具体的,在一种实施方式中,所述第二格式语法文件可以根据所有可能涉及到的测试用例预先编写并以第二格式语法子文件的方式存储,每个第二格式语法子文件都对应一类测试用例。同时将第二格式语法子文件与特定的标识符建立映射关系,其中,特定标识符用于标识想要生成的测试类别,根据测试类别的不同对应不同的特定标识符,例如,当需要生成某个测试类别的测试用例时,则通过其对应的特定标识符获取对应的bnf语法子文件。其中,特定标识符可以为“1”、“2”、“3”等,例如select类的可用“1”来标识。本方案在此不做限制。
在示例性的实施例中,如图6所示,步骤S501还可以进一步包括:
步骤S5011B:获取测试用例对应的第二格式语法文件修改规则;
步骤S5012B:通过所述第二语法文件修改规则,对原始第二格式语法文件进行修改,得到所述第二格式语法文件。
在另外一种可能的实施方式中,可以预先存储原始第二格式语法文件,原始第二格式语法文件可以理解为第二格式语法文件模板,通过对原始第二语法文件进行适当的改动即可得到测试用例对应的第二格式语法文件。对当需要生成测试用例时,根据测试用例的类型,获取测试用例对应的第二语法文件修改规则,并根据第二语法文件修改规则对第二语法格式模板文件进行修改,以得到对应的测试用例对应的第二格式语法文件。其中,所述第二语法文件修改规则可以根据所有可能涉及到的测试用例预先编写并存储,每个第二语法文件修改规则都对应一类测试用例。同时将第二语法文件修改规则与特定的标识符建立映射关系,其中,特定标识符用于标识想要生成的测试类别,根据测试类别的不同对应不同的特定标识符,例如,当需要生成某个测试类别的测试用例时,则通过其对应的特定标识符获取对应的第二语法文件修改规则。其中,特定标识符可以为“A”、“B”、“C”等,例如select类的可用“A”来标识。本方案在此不做限制。
在示例性的实施例中,步骤S500还可以进一步包括:
主动遍历所述第二抽象语法树或被动遍历所述第二抽象语法树。
具体的,抽象语法树的遍历机制包括主动遍历和被动遍历,主动遍历是指使用Antlr定义的语法树遍历顺序,被动遍历为需要开发人员自定义语法树遍历规则。
具体的,遍历规则是指是按照一定的规律不重复的访问每个节点。常用的遍历规则包括:前序遍历、中序遍历和后续遍历。其中,前序遍历指的是在搜索路线中,若访问节点均是第一次经过结点时进行的,则是前序遍历;若访问结点均是在第二次经过结点时进行的,则是中序遍历;若访问结点均是在第三次经过结点时进行的,则是后序遍历。本方案在此不做限制。本发明实施例通过对所述bnf.g4文件进行解析,生成第一抽象语法树;再调整所述第一抽象语法树,得到第二抽象语法树;再遍历所述第二抽象语法树,解析所述bnf语法文件,生成所述bnf语法文件对应的测试用例。可以极大的提高生成测试用例的效率,简化测试用例的生成难度。当数据库产品新增了语法功能,通过第二语法文件修改规则修改bnf语法文件,再遍历二抽象语法树,解析所述修改后bnf语法文件,生成所述bnf语法文件对应的测试用例。节省了测试用例的生成时间,提高了生成测试用例的准确度,极大的提高了工作效率。
实施例二
请继续参阅图7,示出了本发明测试用例生成系统的程序模块示意图。在本实施例中,测试用例生成系统20可以包括或被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本发明,并可实现上述测试用例生成方法。本发明实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序本身更适合于描述测试用例生成系统20在存储介质中的执行过程。以下描述将具体介绍本实施例各程序模块的功能:
第一格式语法文件接收模块200,用于接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则;
在示例性的实施例中,第一格式语法文件接收模块200还用于:
解析所述第一格式语法文件,得到所述第二格式语法文件的解析代码;
集成所述第二格式语法文件的解析代码,生成所述第二格式语法文件的解析规则。
第一抽象语法树生成模块202,用于根据所述第二语法文件解析规则,生成第一抽象语法树;
在示例性的实施例中,第一抽象语法树生成模块202还用于:
获取所述第二格式语法文件的解析代码的关联关系;
根据所述第二格式语法文件的解析代码的关联关系,将所述解析代码和所述解析代码的关联关系映射至抽象语法树模型中,以生成第一抽象语法树。
第一语法逻辑获取模块204,用于根据所述第一抽象语法树,得到所述第一抽象语法树的第一语法逻辑;
第二抽象语法树生成模块206,用于根据所述第一语法逻辑,获取与所述第一语法逻辑对应的调整规则,通过所述调整规则调整所述第一语法逻辑,得到第二抽象语法树;
测试用例生成模块208,用于遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例。
在示例性的实施例中,测试用例生成模块208还用于:
获取所述第二格式语法文件;
根据所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例。
在示例性的实施例中,测试用例生成模块208还用于:
根据测试用例的类别,在所述第二格式语法文件中添加类别标记;
根据所述类别标记,获取所述第二格式语法子文件。
在示例性的实施例中,测试用例生成模块208还用于:
获取测试用例对应的第二语法文件修改规则;
通过所述第二语法文件修改规则,对原始第二语法文件进行修改,得到所述第二格式语法文件。
在示例性的实施例中,测试用例生成模块208还用于:
主动遍历所述第二抽象语法树或被动遍历所述第二抽象语法树。
实施例三
参阅图8,是本发明实施例三之计算机设备的硬件架构示意图。本实施例中,所述计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。该计算机设备2可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图8所示,所述计算机设备2至少包括,但不限于,可通过系统总线相互通信连接存储器21、处理器22、网络接口23、以及测试用例生成系统20。其中:
本实施例中,存储器21至少包括一种类型的计算机可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器21可以是计算机设备2的内部存储单元,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器21也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器21还可以既包括计算机设备2的内部存储单元也包括其外部存储设备。本实施例中,存储器21通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如上述实施例所述的测试用例生成系统20的程序代码等。此外,存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器22在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制计算机设备2的总体操作。本实施例中,处理器22用于运行存储器21中存储的程序代码或者处理数据,例如运行测试用例生成系统20,以实现上述实施例的测试用例生成方法。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述计算机设备2与其他电子装置之间建立通信连接。例如,所述网络接口23用于通过网络将所述计算机设备2与外部终端相连,在所述计算机设备2与外部终端之间的建立数据传输通道和通信连接等。所述网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,GSM)、宽带码分多址(WidebandCode Division Multiple Access,WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图8仅示出了具有部件20-23的计算机设备2,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器21中的所述测试用例生成系统20还可以被分割为一个或者多个程序模块,所述一个或者多个程序模块被存储于存储器21中,并由一个或多个处理器(本实施例为处理器22)所执行,以完成本发明。
例如,图7示出了所述实现实施例二的程序模块示意图,该实施例中,所述基于测试用例生成系统20可以被划分为第一格式语法文件接收模块200、第一抽象语法树生成模块202、第一语法逻辑获取模块204、第二抽象语法树生成模块206和测试用例生成模块208。其中,本发明所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,比程序更适合于描述所述测试用例生成系统20在所述计算机设备2中的执行过程。所述程序模块第一格式语法文件接收模块200-测试用例生成模块208的具体功能在上述实施例中已有详细描述,在此不再赘述。
实施例四
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘、服务器、App应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储测试用例生成系统20,被处理器执行时实现上述实施例所述的测试用例生成方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种测试用例生成方法,其特征在于,包括:
接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则;所述第一格式语法文件为文件内容中包含了第二格式语法文件解析规则的文件,所述第一格式语法文件为Antlr语法文件,所述第二格式语法文件为bnf语法文件;
根据所述第二格式语法文件解析规则,生成第一抽象语法树;
根据所述第一抽象语法树,得到所述第一抽象语法树的第一语法逻辑;所述第一语法逻辑表征为所述第一抽象语法树对所述第二格式语法文件能够实现的功能;
根据所述第一语法逻辑,获取与所述第一语法逻辑对应的调整规则,所述调整规则表征测试用例的需求,基于所述调整规则调整所述第一语法逻辑,得到第二抽象语法树;
获取测试用例的类别,基于所述类别,遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应所述类别的测试用例;
其中,所述遍历所述第二抽象语法树,解析所述第二格式语法文件,生成所述第二格式语法文件对应的测试用例包括:
主动遍历所述第二抽象语法树或被动遍历所述第二抽象语法树。
2.根据权利要求1所述的测试用例生成方法,其特征在于,所述接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则包括:
解析所述第一格式语法文件,得到所述第二格式语法文件的解析代码;
集成所述第二格式语法文件的解析代码,生成所述第二格式语法文件的解析规则。
3.根据权利要求2所述的测试用例生成方法,其特征在于,所述根据所述第二格式语法文件解析规则,生成第一抽象语法树包括:
获取所述第二格式语法文件的解析代码的关联关系;
根据所述第二格式语法文件的解析代码的关联关系,将所述解析代码和所述解析代码的关联关系映射至抽象语法树模型中,以生成第一抽象语法树。
4.根据权利要求3所述的测试用例生成方法,其特征在于,所述遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应的测试用例之前,还包括:
获取所述第二格式语法文件。
5.根据权利要求4所述的测试用例生成方法,其特征在于,所述获取所述第二格式语法文件包括:
根据测试用例的类别,在所述第二格式语法文件中添加类别标记;
根据所述类别标记,获取所述第二格式语法文件。
6.根据权利要求4所述的测试用例生成方法,其特征在于,所述获取所述第二格式语法文件包括:
获取测试用例对应的第二语法文件修改规则;
通过所述第二语法文件修改规则,对原始第二语法文件进行修改,得到所述第二格式语法文件。
7.一种测试用例生成系统,其特征在于,包括:
第一格式语法文件接收模块,用于接收第一格式语法文件,对所述第一格式语法文件进行解析,得到第二格式语法文件解析规则;所述第一格式语法文件为文件内容中包含了第二格式语法文件解析规则的文件,所述第一格式语法文件为Antlr语法文件,所述第二格式语法文件为bnf语法文件;
第一抽象语法树生成模块,用于根据所述第二格式语法文件解析规则,生成第一抽象语法树;
第一语法逻辑获取模块,用于根据所述第一抽象语法树,得到所述第一抽象语法树的第一语法逻辑;所述第一语法逻辑表征为所述第一抽象语法树对所述第二格式语法文件能够实现的功能;
第二抽象语法树生成模块,用于根据所述第一语法逻辑,获取与所述第一语法逻辑对应的调整规则,所述调整规则表征测试用例的需求,基于所述调整规则调整所述第一语法逻辑,得到第二抽象语法树;
测试用例生成模块,用于获取测试用例的类别,基于所述类别,遍历所述第二抽象语法树,解析第二格式语法文件,生成所述第二格式语法文件对应所述类别的测试用例。
8.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的测试用例生成方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如权利要求1至6中任一项所述的测试用例生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010587780.XA CN111708542B (zh) | 2020-06-24 | 2020-06-24 | 测试用例生成方法、系统、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010587780.XA CN111708542B (zh) | 2020-06-24 | 2020-06-24 | 测试用例生成方法、系统、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708542A CN111708542A (zh) | 2020-09-25 |
CN111708542B true CN111708542B (zh) | 2023-05-16 |
Family
ID=72542057
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010587780.XA Active CN111708542B (zh) | 2020-06-24 | 2020-06-24 | 测试用例生成方法、系统、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708542B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112379917B (zh) * | 2020-11-19 | 2023-10-20 | 康键信息技术(深圳)有限公司 | 浏览器兼容性提升方法、装置、设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436128B (zh) * | 2007-11-16 | 2012-10-31 | 北京邮电大学 | 软件测试用例自动生成方法及系统 |
CN102141959B (zh) * | 2011-03-15 | 2013-10-30 | 中国科学院研究生院 | 一种受上下文无关文法约束的测试用例生成方法 |
US20170220455A1 (en) * | 2016-01-29 | 2017-08-03 | Mentor Graphics Corporation | Test case generation using a constraint graph solver |
CN108052453A (zh) * | 2017-12-29 | 2018-05-18 | 北京天诚同创电气有限公司 | 可编程逻辑控制器程序的测试方法、装置、设备和介质 |
-
2020
- 2020-06-24 CN CN202010587780.XA patent/CN111708542B/zh active Active
Non-Patent Citations (1)
Title |
---|
基于谓词的系统需求测试用例生成方法研究;刘珊艳等;《湖北理工学院学报》;39-44 * |
Also Published As
Publication number | Publication date |
---|---|
CN111708542A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209004B (zh) | 代码转换方法及装置 | |
CN109343857B (zh) | 线上部署机器学习模型的方法、设备和存储介质 | |
CN112540923B (zh) | 接口参数校验与转换方法、装置、设备及存储介质 | |
US8091071B2 (en) | Method and system for template-based code generation | |
US7908594B2 (en) | External programmatic interface for IOS CLI compliant routers | |
CN1526104B (zh) | 分析结构化数据 | |
US20020046235A1 (en) | Document creation and delivery | |
CN112394942B (zh) | 基于云计算的分布式软件开发编译方法及软件开发平台 | |
CN112287009A (zh) | 接口调用和接口数据入库方法、装置、设备及存储介质 | |
CN107797823B (zh) | 业务规则管理方法、装置、存储介质和计算机设备 | |
CN110543427B (zh) | 测试用例存储方法、装置、电子设备及存储介质 | |
CN115016793A (zh) | 基于语法树的代码生成方法和装置、电子设备、存储介质 | |
CN112287013A (zh) | 数据转换方法及适配器 | |
CN111814449B (zh) | 表单解析方法、装置、设备及存储介质 | |
CN111708542B (zh) | 测试用例生成方法、系统、设备及存储介质 | |
CN111240681B (zh) | 一种不同编程语言的转换方法及装置 | |
CN115576603B (zh) | 一种获取代码片段中的变量值的方法及装置 | |
CN117008920A (zh) | 引擎系统、请求处理方法、装置、计算机设备及存储介质 | |
CN116560697A (zh) | Dbc数据库同步方法、装置、电子设备及可读存储介质 | |
CN114021133A (zh) | 代码处理方法、装置、电子设备和存储介质 | |
CN114492324A (zh) | 组件数据统计方法及装置 | |
CN110737431B (zh) | 软件开发方法、开发平台、终端设备及存储介质 | |
CN113535461A (zh) | 一种基于配置文件的联锁下位机数据可视化校验方法 | |
CN109491923B (zh) | 新增异常代码的确定方法、装置、介质及电子设备 | |
CN113110844A (zh) | 一种数据库更新方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |