CN103853652A - 一种测试案例生成方法及装置 - Google Patents

一种测试案例生成方法及装置 Download PDF

Info

Publication number
CN103853652A
CN103853652A CN201210500437.2A CN201210500437A CN103853652A CN 103853652 A CN103853652 A CN 103853652A CN 201210500437 A CN201210500437 A CN 201210500437A CN 103853652 A CN103853652 A CN 103853652A
Authority
CN
China
Prior art keywords
test
test data
data
descriptor
sequence
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.)
Granted
Application number
CN201210500437.2A
Other languages
English (en)
Other versions
CN103853652B (zh
Inventor
石宏杨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210500437.2A priority Critical patent/CN103853652B/zh
Publication of CN103853652A publication Critical patent/CN103853652A/zh
Application granted granted Critical
Publication of CN103853652B publication Critical patent/CN103853652B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本发明公开了一种测试案例生成方法及装置,一种测试案例生成方法包括:获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;应用本发明方案,测试人员可以用很低的成本维护千万量级的测试案例。避免了当***发生变化或升级时大幅度改动测试案例代码。

Description

一种测试案例生成方法及装置
技术领域
本发明涉及测试技术领域,特别是涉及一种测试案例生成方法及装置。
背景技术
***测试是***生命周期的重要组成部分,对确保***的正确性和完整性具有重要意义。随着测试技术的发展,自动化测试技术已经被越来越广泛地使用,其主要涉及测试数据自动准备、测试案例的自动执行和校验、测试环境的自动部署等方面。
测试案例的生成,也是测试的一个重要环节,快速、全面地准备好测试案例,可以显著提高测试效率,缩短测试周期。利用现有技术,可以根据待测***的数据特性自动地构造测试数据,但是,对于自动生成的测试数据,仍然需要人工编写需要测试的操作序列(例如***、删除、修改、查询等),进而得到测试案例。
在上述方案中,尽管测试数据可以自动生成,然而由于需要人工编写操作序列,因此最终生成的测试案例中,实际能够覆盖到的操作逻辑仍然是非常有限的,难以模拟真实的测试条件。而且,这种方法生成的测试案例,将被测***的数据特性和逻辑特性耦合在一起,一旦测试需求发生改动,原有的测试案例基本无法重用,需要重新生成测试案例,导致维护成本较高。
发明内容
为解决上述技术问题,本发明实施例提供一种测试案例生成方法及装置,技术方案如下:
本发明实施例提供一种测试案例生成方法,该方法包括:
获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
利用所得到的包含给定测试数据的操作序列,生成测试案例。
根据本发明的一种具体实施方式,该方法还包括:
获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
根据本发明的一种具体实施方式,所述测试数据由若干字段组成,所述根据测试数据描述信息生成测试数据集合,包括:
根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据;
对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
根据本发明的一种具体实施方式,所述对各个字段的备选数据进行组合,根据组合结果生成测试数据集合,包括:
根据测试数据描述信息中指定的组合方式,对各个字段的备选数据进行组合;
和/或
根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据;
和/或
根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
根据本发明的一种具体实施方式,所述获取预设的测试逻辑描述信息,确定需要测试的操作序列集合,包括:
对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序;
根据解析结果,确定需要测试的操作序列集合。
根据本发明的一种具体实施方式,所述对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列,包括:
根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
本发明实施例还提供一种测试案例生成装置,该装置包括:
数据特征处理单元,用于获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
逻辑特征处理单元,用于获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
测试序列生成单元,用于对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
测试案例生成单元,用于利用所得到的包含给定测试数据的操作序列,生成测试案例。
根据本发明的一种具体实施方式,该装置还包括:
***特征处理单元,用于获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
根据本发明的一种具体实施方式,所述测试数据由若干字段组成,所述数据特征处理单元包括:
字段数据生成子单元,用于根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据;
字段数据组合子单元,用于对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
根据本发明的一种具体实施方式,所述字段数据组合子单元,具体用于:
根据测试数据描述信息中指定的组合方式,对各个字段的备选数据进行组合;
和/或
根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据;
和/或
根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
根据本发明的一种具体实施方式,所述逻辑特征处理单元,具体用于:
对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序;
根据解析结果,确定需要测试的操作序列集合。
根据本发明的一种具体实施方式,所述测试序列生成单元,具体用于:
根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
本发明实施例所提供的技术方案,预先将被测***的测试数据需求和测试逻辑需求独立出来并存储为描述信息,在生成测试案例的过程中,通过分别读取测试数据需求和测试逻辑需求,对不同的测试数据和测试逻辑进行组合,自动构造多样性的测试序列,测试人员仅需分别对测试数据和测试逻辑进行定义,就能够得到有效覆盖多种测试数据和多种测试逻辑的测试案例。另一方面,一旦测试需求发生变化,对于测试人员而言,仅需直接修改测试数据描述信息或测试逻辑描述信息,就可以利用本发明方案快速批量生成新的测试案例,对于测试需求经常变化的应用场景而言,能够明显维护成本,提高测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本发明实施例测试案例生成方法的一种流程图;
图2为本发明实施例测试案例生成方法的第二种流程图;
图3为本发明实施例测试案例生成装置的一种结构示意图;
图4为本发明实施例测试案例生成装置的第二种结构示意图。
具体实施方式
首先对本发明实施例所提供的一种测试案例生成方法进行说明,该方法可以包括以下步骤:
获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
利用所得到的包含给定测试数据的操作序列,生成测试案例。
本发明实施例所提供的技术方案,预先将被测***的测试数据需求和测试逻辑需求独立出来并存储为描述信息,在生成测试案例的过程中,通过分别读取测试数据需求和测试逻辑需求,对不同的测试数据和测试逻辑进行组合,自动构造多样性的测试序列,测试人员仅需分别对测试数据和测试逻辑进行定义,就能够得到有效覆盖多种测试数据和多种测试逻辑的测试案例。另一方面,一旦测试需求发生变化,对于测试人员而言,仅需直接修改测试数据描述信息或测试逻辑描述信息,就可以利用本发明方案快速批量生成新的测试案例,对于测试需求经常变化的应用场景而言,能够明显维护成本,提高测试效率。
根据本发明的方案,测试人员预先根据测试需要,对测试所需数据的基本需求以及需要测试的逻辑进行定义,生成测试数据描述信息和测试逻辑描述信息,下面分别对这两种描述信息进行说明:
测试数据描述信息中对测试数据的基本要求进行了定义,在该信息中,可以包含测试数据名称、类型、取值范围、需要生成的测试数据数量等基本信息。
在实际应用过程中,所需数据对应的可能是一张数据表,也就是说,需要生成含有多个数据字段的测试数据,在本发明的一种实施方式中,可以在测试数据描述信息中,分别对每个字段的数据需求进行描述,在生成测试数据的过程中,分别按照每个字段的需求生成数据,最后对各个字段的数据进行组合,从而生成测试数据。
每个数据字段的涉及基本属性包括字段名、字段类型等等。此外,对于不同的字段,可能需要定义取值范围、必须包含的取值、不允许包含的取值等等。为了充分对测试对象进行测试,有时还需要特地生成一些非法值或异常数据,同时在测试案例中给出对于这些“错误”数据的预期处理方法,以判断测试对象是否能够针对这些“错误”数据给出预期的处理。
在本发明的一种实施例中,可以使用自定义的语法格式对测试数据的需求进行描述,例如,当前需要生成weight、reason、layer、name四个不同类型的字段,测试数据描述信息可以按照以下形式定义:
在上述数据描述信息中,四个字段的数据分别通过tag1~tag4进行描述,在每个字段的描述信息中,分别定义了该字段的名称(name)、类型(type)、限定条件(例如最大/最小值方式限定、指定取值方式限定等)以及对错误/异常数据的处理方式等。
例如tag1的要求是:字段名称为name、字段类型是i nt、合法的取值范围是[1,15],如果生成的数据不属于这个范围,则对该数据进行丢弃(drop)处理,即对非法数据按照“空值”NULL进行处理。
另外,在上述数据描述信息的头部,还定义了每个字段需要生成的数据数量datanum=10、总共需要生成的测试数据数量allnum=100。
进一步地,在上述数据描述信息中,还定义了分别生成四个字段的数据后、对四个字段数据的组合方式:combinetype=random,这里采用的是随机(random)组合的方式,结合前面的数量定义信息可知:四个字段,每个字段生成10个数据,则总共可能形成410种组合,随机在这410种组合中选取100种,作为最终使用的测试数据。当然,在实际应用中,还可以采用顺序组合、指定组合等方式,如果对组合方式没有定义,则在生成测试数据的过程中可以采用某种默认的组合方式。
更进一步地,在上述数据描述信息中,还在rule字段中描述了对组合后的数据的整体限定条件。就本实施例而言,其含义是:如果某条数据的字段1数值等于3、并且字段2数值小于20,则对该条数据进行丢弃(drop)处理。
测试逻辑描述信息对需要测试的操作逻辑进行了定义,在该信息中,可以包含需要执行的操作、执行次数、执行顺序等基本信息。以下示出了一种测试逻辑描述信息的具体实例:
Figure BDA00002493315200071
上述测试逻辑描述信息是采用正则表达式的形式,根据上述测试逻辑描述信息可知,需要测试的操作如下:首先进行10次Add操作,然后进行15次Mod操作,接下来并发执行Scan、Query、Add和Del四种操作,其中Scan执行1到5次,Query至少执行1次,Add执行1次、6次或9次,Del可以执行或不执行,最后执行1次Check。
另外,以上是按照测试逻辑描述信息中的代码内容直接确定各种操作的执行顺序,可以理解的是,在实际应用中,也可以对所有的给定操作执行“排列”运算,从而得出不同的执行顺序。
以上分别介绍了本发明实施例中的测试数据描述信息和测试逻辑描述信息,在本发明的一种优选实施方式中,为了满足测试案例在不同***间的复用需求,测试人员还可以进一步对测试对象的一些常规特性进行描述,生成测试对象描述信息。这样,在后续生成测试案例时,就可以根据测试对象描述信息,进一步对测试案例的执行环境进行自动配置。
测试对象描述信息描述了被测***的一些常规特性,例如被测***的端口号、程序名称、启动方式、操作接口、缓冲区大小等特征。以下示出了一种测试对象描述信息的具体实例:
Figure BDA00002493315200081
根据上述测试对象描述信息可知:被测***的端口号为10000、程序名称为serverA、数据路径为/home/work/disk/、启动路径为、缓冲区大小为,启动命令格式为./$SERVERNAME -p$PORT–d$RUNDIR。
可以理解的是,以上的测试数据描述信息、测试逻辑描述信息、测试对象描述信息均为示意性说明,不应理解为对本发明方案的限制,本领域技术人员可以根据实际需求,对各种描述信息中所定义的实际内容进行增减、修改,或者采用其他的描述信息表达格式,这些并不影响本发明整体方案的实施。
下面结合一个具体实例,对本发明的方案进行说明,假设预先生成的测试数据描述信息、测试逻辑描述信息分别如前面实施例所示,那么根据上述信息生成测试案例的方法如图1所示,可以包括以下步骤:
S101,获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
首先读取测试数据描述信息,确定需要生成的测试数据要求。就本实施例而言,需要生成weight、reason、layer、name四个不同类型的字段。根据每个字段需要生成的数据数量datanum=10,分别随机生成4个字段的备选数据,例如:
tag1:[-5,0,1,15,10,3,11,abc,……]
tag2:[-10,0,1,65535,6553500,40,x,……]
tag3:[“\0”,“11”,“aaaa”,“a”,“123”……]
tag4:[1,2,3,4,5,……]
其中每个字段应该有10个数值,在上面的例子中未全部示出。
根据全局或对每个字段的定义随机数据的生成机制(在本实施例的测试数据描述信息中未示出),可以允许生成各种类型的随机数值,例如数值、文本、空字符串、含有其他特殊符号的字符串等等。根据具体的测试需求,很多数值对于测试对象而言是不可用的,但是为了测试程序的对异常数据的处理能力,这些“非法”的数值是测试案例中所实际需要的。进一步地,根据在数据描述信息给出的异常数据处理方式,还可以得出期望的输入数据。通过将原始生成的数据和期望数据分别输入被测***,比较二者的输出是否一致,就可以测试出被测***是否具有期望的异常处理能力。
以tag1为例:根据限定条件max:15,min:1可知,所生成的0、-5、30、abc等均为非法数值,根据指定的处理方式drop,应该对这些数据以“NULL”的方式进行处理,即期望数据tag1’为:[NULL,NULL,1,15,10,NULL,11,NULL,……],也就是说,对于输入的异常数据tag1,希望被测***能够实际按照tag1’的数值进行处理。在执行测试案例的过程中,可以分别将实际随机生成的tag1和tag1’输入被测***,如果二者最终得到的结果相同,说明符合测试预期。
当然,异常测试数据的生成以及对于异常情况的处理,仅是一种具体的实施方式,不应该理解为对本发明技术方案的限制。
分别生成每个字段的备选数据之后,进一步对各个字段的备选数据进行组合,在本实施例的数据描述信息中,定义了字段间的组合方式combinetype=random,因此采用随机的方式,把各个tag中的数值组合起来,另外根据测试数据总量要求allnum=100,总共生成100组数据,示例如下:
[tag1:15,tag2:1,tag3:“11”,tag4:2]
[tag1:10,tag2:65535,tag3:“\0”,tag4:3]
[tag1:3,tag2:0,tag3:“123”,tag4:5]
……(共100组)
可以理解的是,如果单一字段的数据具有期望值,则还需要根据上面的组合方式,相应生成组合后的期望数据。
根据rule字段中限定的条件,还需要对组合后的数据做进一步核查,在本实施例中,规定了如果某条数据的字段1数值等于3、并且字段2数值小于20,则对该条数据进行丢弃(drop)处理。可见,[tag1:3,tag2:0,tag3:“123”,tag4:5]这条数据符合条件,应该进行丢弃处理。根据具体的测试需求,对于已丢弃的数据,可以重新生成新的数据以补足数量;也可以像前面的实施例那样,给出期望值;当然也可以不做处理,这里不再详细说明。
S102,获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
首先读取测试逻辑描述信息,确定需要执行的操作,执行次数、执行顺序等信息,就本实施例而言,需要测试的操作如下:首先进行10次Add操作,然后进行15次Mod操作,接下来并发执行Scan、Query、Add和Del四种操作,其中Scan执行1到5次,Query至少执行1次,Add执行1次、6次或9次,Del可以执行或不执行,最后执行1次Check。
在本实施例测试逻辑描述信息中,已经直接限定了每种操作的执行顺序,因此在生成操作序列时,仅需进行“组合”而不需要“排列”。组合之后生成的操作序列示意如下:
Figure BDA00002493315200111
类似对测试数据的组合,在测试逻辑描述信息中,也可以预先指定排列/组合方式、指定需要生成的操作序列数量、或者给出一些限定条件等等,这里不再详细描述。
S103,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
利用S101所生成的测试数据以及S102所生成的操作序列,二者进行组合,可以得到若干包含测试数据的操作序列。以操作序列
Figure BDA00002493315200112
为例,加入测试数据后,生成结果如下:
Figure BDA00002493315200113
Figure BDA00002493315200121
根据所生成的其他测试数据和操作序列,通过组合可以产生大量含有数据的操作序列,这些组合结果能够覆盖各种字段、各种取值、各种操作的多种情况,有效地模拟真实的使用场景。
当然,在生成含有数据操作序列的过程中,同样可以预先指定组合方式、指定需要生成的操作序列数量、或者给出一些限定条件等等,这里不再详细描述。
S104,利用所得到的包含给定测试数据的操作序列,生成测试案例。
利用前面生成的一个或多个包含给定测试数据的操作序列,可以直接生成测试案例。
参见图2的步骤S104a所示所示,在本发明的一种实施方式中,还可以根据测试对象描述信息,对测试案例的执行环境进行配置。
例如,根据测试对象描述信息
Figure BDA00002493315200122
可以得到启动被测***的命令行:
./dataserver–p 9990–d  /home/data/
将该命令行写入测试案例中,就可以在执行测试案例时,自动启动被测***。利用类似的方法,还可以对被测***的其他参数进行配置,例如缓存大小,数据源路径等等,这里不再一一举例说明。
通过以上的实施例可以看出,本发明方案将整体测试需求中的测试数据需求和测试逻辑需求解耦,测试人员可以分别对两种需求进行单独定义。根据图2所示,测试人员还可以进一步对测试对象的参数进行独立定义。
根据本发明所提供的实施方案,测试数据描述信息、测试逻辑描述信息、测试对象描述信息三者是彼此独立的,当测试需求发生变化时,例如数据特征增加或减少几个字段,那么仅需要修改测试数据描述信息,把对应tag的信息添加或删除;如果是需要测试的操作逻辑发生变化,则仅需要修改测试逻辑描述信息,增加、修改或删除对应的操作;被测***特性发生变化时也是同样道理。总之,应用本发明方案,测试人员仅需少量修改,就可以快速重新生成测试案例,可以用很低的成本维护千万量级的测试案例。避免了当***发生变化或升级时,大幅度改动测试案例代码。
相应于上面的方法实施例,本发明还提供一种测试案例生成装置,参见图3所示,该装置可以包括:数据特征处理单元210,逻辑特征处理单元220,测试序列生成单元230和测试案例生成单元240。以下分别对各个单元的功能及协作关系进行说明。
数据特征处理单元210,用于获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
在本发明的一种具体实施方式中,数据特征处理单元210具体可以包括:
字段数据生成子单元,用于根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据;
字段数据组合子单元,用于对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
字段数据生成子单元首先读取测试数据描述信息,确定需要生成的测试数据要求。就本实施例而言,需要生成weight、reason、layer、name四个不同类型的字段。根据每个字段需要生成的数据数量datanum=10,分别随机生成4个字段的备选数据,例如:
tag1:[-5,0,1,15,10,3,11,abc,……]
tag2:[-10,0,1,65535,6553500,40,x,……]
tag3:[“\0”,“11”,“aaaa”,“a”,“123”……]
tag4:[1,2,3,4,5,……]
其中每个字段应该有10个数值,在上面的例子中未全部示出。
根据全局或对每个字段的定义随机数据的生成机制(在本实施例的测试数据描述信息中未示出),可以允许生成各种类型的随机数值,例如数值、文本、空字符串、含有其他特殊符号的字符串等等。根据具体的测试需求,很多数值对于测试对象而言是不可用的,但是为了测试程序的对异常数据的处理能力,这些“非法”的数值是测试案例中所实际需要的。进一步地,根据在数据描述信息给出的异常数据处理方式,还可以得出期望的输入数据。通过将原始生成的数据和期望数据分别输入被测***,比较二者的输出是否一致,就可以测试出被测***是否具有期望的异常处理能力。
以tag1为例:根据限定条件max:15,min:1可知,所生成的0、-5、30、abc等均为非法数值,根据指定的处理方式drop,应该对这些数据以“NULL”的方式进行处理,即期望数据tag1’为:[NULL,NULL,1,15,10,NULL,11,NULL,……],也就是说,对于输入的异常数据tag1,希望被测***能够实际按照tag1’的数值进行处理。在执行测试案例的过程中,可以分别将实际随机生成的tag1和tag1’输入被测***,如果二者最终得到的结果相同,说明符合测试预期。
当然,异常测试数据的生成以及对于异常情况的处理,仅是一种具体的实施方式,不应该理解为对本发明技术方案的限制。
字段数据生成子单元分别生成每个字段的备选数据之后,字段数据组合子单元进一步对各个字段的备选数据进行组合,在本实施例的数据描述信息中,定义了字段间的组合方式combinetype=random,因此采用随机的方式,把各个tag中的数值组合起来,另外根据测试数据总量要求allnum=100,总共生成100组数据,示例如下:
[tag1:15,tag2:1,tag3:“11”,tag4:2]
[tag1:10,tag2:65535,tag3:“\0”,tag4:3]
[tag1:3,tag2:0,tag3:“123”,tag4:5]
……(共100组)
可以理解的是,如果单一字段的数据具有期望值,则还需要根据上面的组合方式,相应生成组合后的期望数据。
根据rule字段中限定的条件,还需要对组合后的数据做进一步核查,在本实施例中,规定了如果某条数据的字段1数值等于3、并且字段2数值小于20,则对该条数据进行丢弃(drop)处理。可见,[tag1:3,tag2:0,tag3:“123”,tag4:5]这条数据符合条件,应该进行丢弃处理。根据具体的测试需求,对于已丢弃的数据,可以重新生成新的数据以补足数量;也可以像前面的实施例那样,给出期望值;当然也可以不做处理,这里不再详细说明。
逻辑特征处理单元220,用于获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
首先读取测试逻辑描述信息,确定需要执行的操作,执行次数、执行顺序等信息,就本实施例而言,需要测试的操作如下:首先进行10次Add操作,然后进行15次Mod操作,接下来并发执行Scan、Query、Add和Del四种操作,其中Scan执行1到5次,Query至少执行1次,Add执行1次、6次或9次,Del可以执行或不执行,最后执行1次Check。
在本实施例测试逻辑描述信息中,已经直接限定了每种操作的执行顺序,因此在生成操作序列时,仅需进行“组合”而不需要“排列”。组合之后生成的操作序列示意如下:
Figure BDA00002493315200151
Figure BDA00002493315200161
类似对测试数据的组合,在测试逻辑描述信息中,也可以预先指定排列/组合方式、指定需要生成的操作序列数量、或者给出一些限定条件等等,这里不再详细描述。
测试序列生成单元230,用于对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
利用数据特征处理单元210所生成的测试数据以及逻辑特征处理单元220所生成的操作序列,二者进行组合,可以得到若干包含测试数据的操作序列。以操作序列
Figure BDA00002493315200162
为例,加入测试数据后,生成结果如下:
Figure BDA00002493315200171
根据所生成的其他测试数据和操作序列,通过组合可以产生大量含有数据的操作序列,这些组合结果能够覆盖各种字段、各种取值、各种操作的多种情况,有效地模拟真实的使用场景。
当然,在生成含有数据操作序列的过程中,同样可以预先指定组合方式、指定需要生成的操作序列数量、或者给出一些限定条件等等,这里不再详细描述。
测试案例生成单元240,用于利用所得到的包含给定测试数据的操作序列,生成测试案例。
参见图4所示,本发明实施例所提供的测试案例生成装置,还可以进一步包括***特征处理单元250,用于获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
例如,根据测试对象描述信息
Figure BDA00002493315200172
Figure BDA00002493315200181
可以得到启动被测***的命令行:
./dataserver–p9990–d /home/data/
将该命令行写入测试案例中,就可以在执行测试案例时,自动启动被测***。利用类似的方法,还可以对被测***的其他参数进行配置,例如缓存大小,数据源路径等等,这里不再一一举例说明。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种测试案例生成方法,其特征在于,该方法包括:
获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
利用所得到的包含给定测试数据的操作序列,生成测试案例。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:
获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
3.根据权利要求1所述的方法,其特征在于,所述测试数据由若干字段组成,所述根据测试数据描述信息生成测试数据集合,包括:
根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据;
对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
4.根据权利要求3所述的方法,其特征在于,所述对各个字段的备选数据进行组合,根据组合结果生成测试数据集合,包括:
根据测试数据描述信息中指定的组合方式,对各个字段的备选数据进行组合;
和/或
根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据;
和/或
根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
5.根据权利要求1所述的方法,其特征在于,所述获取预设的测试逻辑描述信息,确定需要测试的操作序列集合,包括:
对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序;
根据解析结果,确定需要测试的操作序列集合。
6.根据权利要求1所述的方法,其特征在于,所述对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列,包括:
根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
7.一种测试案例生成装置,其特征在于,该装置包括:
数据特征处理单元,用于获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
逻辑特征处理单元,用于获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
测试序列生成单元,用于对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
测试案例生成单元,用于利用所得到的包含给定测试数据的操作序列,生成测试案例。
8.根据权利要求7所述的装置,其特征在于,该装置还包括:
***特征处理单元,用于获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
9.根据权利要求7所述的装置,其特征在于,所述测试数据由若干字段组成,所述数据特征处理单元包括:
字段数据生成子单元,用于根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据;
字段数据组合子单元,用于对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
10.根据权利要求9所述的装置,其特征在于,所述字段数据组合子单元,具体用于:
根据测试数据描述信息中指定的组合方式,对各个字段的备选数据进行组合;
和/或
根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据;
和/或
根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
11.根据权利要求7所述的装置,其特征在于,所述逻辑特征处理单元,具体用于:
对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序;
根据解析结果,确定需要测试的操作序列集合。
12.根据权利要求7所述的装置,其特征在于,所述测试序列生成单元,具体用于:
根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
CN201210500437.2A 2012-11-29 2012-11-29 一种测试案例生成方法及装置 Active CN103853652B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210500437.2A CN103853652B (zh) 2012-11-29 2012-11-29 一种测试案例生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210500437.2A CN103853652B (zh) 2012-11-29 2012-11-29 一种测试案例生成方法及装置

Publications (2)

Publication Number Publication Date
CN103853652A true CN103853652A (zh) 2014-06-11
CN103853652B CN103853652B (zh) 2019-02-12

Family

ID=50861331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210500437.2A Active CN103853652B (zh) 2012-11-29 2012-11-29 一种测试案例生成方法及装置

Country Status (1)

Country Link
CN (1) CN103853652B (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850494A (zh) * 2015-04-29 2015-08-19 百度在线网络技术(北京)有限公司 一种用于存储***测试的方法与设备
CN107741905A (zh) * 2017-09-11 2018-02-27 珠海格力电器股份有限公司 测试用例及其解析模型、执行方法、存储介质和处理器
CN107908559A (zh) * 2017-11-15 2018-04-13 中国农业银行股份有限公司 一种测试案例设计方法及装置
CN108062276A (zh) * 2017-12-19 2018-05-22 北京小度信息科技有限公司 测试用例的生成方法及装置和测试报告的生成方法及装置
CN108427632A (zh) * 2017-02-14 2018-08-21 腾讯科技(深圳)有限公司 自动测试方法及装置
CN108710569A (zh) * 2018-05-09 2018-10-26 深圳壹账通智能科技有限公司 测试案例生成方法、数据生成方法、装置、设备及介质
CN108763070A (zh) * 2018-05-16 2018-11-06 北京金山云网络技术有限公司 测试数据的生成方法、装置及电子设备
CN108763083A (zh) * 2018-05-30 2018-11-06 平安普惠企业管理有限公司 自动化测试方法、装置、计算机设备及存储介质
CN109684205A (zh) * 2018-12-12 2019-04-26 恒生电子股份有限公司 ***测试方法、装置、电子设备及存储介质
CN110209566A (zh) * 2018-04-08 2019-09-06 腾讯科技(深圳)有限公司 一种对软件的测试方法及装置
CN110287118A (zh) * 2019-06-28 2019-09-27 四川长虹电器股份有限公司 测试用例的测试数据生成方法及软件测试方法
CN110825610A (zh) * 2018-08-14 2020-02-21 北京京东尚科信息技术有限公司 一种用于提供测试数据的方法和装置
CN111143221A (zh) * 2019-12-28 2020-05-12 中国银行股份有限公司 一种测试方法及装置
CN111459830A (zh) * 2020-04-07 2020-07-28 中国建设银行股份有限公司 测试案例生成方法及装置
CN111949552A (zh) * 2020-09-03 2020-11-17 Oppo广东移动通信有限公司 测试用例集生成方法、装置、计算机设备及存储介质
CN111984522A (zh) * 2019-05-23 2020-11-24 杭州海康威视***技术有限公司 一种自动化测试的方法及装置
CN112100084A (zh) * 2020-11-17 2020-12-18 支付宝(杭州)信息技术有限公司 生成智能合约测试案例的方法和装置
CN113360364A (zh) * 2020-03-04 2021-09-07 腾讯科技(深圳)有限公司 目标对象的测试方法及装置
CN113821481A (zh) * 2020-06-19 2021-12-21 北京金山云网络技术有限公司 测试数据源的生成方法、装置及服务器
CN115543775A (zh) * 2022-08-17 2022-12-30 睿智合创(北京)科技有限公司 一种测试案例自动生成方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845079A (zh) * 2005-04-07 2006-10-11 华为技术有限公司 一种测试向量的产生方法
CN1873625A (zh) * 2005-08-19 2006-12-06 华为技术有限公司 一种基于功能覆盖率的随机激励的自动产生方法
CN101187894A (zh) * 2006-11-15 2008-05-28 中兴通讯股份有限公司 一种基于关键字驱动的自动测试方法及其测试***
CN101221502A (zh) * 2008-02-01 2008-07-16 中国建设银行股份有限公司 软件测试的案例设计方法及装置
CN101645012A (zh) * 2009-09-11 2010-02-10 兰雨晴 基础软件平台集成测试的组合选择方法
CN101908015A (zh) * 2009-06-04 2010-12-08 中国工商银行股份有限公司 一种基于构件生成测试案例的装置及方法
CN101984416A (zh) * 2010-11-02 2011-03-09 中兴通讯股份有限公司 一种测试用例的生成方法及装置
CN102541735A (zh) * 2011-12-28 2012-07-04 云海创想信息技术(天津)有限公司 软件自动化测试方法
CN102622294A (zh) * 2011-01-28 2012-08-01 国际商业机器公司 生成用于不同测试类型的测试用例的方法和装置
US20120210290A1 (en) * 2009-10-30 2012-08-16 Synopsys (Shanghai) Co., Ltd. Method and Device for Reconstructing Scan Chain Based on Bidirectional Preference Selection in Physical Design

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1845079A (zh) * 2005-04-07 2006-10-11 华为技术有限公司 一种测试向量的产生方法
CN1873625A (zh) * 2005-08-19 2006-12-06 华为技术有限公司 一种基于功能覆盖率的随机激励的自动产生方法
CN101187894A (zh) * 2006-11-15 2008-05-28 中兴通讯股份有限公司 一种基于关键字驱动的自动测试方法及其测试***
CN101221502A (zh) * 2008-02-01 2008-07-16 中国建设银行股份有限公司 软件测试的案例设计方法及装置
CN101908015A (zh) * 2009-06-04 2010-12-08 中国工商银行股份有限公司 一种基于构件生成测试案例的装置及方法
CN101645012A (zh) * 2009-09-11 2010-02-10 兰雨晴 基础软件平台集成测试的组合选择方法
US20120210290A1 (en) * 2009-10-30 2012-08-16 Synopsys (Shanghai) Co., Ltd. Method and Device for Reconstructing Scan Chain Based on Bidirectional Preference Selection in Physical Design
CN101984416A (zh) * 2010-11-02 2011-03-09 中兴通讯股份有限公司 一种测试用例的生成方法及装置
CN102622294A (zh) * 2011-01-28 2012-08-01 国际商业机器公司 生成用于不同测试类型的测试用例的方法和装置
CN102541735A (zh) * 2011-12-28 2012-07-04 云海创想信息技术(天津)有限公司 软件自动化测试方法

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850494A (zh) * 2015-04-29 2015-08-19 百度在线网络技术(北京)有限公司 一种用于存储***测试的方法与设备
CN104850494B (zh) * 2015-04-29 2018-05-25 百度在线网络技术(北京)有限公司 一种用于存储***测试的方法与设备
CN108427632A (zh) * 2017-02-14 2018-08-21 腾讯科技(深圳)有限公司 自动测试方法及装置
CN108427632B (zh) * 2017-02-14 2021-12-31 腾讯科技(深圳)有限公司 自动测试方法及装置
CN107741905A (zh) * 2017-09-11 2018-02-27 珠海格力电器股份有限公司 测试用例及其解析模型、执行方法、存储介质和处理器
CN107908559A (zh) * 2017-11-15 2018-04-13 中国农业银行股份有限公司 一种测试案例设计方法及装置
CN107908559B (zh) * 2017-11-15 2021-05-07 中国农业银行股份有限公司 一种测试案例设计方法及装置
CN108062276A (zh) * 2017-12-19 2018-05-22 北京小度信息科技有限公司 测试用例的生成方法及装置和测试报告的生成方法及装置
CN110209566A (zh) * 2018-04-08 2019-09-06 腾讯科技(深圳)有限公司 一种对软件的测试方法及装置
CN110209566B (zh) * 2018-04-08 2021-09-28 腾讯科技(深圳)有限公司 一种对软件的测试方法及装置
CN108710569A (zh) * 2018-05-09 2018-10-26 深圳壹账通智能科技有限公司 测试案例生成方法、数据生成方法、装置、设备及介质
CN108763070A (zh) * 2018-05-16 2018-11-06 北京金山云网络技术有限公司 测试数据的生成方法、装置及电子设备
CN108763083A (zh) * 2018-05-30 2018-11-06 平安普惠企业管理有限公司 自动化测试方法、装置、计算机设备及存储介质
CN110825610A (zh) * 2018-08-14 2020-02-21 北京京东尚科信息技术有限公司 一种用于提供测试数据的方法和装置
CN109684205A (zh) * 2018-12-12 2019-04-26 恒生电子股份有限公司 ***测试方法、装置、电子设备及存储介质
CN109684205B (zh) * 2018-12-12 2022-02-08 恒生电子股份有限公司 ***测试方法、装置、电子设备及存储介质
CN111984522A (zh) * 2019-05-23 2020-11-24 杭州海康威视***技术有限公司 一种自动化测试的方法及装置
CN111984522B (zh) * 2019-05-23 2024-02-27 杭州海康威视***技术有限公司 一种自动化测试的方法及装置
CN110287118A (zh) * 2019-06-28 2019-09-27 四川长虹电器股份有限公司 测试用例的测试数据生成方法及软件测试方法
CN111143221A (zh) * 2019-12-28 2020-05-12 中国银行股份有限公司 一种测试方法及装置
CN111143221B (zh) * 2019-12-28 2024-01-30 中国银行股份有限公司 一种测试方法及装置
CN113360364B (zh) * 2020-03-04 2024-04-19 腾讯科技(深圳)有限公司 目标对象的测试方法及装置
CN113360364A (zh) * 2020-03-04 2021-09-07 腾讯科技(深圳)有限公司 目标对象的测试方法及装置
CN111459830A (zh) * 2020-04-07 2020-07-28 中国建设银行股份有限公司 测试案例生成方法及装置
CN111459830B (zh) * 2020-04-07 2024-03-08 建信金融科技有限责任公司 测试案例生成方法及装置
CN113821481A (zh) * 2020-06-19 2021-12-21 北京金山云网络技术有限公司 测试数据源的生成方法、装置及服务器
CN113821481B (zh) * 2020-06-19 2024-05-24 北京金山云网络技术有限公司 测试数据源的生成方法、装置及服务器
CN111949552A (zh) * 2020-09-03 2020-11-17 Oppo广东移动通信有限公司 测试用例集生成方法、装置、计算机设备及存储介质
CN112100084A (zh) * 2020-11-17 2020-12-18 支付宝(杭州)信息技术有限公司 生成智能合约测试案例的方法和装置
CN115543775A (zh) * 2022-08-17 2022-12-30 睿智合创(北京)科技有限公司 一种测试案例自动生成方法
CN115543775B (zh) * 2022-08-17 2023-06-23 睿智合创(北京)科技有限公司 一种测试案例自动生成方法

Also Published As

Publication number Publication date
CN103853652B (zh) 2019-02-12

Similar Documents

Publication Publication Date Title
CN103853652A (zh) 一种测试案例生成方法及装置
US9852121B2 (en) Automatic relationship detection for spreadsheet data items
CN103186460B (zh) 一种生成测试用例脚本的方法、装置及***
CN112036736A (zh) 一种工作流创建方法及装置
US20040073890A1 (en) Method and system for test management
US20120042302A1 (en) Selective regression testing
CN109783346B (zh) 基于关键字驱动的自动化测试方法、装置及终端设备
CN104217029A (zh) 一种配置文件的修改方法及装置
CN104572321A (zh) 基于控制准则的测试选择的方法和装置
US9195730B2 (en) Verifying correctness of a database system via extended access paths
CN104268272A (zh) 一种数据唯一性检查方法及装置
CN105302717A (zh) 一种大数据平台的检测方法及装置
CN105912460A (zh) 一种基于qtp的软件测试方法及***
CN106204285A (zh) 基于云计算的保险规则处理方法及***
US20140337673A1 (en) Creating test templates based on steps in existing tests
CN104484358A (zh) 一种流程模板展示的方法及***
CN101673374A (zh) 一种单据处理方法和装置
US8990626B2 (en) Method and apparatus for determining relevance of assignments in combinatorial models
CN105512017A (zh) 一种数据库兼容性检测方法及设备
CN105740219A (zh) 一种报表的自定义方法及装置
US8949793B1 (en) Test bed design from customer system configurations using machine learning techniques
EP3413149A1 (en) Field device commissioning system and field device commissioning method
CN102981946A (zh) Etl冒烟测试方法
CN105701645A (zh) 一种物料管理方法及装置
CN104536897A (zh) 基于关键字的自动测试方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant