CN104268073A - 一种批量生成测试用例的方法 - Google Patents
一种批量生成测试用例的方法 Download PDFInfo
- Publication number
- CN104268073A CN104268073A CN201410453075.5A CN201410453075A CN104268073A CN 104268073 A CN104268073 A CN 104268073A CN 201410453075 A CN201410453075 A CN 201410453075A CN 104268073 A CN104268073 A CN 104268073A
- Authority
- CN
- China
- Prior art keywords
- file
- chained list
- test
- test case
- data
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种批量生成测试用例的方法,将只存放测试数据的参数文件进行解析,并套用测试工具定义的基于一个测试用例的一组关键字,组合成可存储批量测试用例的文件,该测试用例文件可被导入到测试工具中,并被执行。使用本发明批量完成测试用例的设计,在被测函数参数组合多、数据量大的情况下,可明显节省人力成本,同时可避免人工逐条创建测试用例时产生的遗漏。
Description
技术领域
本发明属于软件测试自动化技术领域,特别涉及一种批量生成测试用例的技术。
背景技术
单元测试(unit testing),是指对软件中最小的可测试单元进行检查和验证,是在软件开发过程中要进行的最低级别的测试活动,在软件生命周期中尽早地对软件产品进行单元测试,可以大幅度提高后期测试和维护成本,可以说,进行充分的单元测试,是提高软件质量,降低开发成本的必由之路。
单元测试除了测试其功能性以外,还需确保代码在结构上可靠、健全并且能够有良好的响应,因此仅仅进行静态测试是不够的,必须要运行单元,进行动态测试,为动态测试设计更充分的测试用例以验证业务逻辑和单元的实际表现力。
一个测试用例,首先是设定输入数据,运行被测试函数,然后判断实际输出是否符合预期,对于具体的函数,如果输入数据确定了,那么预期输出也是确定的,因此对于测试用例来说,输入数据是核心。
而软件中的可测单元必须是独立的,需要与软件中其他部分相隔离的情况下进行测试,因此需要提供一个驱动程序(Driver)来执行被测单元,还需要提供一个被测单元的接口程序也叫桩程序(Stub),其中,驱动程序,也称驱动模块,用以模拟被测试模块的上级模块,能够调用被测试模块。在测试过程中,驱动模块接受测试数据,调用被测模块并把相关的数据传送给被测模块,驱动程序作为入口,测试人员可以设置不同的数据参数,来完成各种测试用例;桩程序,用以模拟被测试模块工作工程中所调用的下层模块,桩模块由被测单元调用,他们一般只进行很少的数据处理,例如打印如果和返回,以便于检验被测模块与下级模块的接口。
目前市场说的单元测试工具一般都可以帮助测试人员完成测试驱动、桩模块框架,如Testbed、C++Test等。这里,以Testbed为例介绍测试用例的设计,Testbed是英国LDRA公司开发的一套主要用在软件测试与软件维护阶段以提高软件产品的质量为目标的测试工具,可同时支持编码规则检查、软件度量分析、数据流分析、覆盖率分析等,不仅适合于主机平台软件测试,同时适合于嵌入式软件的测试,Testbed内部集成的单元级测试工具TBrun可以产生软件测试驱动和桩模块,使测试人员将重点放在设计测试用例上,从而节省时间,提高软件测试效率。
但是,不只是Testbed,市场上很多的测试工具都是在生成的驱动框架上,需要人工手动逐条创建测试用例,而测试用例的充分性往往是与用例数成正比的,尤其在工业领域中多参数运算、大数据量、结构复杂,同时存在各种组合情况的函数,此时的测试尽管有测试工具的辅助,但是在逐条创建测试用例的过程中也易发生遗漏和疏忽,并且,测试用例的个数会随着测试广度及深度的加强及被测单元的复杂度而倍增,此时测试人员基于Testbed需逐条创建用例,过程冗繁,且易遗漏或出错。并且,Testbed,要在不同的用例窗口中单独设置参数配置等,效率不高,不利于用例设计的检查及测试覆盖率目标的达成。由此可见,使用测试工具实现设计测试用例的技术缺点是:
(1)测试人员人工逐条创建,并逐条填写测试输入、期望值等,过程冗烦,速度慢,效率低,针对复杂函数的测试用例设计,往往耗费大量人力成本;
(2)人工逐条创建测试用例时,往往容易遗漏,在用例执行前逐条检查过程繁琐,需逐条点击每条用例查看。
因此亟待一种简单、便捷的方式,能够在测试工具中实现大批量测试用例的设计。
发明内容
为了克服使用测试工具不能批量生成测试用例设计的技术缺点,本发明提供批量处理手段取代手动逐条创建,使测试用例设计工作能在短时间内完成,提高测试覆盖率;提高操作便利性,使测试人员专注于测试输入,只需编辑参数文件,而不用在界面上进行设置,并可结合测试工具提供的关键字,生成可被测试工具导入的测试用例文件,极大的提高了工作效率,节约的工作成本;同时在设计测试用例时,将存储测试数据的参数文件与测试工具定义的包含多个关键字的格式文件分开,可以更快速、便捷的编辑测试数据,并且编辑好的测试数据通过套用不同的格式文件可生成适用于不同测试工具的测试用例。
本发明解决其技术问题所采用的技术方案是:一种批量生成测试用例的方法,包括被测程序、测试工具、至少一组针对所述被测程序的测试数据、基于一个测试用例的格式文件和可被所述测试工具导入并执行的测试用例文件,具体为:
1)按照被测程序的输入、输出参数,将所述测试数据中对应的输入数据、预期输出数据解析到第一变量中;
2)将所述格式文件中的各关键字解析到第二变量中,所述关键字包括区分所述测试数据的输入\预期输出数据的字符串;
3)将所述第二变量中的关键字,与所述关键字对应的所述第一变量中的一组输入\预期输出数据,写入所述测试用例文件中;
4)如果所述测试数据为多组针对所述被测程序的测试数据,则读取每组所述测试数据时,重新读取所述第二变量中的关键字,写入测试用例文件中。
所述第一变量为链表csvEntryList;所述链表csvEntryList的每个结点存放一个测试数据,在执行步骤3)时,从所述链表csvEntryList中读取输入\预期输出数据,并写入所述测试用例文件中。
所述测试工具为Testbed;所述格式文件为tct文件,由所述测试工具Testbed提供的接口生成,所述tct文件包括多个关键字,所述关键字的格式为:"#"+"字符串"、"字符串"+"="和"字符串"+"="+"字符串";所述测试用例文件为tcf文件,是所述测试工具Testbed的格式文件,能被所述测试工具导入并执行。
所述第二变量为链表testCaseList,所述链表testCaseList的每个结点存放一个关键字,所述链表testCaseList中至少包含:用于表示为所述输入数据\预期输出数据赋值关键字的结点、用于存放所述测试用例头关键字的结点和用于存放所述测试用例的尾关键字的结点。
所述赋值关键字的格式为"字符串"+"=",例如:"Value=";所述头关键字的格式为"#"+"字符串",例如:"#Begin Variable";所述尾关键字的格式为"#"+"字符串",例如:"#End Test Case"。
将所述解析过的测试数据与解析过的所述格式文件,写入所述测试用例文件的方法为:
a)首先读取所述链表testCaseList的第一个结点值作为当前关键字,读取所述链表csvEntryList的第一个测结点值作为当前测试数据;
b)将所述当前关键字写入所述tcf文档中,并判断所述关键字是否为"#End TestCase",如果是则执行步骤c),反之执行步骤d);
c)所述当前关键字为"#End Test Case"时,判断所述链表csvEntryList是否到结尾,如果没到结尾则执行步骤f),反之执行步骤g);
d)判断所述当前关键字是否为"Value=",如果不是,则执行步骤e),反之读取所述链表csvEntryList的当前测试数据写入所述tcf文件中,并将所述链表csvEntryList的下一个结点值作为当前测试数据并执行步骤e);
e)将所述链表testCaseList的下一个结点值作为当前关键字,并执行步骤b);
f)当链表testCaseList的当前关键字为"#End Test Case",并且所述链表csvEntryList没有到结尾时,将所述链表testCaseList的第一个结点值设为当前关键字,并执行步骤b);
g)当链表testCaseList的当前关键字为"#End Test Case",并且所述链表csvEntryList已经到结尾时,执行完成。
所述测试数据存储在参数文件中,所述参数文件的每行数据为一组测试数据,每组测试数据的输入、输出数据通过分隔符区分;所述每个被测程序分别对应独立的参数文件、格式文件和测试用例文件;优选的,所述参数文件包括csv格式文件、EXCEL格式文件;在所述csv格式文件中,所述分隔符为","。
还包括中间信息输出模块,所述中间信息输出模块用于显示所述链表所述链表csvEntryList和链表testCaseList中的数据;
优选的,输出方式为在控制台执行打印功能;
优选的,所述链表testCaseList中的内容还包括:"#Begin Variable","#EndVariable","#Begin Removed Variable","#End Removed Variable","File=","Procedure=","Procedure Number=","Creation Date=","Name=","Decl_type=","Df_type=","Packed="。
所述参数文件还包括所述被测程序名称,所述被测程序名称为所述参数文件每行的第一个字符串;所述链表包括两个区域:function区域和variable区域,所述链表的function区域存储所述参数文件的所述被测程序名称,所述variable区域存储所述参数文件的输入\预期输出数据;所述function区域为所述链表csvEntryList的第一个结点;所述variable区域为所述链表csvEntryList的第二个结点及以后的结点;
在执行将所述解析过的测试数据与解析过的所述格式文件,写入所述测试用例文件时,所述链表csvEntryList的测试数据为所述链表csvEntryList的variable区域存储的数据;
写入所述测试用例文件时还包括:在所述步骤c)和所述步骤d)之间,判断关键字是否为"Procedure=",如果是,读取所述链表csvEntryList的function区域的数据写入所述tcf文件中,将所述链表testCaseList的下一个结点值作为当前关键字,执行步骤b);反之执行所述步骤d)。
优选的,本发明还对所述参数表进行优化处理,具体为,在生成链表csvEntryList后,将所述链表csvEntryList按照测试的输入\预期输出数据值进行排序,对于测试数据完全相同的,只保留一组测试数据,其余都删除,这样可以删除重复测试用例,对用户大批量制作测试用例时提供校验功能。
本发明的有益效果是:
(1)采用本发明批量完成测试用例的设计,在被测函数参数组合多、数据量大的情况下,可明显节省人力成本,
(2)对于在测试工具提供的界面上,人工逐条创建测试用例,可能会有遗漏或错误,但是通过使用纯文本或excel提供的强大功能,使测试人员能更准确、高效的完成测试数据的生成,
(3)本发明可定制是否显示出中间过程信息,便于对格式文件模板的整体了解,以及对参数文件中设计的测试数据进行早期修改,减少因为测试用例设计错误引起的返工。
附图说明
下面结合附图对本发明所述的一种批量生成测试用例的方法进行具体说明。
图1是本发明功能的结构示意图;
图2是本发明csv文件解析的流程图;
图3是单元测试结构图;
图4是本发明tcf文件格式示意图;
图5是本发明tct文件格式示意图。
具体实施方式
本发明提供的实现批量测试用例导入测试工具中是基于对测试输入数据CSV文件及Testbed测试模板TCT文件的解析,能批量为Testbed生成测试用例,将测试人员从大量用例的逐条创建及参数填写中解放出来,使其专注于测试用例的核心——测试数据的设计输入,在Testbed测试工具的基础上进一步加强了测试自动化的程度,提高测试效率,缩短软件开发周期,具体方法如图1所示,包含4个部分,分别是:参数文件解析、格式文件解析、中间信息输出、生成测试用例文件。以下以Testbed工具为例,介绍具体的批量测试用例实现方法。
1、参数文件用于存放若干组用于测试所述被测程序的测试数据,其中,每组用于测试所述被测程序的测试数据为各输入数据、预期返回值以及数据类型等的组合,本发明采用csv格式文件(Comma Separated Value,纯文本文件),csv格式文件是一种常见的文档格式,与Testbed无直接关系,当然也可以使用excel等其他格式的文件。
在这里,可以通过csv格式或者excel格式提供的便捷方法,准确、高效的编辑测试数据。
在本实施例中,都以被测函数:LDRA_uint32_t SpecialOffer_getPrice(constLDRA_uint32_t aQualtity,LDRA_uint32_t aUnitPrice,const tSpecialOfferanOffer);为例进行介绍,
其中:SpecialOffer_getPrice为函数名,
const LDRA_uint32_t aQualtity为第一个输入参数,
LDRA_uint32_t aUnitPrice为第二个输入参数,
const tSpecialOffer anOffer为第三个输入参数,
LDRA_uint32_t为函数SpecialOffer_getPrice的返回值。
由于在测试用例的设计中,输入数据是核心,因此针对函数SpecialOffer_getPrice设计如下测试用例(这里只列出了9组测试数据,实际中根据不同的函数会定义不同数量的测试用例,一般情况都远远大于9):
SpecialOffer_getPrice | 1 | 50 | NO_OFFER | 50 |
SpecialOffer_getPrice | 2 | 50 | NO_OFFER | 100 |
SpecialOffer_getPrice | 3 | 50 | BUY_ONE_GET_ONE_FREE | 100 |
SpecialOffer_getPrice | 4 | 200 | BUY_ONE_GET_ONE_FREE | 400 |
SpecialOffer_getPrice | 10 | 100 | TEN_PERCENT_OFF | 900 |
SpecialOffer_getPrice | 3 | 50 | THREE_FOR_ONE_EURO | 100 |
SpecialOffer_getPrice | 6 | 50 | THREE_FOR_ONE_EURO | 200 |
SpecialOffer_getPrice | 2 | 150 | BUY_ONE_GET_ONE_FREE | 150 |
SpecialOffer_getPrice | 20 | 300 | BUY_ONE_GET_ONE_FREE | 3000 |
上表中,从左到右依次是函数名,输入参数1、2、3的取值,最后一列是函数返回的期望值,此csv文件可随着测试角度、深度的加强更逐渐加大。其中,csv格式文件中每个参数以","分隔,每行数据以换行符分隔,上表为在excel文件中打开时的显示格式。
2、在Testbed中,格式文件是tct(Test Case Templates)文件,是Testbed专有的文件格式,由Testbed提供的接口生成。文件包括:用优选的"#"+"字符串"或者用"字符串"+"="来分隔函数的各参数、返回值等接口,具体如图5所示,其中:
1)第一行的"#Begin Test Case"和最后一行的"#End Test Case"表示文件的开始和结尾,
2)在文件的开头和结尾的中间有若干个以"#Begin Variable"开始和以"#EndVariable"结尾的段落,在这里,以"#Begin Variable"开始和以"#End Variable"结尾的段落中间的内容为该测试用例针对的函数的所有参数和返回值的信息,由于函数:SpecialOffer_getPrice有3个输入参数和一个返回值,因此以"#Begin Variable"开始和以"#End Variable"结尾的段落有4个,其中,前三个是对输入参数的描述,最后一个是对返回结果的描述。
3)例如:第一个以"#Begin Variable"开始和以"#End Variable"结尾的段落中
Name=aQuantity表示第一个输入参数的参数名称为aQuantity
Decl_type=LDRA_unit32_t表示第一个输入参数的参数类型为LDRA_unit32_t
Df_type=Z表示第一个输入参数的输入类型
Value=表示返回值即在测试用例中的预期返回值,因为是格式文件,因此这里为空。
4)例如:最后一个(也即第4个)以"#Begin Variable"开始和以"#End Variable"结尾的段落中:
Name=%表示本段落表示返回值信息,
Decl_type=LDRA_unit32_t表示:返回值的类型
Df_type=o表示:输出类型
Value=表示第一个输入参数在测试用例中输入的值,因为是格式文件,因此这里为空
5)而在第一个以"#Begin Variable"开始和以"#End Variable"结尾的段落之前还有:
File=c:\LDRA_Demos\...表示:文件名,含在计算机上的存储路径;
Procedure=SpecialOffer_getPrice表示函数名为:SpecialOffer_getPrice;
Procedure Number=1表示:函数的数量为1个;
Creation Date=Mar 06201117:26:38表示创建时间;
3、中间信息输出
这部分是可选的,主要是用来检测"参数文件"和"格式文件"的解析是否正确的,是在设计测试用例初期使用的,当csv文件设计完成后可跳过这个步骤,以后每次执行测试用例转入时,使用"参数文件"和"格式文件"直接生成tcf用例文件。
中间信息的输出,主要就是在控制台中对"参数文件"和"格式文件"进行遍历打印,即可以以格式化的形式在控制台中输出csv文件及tct文件,可以基于此利于对tct模板文件及csv输入文件的宏观把握。
4、生成测试用例文件
tcf文件(Test Case File)是Testbed专有的文件格式,是Testbed工具支持的将测试用例导入导出的格式文件,是将参数文件(即csv文件)中定义的所有输入参数和预期的返回值与格式文件(即tct格式文件)中定义的能在Testbed被执行的该被测函数的测试用例的格式相结合的文件。
与格式文件文件一样(本实施例中以tct文件做说明),tcf文件也是以"#"+"字符串"或者"字符串"+"="来分隔函数的各参数、返回值等接口,不同的是,tcf包含多个以"#Begin Test Case"开始,以"#End Test Case"结束的段落,每个以"#BeginTest Case"开始,以"#End Test Case"结束的段落都表示一个测试用例,因此,在tcf文件中,有多少个测试用例就有多少个以"#Begin Test Case"开始,以"#End TestCase"结束的段落。具体如图4所示,其中:
1)只显示了一个以"#Begin Test Case"开头和以"#End Test Case"结尾的完整的测试用例,第二个以"#Begin Test Case"开头的测试用例没有显示完整,但是实现方法与第一个测试用例相同,
2)在文件中的若干个以"#Begin Variable"开始和以"#End Variable"结尾的段落,为该测试用例针对的函数的所有参数和返回值的信息,与tct文件不同的是,这里的3个输入参数和一个返回值中除了格式以外还包括测试数据信息,
3)例如:第一个以"#Begin Variable"开始和以"#End Variable"结尾的段落中
Name=aQuantity、Decl_type=LDRA_unit32_t和Df_type=Z与tct文件一样,这里不再描述,
Value=1,表示第一个输入参数在测试用例中输入的值,这个值是取自参数文件,在本实施例中是取自csv格式的参数文件,
4)例如:最后一个(也即第4个)以"#Begin Variable"开始和以"#End Variable"结尾的段落中:
Name=%表示本段落表示返回值信息,
Decl_type=LDRA_unit32_t表示:返回值的类型
Df_type=o表示:输出类型
Value=50表示返回值即在测试用例中的预期返回值,
5)而在第一个以"#Begin Variable"开始和以"#End Variable"结尾的段落之前还有:
File=c:\LDRA_Demos\...表示:文件名,含在计算机上的存储路径;
Procedure=SpecialOffer_getPrice表示函数名为:SpecialOffer_getPrice
Procedure Number=1表示:函数的数量为1个
Creation Date=Mar 06201117:26:38表示创建时间
5、将参数文件和格式文件合成测试用例文件的方法为(本实施例中以csv文件和tct文件合成tcf文件的方法为例)如图1所示:
第一步:先解析csv文件,将csv文件中所有的测试数据(包括函数名function及变量variable)保存至csvEntryList链表;
第二步:再根据tct文件的特点,将格式文件中定义的关键字保存到testCaseList链表中;
第三步:读取testCaseList链表中的格式数据以及"Name"、"Decl_type"、"LDRA_unit32_t"和"Df_type",同时并循环读取csvEntryList链表中的输入参数、预期返回值,并写入tcf文件中,其中,
tcf文件中的"#Begin Test Case"、"#End Test Case"、"File=c:\LDRA_Demos\..."、"Procedure=SpecialOffer_getPrice"、"Procedure Number=1"、"Creation Date=Mar 06201117:26:38"、"#Begin Variable"、"#EndVariable"、"Name=aQuantity"、"Decl_type=LDRA_unit32_t"、"Df_type=Z"和"Value="等信息来源于testCaseList链表,而"Value=1"中的值"1"来源于csvEntryList链表。
(1)执行第一步的解析csv文件的具体步骤如图2所示:
1)首先打开csv文件,
2)检查是否到文件末尾,如果到末尾csvEntryList创建完毕,执行结束
3)如果没有到文件末尾就逐行读取csv文件中的每一列数据,
4)保存function到csvEntryList中
5)是否找到分隔符,这里的分隔符为逗号
6)如果找到就保存到variable到csvEntryList中
(2)在执行第二步的时候,为便于逐行解析,可创建如下的二维数组将所有以关键字囊括其中:
(3)在执行第三步之前,还可以将csvEntryList链表和testCaseList链表在控制台中打印出来检查一下。
6、模块介绍
本发明还包括一种批量生成测试用例的系统,包括:参数设计模块、生成批量测试用例模块。
参数设计模块用于设计被测函数的测试用例,并将设计好的测试用例生成为csv格式文件,其中该被测函数的测试用例有多个。
生成批量测试用例模块包括:参数文件解析模块、格式文件解析模块、中间过程打印模块和测试用生成模块;
其中,参数文件解析模块,用于解析参数文件,并将参数文件中的内容生成参数链表;
格式文件解析模块,用于解析格式文件,并将格式文件中的内容生成格式链表;
中间过程打印模块,用于打印参数链表和格式链表;
测试用生成模块,用于将参数链表和格式链表中的内容生成测试用例表,该测试用例表可以将表中的测试用例导入到测试工具内,实现测试用例的批量生成。
在这里,本发明要保护的一种批量生成测试用例的系统主要使用C++语言来实现,具体为:在windows XP操作系统中,使用Visual Studio 2010编写C++语言代码,并生成可执行文件。
以上所述仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专利的技术人员在不脱离本发明技术方案范围内,当可利用上述提示的技术内容作出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明方案的范围内。
Claims (9)
1.一种批量生成测试用例的方法,其特征在于,包括被测程序、测试工具、至少一组针对所述被测程序的测试数据、基于一个测试用例的格式文件和可被所述测试工具导入并执行的测试用例文件,所述批量生成测试用例的方法为:
1)按照被测程序的输入、输出参数,将所述测试数据中对应的输入数据、预期输出数据解析到第一变量中;
2)将所述格式文件中的各关键字解析到第二变量中,所述关键字包括区分所述测试数据的输入\预期输出数据的字符串;
3)将所述第二变量中的关键字,与所述关键字对应的所述第一变量中的一组输入\预期输出数据,写入所述测试用例文件中;
4)如果所述测试数据为多组针对所述被测程序的测试数据,则读取每组所述测试数据时,重新读取所述第二变量中的关键字,写入测试用例文件中。
2.根据权利要求1所述的一种批量生成测试用例方法,其特征在于,所述第一变量为链表csvEntryList;所述链表csvEntryList的每个结点存放一个测试数据,在执行步骤3)时,从所述链表csvEntryList中读取输入\预期输出数据,并写入所述测试用例文件中。
3.根据权利要求1所述的一种批量生成测试用例方法,其特征在于,所述测试工具为Testbed;所述格式文件为tct文件,由所述测试工具Testbed提供的接口生成,所述tct文件包括多个关键字,所述关键字的格式为:"#"+"字符串"、"字符串"+"="和"字符串"+"="+"字符串";所述测试用例文件为tcf文件,是所述测试工具Testbed的格式文件,能被所述测试工具导入并执行。
4.根据权利要求1所述的一种批量生成测试用例方法,其特征在于,所述第二变量为链表testCaseList,所述链表testCaseList的每个结点存放一个关键字,所述链表testCaseList中至少包含:用于表示为所述输入数据\预期输出数据赋值关键字的结点、用于存放所述测试用例头关键字的结点和用于存放所述测试用例的尾关键字的结点。
5.根据权利要求3或4所述的任意一种批量生成测试用例方法,其特征在于,所述赋值关键字为"Value=";所述头关键字为"#Begin Variable";所述尾关键字为"#EndTest Case"。
6.根据权利要求1-5所述的任意一种批量生成测试用例的方法:其特征在于,将所述解析过的测试数据与解析过的所述格式文件,写入所述测试用例文件的方法为:
a)首先读取所述链表testCaseList的第一个结点值作为当前关键字,读取所述链表csvEntryList的第一个测结点值作为当前测试数据;
b)将所述当前关键字写入所述tcf文档中,并判断所述关键字是否为"#End TestCase",如果是则执行步骤c),反之执行步骤d);
c)所述当前关键字为"#End Test Case"时,判断所述链表csvEntryList是否到结尾,如果没到结尾则执行步骤f),反之执行步骤g);
d)判断所述当前关键字是否为"Value=",如果不是,则执行步骤e),反之读取所述链表csvEntryList的当前测试数据写入所述tcf文件中,并将所述链表csvEntryList的下一个结点值作为当前测试数据并执行步骤e);
e)将所述链表testCaseList的下一个结点值作为当前关键字,并执行步骤b);
f)当链表testCaseList的当前关键字为"#End Test Case",并且所述链表csvEntryList没有到结尾时,将所述链表testCaseList的第一个结点值设为当前关键字,并执行步骤b);
g)当链表testCaseList的当前关键字为"#End Test Case",并且所述链表csvEntryList已经到结尾时,执行完成。
7.根据权利要求1-6所述的任意一种批量生成测试用例的方法,其特征在于,所述测试数据存储在参数文件中,所述参数文件的每行数据为一组测试数据,每组测试数据的输入、输出数据通过分隔符区分;所述每个被测程序分别对应独立的参数文件、格式文件和测试用例文件;优选的,所述参数文件包括csv格式文件、EXCEL格式文件;在所述csv格式文件中,所述分隔符为","。
8.根据权利要求1-7所述的任意一种批量生成测试用例的方法,其特征在于,还包括中间信息输出模块,所述中间信息输出模块用于显示所述链表所述链表csvEntryList和链表testCaseList中的数据;
优选的,输出方式为在控制台执行打印功能;
优选的,所述链表testCaseList中的内容还包括:"#Begin Variable","#EndVariable","#Begin Removed Variable","#End Removed Variable","File=","Procedure=","Procedure Number=","Creation Date=","Name=","Decl_type=","Df_type=","Packed="。
9.根据权利要求1-8所述的任意一种批量生成测试用例的方法,其特征在于,所述参数文件还包括所述被测程序名称,所述被测程序名称为所述参数文件每行的第一个字符串;所述链表包括两个区域:function区域和variable区域,所述链表的function区域存储所述参数文件的所述被测程序名称,所述variable区域存储所述参数文件的输入\预期输出数据;所述function区域为所述链表csvEntryList的第一个结点;所述variable区域为所述链表csvEntryList的第二个结点及以后的结点;
在执行将所述解析过的测试数据与解析过的所述格式文件,写入所述测试用例文件时,所述链表csvEntryList的测试数据为所述链表csvEntryList的variable区域存储的数据;
写入所述测试用例文件时还包括:在所述步骤c)和所述步骤d)之间,判断关键字是否为"Procedure=",如果是,读取所述链表csvEntryList的function区域的数据写入所述tcf文件中,将所述链表testCaseList的下一个结点值作为当前关键字,执行步骤b);反之执行所述步骤d)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410453075.5A CN104268073A (zh) | 2014-09-05 | 2014-09-05 | 一种批量生成测试用例的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410453075.5A CN104268073A (zh) | 2014-09-05 | 2014-09-05 | 一种批量生成测试用例的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104268073A true CN104268073A (zh) | 2015-01-07 |
Family
ID=52159596
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410453075.5A Pending CN104268073A (zh) | 2014-09-05 | 2014-09-05 | 一种批量生成测试用例的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104268073A (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294138A (zh) * | 2016-07-29 | 2017-01-04 | 东软集团股份有限公司 | 测试用例生成方法和装置 |
CN106294130A (zh) * | 2016-07-28 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种单元测试方法及装置 |
CN106326122A (zh) * | 2016-08-23 | 2017-01-11 | 北京精密机电控制设备研究所 | 一种软件单元测试用例管理系统 |
CN107239398A (zh) * | 2017-05-24 | 2017-10-10 | 四川长虹电器股份有限公司 | 一种基于Postman的接口测试用例自动生成系统及方法 |
CN107341102A (zh) * | 2017-06-12 | 2017-11-10 | 北京奇安信科技有限公司 | 一种测试用例文件生成方法及装置 |
CN107577858A (zh) * | 2017-08-28 | 2018-01-12 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种快速提取Nastran有限元模型柔度矩阵的方法 |
CN107832221A (zh) * | 2017-11-15 | 2018-03-23 | 杭州安恒信息技术有限公司 | 基于Burpsuit插件的平台半自动化功能测试方法、装置及系统 |
CN109213671A (zh) * | 2017-06-30 | 2019-01-15 | 中国航发商用航空发动机有限责任公司 | 软件测试方法及其平台 |
CN109522215A (zh) * | 2018-10-12 | 2019-03-26 | 中国铁道科学研究院集团有限公司通信信号研究所 | 铁路信号系统安全苛求软件的自动化测试平台 |
CN109542794A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种应用于嵌入式系统的软件自动测试方法 |
CN109697161A (zh) * | 2017-10-24 | 2019-04-30 | 中兴通讯股份有限公司 | 一种存储过程的测试方法、存储介质和数据库服务器 |
CN109933474A (zh) * | 2019-03-15 | 2019-06-25 | 湖南国科微电子股份有限公司 | 一种硬盘测试方法、系统及其开发方法 |
CN111340038A (zh) * | 2020-05-20 | 2020-06-26 | 四川新网银行股份有限公司 | 用于mock测试的一次性影像数据获取方法 |
CN111913888A (zh) * | 2020-09-09 | 2020-11-10 | 中移(杭州)信息技术有限公司 | 函数生成方法、自动测试方法、电子设备及存储介质 |
CN111930630A (zh) * | 2020-08-17 | 2020-11-13 | 电信科学技术第十研究所有限公司 | 基于数据流的大数据测试用例的生成方法及装置 |
CN112231201A (zh) * | 2020-09-18 | 2021-01-15 | 中国铁道科学研究院集团有限公司通信信号研究所 | 一种ctc系统自律机功能批量自动回归测试方法及系统 |
CN112506728A (zh) * | 2021-02-04 | 2021-03-16 | 上海国微思尔芯技术股份有限公司 | 一种用于原型验证系统的测试方法及装置 |
CN112597011A (zh) * | 2020-12-16 | 2021-04-02 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN113495831A (zh) * | 2020-04-03 | 2021-10-12 | 卫宁健康科技集团股份有限公司 | 基于关键字生成测试用例的方法、系统、设备及介质 |
CN113747952A (zh) * | 2019-02-12 | 2021-12-03 | 艾肯运动与健康公司 | 使用视频训练程序控制锻炼机器 |
CN114153717A (zh) * | 2020-08-17 | 2022-03-08 | 中国电信股份有限公司 | 在云网系统中实现自动化测试的方法和设备及计算机可读存储介质 |
CN114398255A (zh) * | 2021-11-30 | 2022-04-26 | 际络科技(上海)有限公司 | 自动驾驶测试场景生成方法、装置、电子设备和存储介质 |
CN114756474A (zh) * | 2022-04-27 | 2022-07-15 | 苏州睿芯集成电路科技有限公司 | 一种cpu验证中随机向量的生成方法、装置以及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495789A (zh) * | 2011-10-18 | 2012-06-13 | 瑞斯康达科技发展股份有限公司 | 一种自动化测试方法和设备 |
CN103150249A (zh) * | 2011-12-07 | 2013-06-12 | 北京新媒传信科技有限公司 | 一种自动化测试的方法和系统 |
CN103268285A (zh) * | 2013-05-31 | 2013-08-28 | 百度在线网络技术(北京)有限公司 | 针对api接口的健壮性测试用例自动生成方法和装置 |
CN103412853A (zh) * | 2013-08-05 | 2013-11-27 | 北京信息科技大学 | 一种针对文档转换器的测试用例自动生成方法 |
US20140164842A1 (en) * | 2012-12-10 | 2014-06-12 | International Business Machines Corporation | Role-oriented testbed environments for use in test automation |
-
2014
- 2014-09-05 CN CN201410453075.5A patent/CN104268073A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102495789A (zh) * | 2011-10-18 | 2012-06-13 | 瑞斯康达科技发展股份有限公司 | 一种自动化测试方法和设备 |
CN103150249A (zh) * | 2011-12-07 | 2013-06-12 | 北京新媒传信科技有限公司 | 一种自动化测试的方法和系统 |
US20140164842A1 (en) * | 2012-12-10 | 2014-06-12 | International Business Machines Corporation | Role-oriented testbed environments for use in test automation |
CN103268285A (zh) * | 2013-05-31 | 2013-08-28 | 百度在线网络技术(北京)有限公司 | 针对api接口的健壮性测试用例自动生成方法和装置 |
CN103412853A (zh) * | 2013-08-05 | 2013-11-27 | 北京信息科技大学 | 一种针对文档转换器的测试用例自动生成方法 |
Non-Patent Citations (1)
Title |
---|
郑炜等: "一种基于规则提取的自动化测试用例生成方法", 《西北工业大学学报》 * |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294130A (zh) * | 2016-07-28 | 2017-01-04 | 浪潮电子信息产业股份有限公司 | 一种单元测试方法及装置 |
CN106294138A (zh) * | 2016-07-29 | 2017-01-04 | 东软集团股份有限公司 | 测试用例生成方法和装置 |
CN106326122A (zh) * | 2016-08-23 | 2017-01-11 | 北京精密机电控制设备研究所 | 一种软件单元测试用例管理系统 |
CN106326122B (zh) * | 2016-08-23 | 2018-08-31 | 北京精密机电控制设备研究所 | 一种软件单元测试用例管理系统 |
CN107239398B (zh) * | 2017-05-24 | 2020-01-31 | 四川长虹电器股份有限公司 | 一种基于Postman的接口测试用例自动生成系统及方法 |
CN107239398A (zh) * | 2017-05-24 | 2017-10-10 | 四川长虹电器股份有限公司 | 一种基于Postman的接口测试用例自动生成系统及方法 |
CN107341102A (zh) * | 2017-06-12 | 2017-11-10 | 北京奇安信科技有限公司 | 一种测试用例文件生成方法及装置 |
CN107341102B (zh) * | 2017-06-12 | 2020-07-14 | 奇安信科技集团股份有限公司 | 一种测试用例文件生成方法及装置 |
CN109213671B (zh) * | 2017-06-30 | 2021-08-03 | 中国航发商用航空发动机有限责任公司 | 软件测试方法及其平台 |
CN109213671A (zh) * | 2017-06-30 | 2019-01-15 | 中国航发商用航空发动机有限责任公司 | 软件测试方法及其平台 |
CN107577858A (zh) * | 2017-08-28 | 2018-01-12 | 中国航空工业集团公司沈阳飞机设计研究所 | 一种快速提取Nastran有限元模型柔度矩阵的方法 |
CN109697161A (zh) * | 2017-10-24 | 2019-04-30 | 中兴通讯股份有限公司 | 一种存储过程的测试方法、存储介质和数据库服务器 |
CN107832221A (zh) * | 2017-11-15 | 2018-03-23 | 杭州安恒信息技术有限公司 | 基于Burpsuit插件的平台半自动化功能测试方法、装置及系统 |
CN109522215A (zh) * | 2018-10-12 | 2019-03-26 | 中国铁道科学研究院集团有限公司通信信号研究所 | 铁路信号系统安全苛求软件的自动化测试平台 |
CN109542794A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种应用于嵌入式系统的软件自动测试方法 |
US11951358B2 (en) | 2019-02-12 | 2024-04-09 | Ifit Inc. | Encoding exercise machine control commands in subtitle streams |
CN113747952A (zh) * | 2019-02-12 | 2021-12-03 | 艾肯运动与健康公司 | 使用视频训练程序控制锻炼机器 |
CN109933474A (zh) * | 2019-03-15 | 2019-06-25 | 湖南国科微电子股份有限公司 | 一种硬盘测试方法、系统及其开发方法 |
CN113495831B (zh) * | 2020-04-03 | 2024-05-31 | 卫宁健康科技集团股份有限公司 | 基于关键字生成测试用例的方法、系统、设备及介质 |
CN113495831A (zh) * | 2020-04-03 | 2021-10-12 | 卫宁健康科技集团股份有限公司 | 基于关键字生成测试用例的方法、系统、设备及介质 |
CN111340038A (zh) * | 2020-05-20 | 2020-06-26 | 四川新网银行股份有限公司 | 用于mock测试的一次性影像数据获取方法 |
CN114153717A (zh) * | 2020-08-17 | 2022-03-08 | 中国电信股份有限公司 | 在云网系统中实现自动化测试的方法和设备及计算机可读存储介质 |
CN111930630B (zh) * | 2020-08-17 | 2024-01-05 | 电信科学技术第十研究所有限公司 | 基于数据流的大数据测试用例的生成方法及装置 |
CN111930630A (zh) * | 2020-08-17 | 2020-11-13 | 电信科学技术第十研究所有限公司 | 基于数据流的大数据测试用例的生成方法及装置 |
CN111913888A (zh) * | 2020-09-09 | 2020-11-10 | 中移(杭州)信息技术有限公司 | 函数生成方法、自动测试方法、电子设备及存储介质 |
CN112231201A (zh) * | 2020-09-18 | 2021-01-15 | 中国铁道科学研究院集团有限公司通信信号研究所 | 一种ctc系统自律机功能批量自动回归测试方法及系统 |
CN112231201B (zh) * | 2020-09-18 | 2024-06-11 | 中国铁道科学研究院集团有限公司通信信号研究所 | 一种ctc系统自律机功能批量自动回归测试方法及系统 |
CN112597011A (zh) * | 2020-12-16 | 2021-04-02 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN112597011B (zh) * | 2020-12-16 | 2024-04-16 | 测点大数据(苏州)有限公司 | 一种基于多语言的算子测试用例生成和优化方法 |
CN112506728A (zh) * | 2021-02-04 | 2021-03-16 | 上海国微思尔芯技术股份有限公司 | 一种用于原型验证系统的测试方法及装置 |
CN114398255A (zh) * | 2021-11-30 | 2022-04-26 | 际络科技(上海)有限公司 | 自动驾驶测试场景生成方法、装置、电子设备和存储介质 |
CN114756474A (zh) * | 2022-04-27 | 2022-07-15 | 苏州睿芯集成电路科技有限公司 | 一种cpu验证中随机向量的生成方法、装置以及电子设备 |
CN114756474B (zh) * | 2022-04-27 | 2023-07-21 | 苏州睿芯集成电路科技有限公司 | 一种cpu验证中随机向量的生成方法、装置以及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104268073A (zh) | 一种批量生成测试用例的方法 | |
CN106874244B (zh) | 一种基于工作序列的文档自动生成模型的构建方法 | |
CN102402430B (zh) | 一种利用脚本生成随机测试例方法和系统 | |
CN104317589B (zh) | 一种用于加载动态链接库的代码自动生成方法及装置 | |
CN107844424A (zh) | 基于模型的测试系统及方法 | |
CN102541521B (zh) | 基于结构化查询语言的操作指令自动生成装置及方法 | |
US7895575B2 (en) | Apparatus and method for generating test driver | |
CN108279885B (zh) | 一种对多个模型代码进行软件集成的方法及装置 | |
CN109032577B (zh) | 一种数据仿真方法 | |
CN104699613B (zh) | 一种航天器测试需求自动生成系统及其方法 | |
CN108984393A (zh) | 一种单元测试代码自动生成方法及装置 | |
CN104834510A (zh) | Can协议代码源文件的生成方法和装置 | |
CN112506759A (zh) | 伺服系统控制软件的自动化测试方法、装置及存储介质 | |
CN111078555A (zh) | 一种测试文件的生成方法、系统、服务器和存储介质 | |
CN115858336A (zh) | 测试向量生成方法及装置、计算设备和存储介质 | |
CN111723009A (zh) | 一种python自动化测试系列产品的框架系统 | |
CN105739481A (zh) | 工控软件的测试方法、装置及系统 | |
CN113868046B (zh) | 一种pad控制单元的功能验证方法及系统 | |
CN112668292B (zh) | 一种从系统配置规则中自动提取追踪矩阵的方法及其应用 | |
CN110502735B (zh) | 一种电子设备通用工艺文件快速制作方法及系统 | |
CN108090288A (zh) | 一种通过机器学习获取时序参数的方法 | |
CN104461569B (zh) | 一种基于matlab的c/c++程序生成辅助方法 | |
CN106528408A (zh) | 一种核电设计程序的测试系统 | |
US8701076B2 (en) | Capture of interconnectivity data for multi-pin devices in the design of emulator circuit boards | |
CN115525555A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150107 |