一种测试案例生成方法及装置制造方法

文档序号:6492023阅读:146来源:国知局
一种测试案例生成方法及装置制造方法
【专利摘要】本发明公开了一种测试案例生成方法及装置,一种测试案例生成方法包括:获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;应用本发明方案,测试人员可以用很低的成本维护千万量级的测试案例。避免了当系统发生变化或升级时大幅度改动测试案例代码。
【专利说明】一种测试案例生成方法及装置
【技术领域】
[0001]本发明涉及测试【技术领域】,特别是涉及一种测试案例生成方法及装置。
【背景技术】
[0002]系统测试是系统生命周期的重要组成部分,对确保系统的正确性和完整性具有重要意义。随着测试技术的发展,自动化测试技术已经被越来越广泛地使用,其主要涉及测试数据自动准备、测试案例的自动执行和校验、测试环境的自动部署等方面。
[0003]测试案例的生成,也是测试的一个重要环节,快速、全面地准备好测试案例,可以显著提高测试效率,缩短测试周期。利用现有技术,可以根据待测系统的数据特性自动地构造测试数据,但是,对于自动生成的测试数据,仍然需要人工编写需要测试的操作序列(例如插入、删除、修改、查询等),进而得到测试案例。
[0004]在上述方案中,尽管测试数据可以自动生成,然而由于需要人工编写操作序列,因此最终生成的测试案例中,实际能够覆盖到的操作逻辑仍然是非常有限的,难以模拟真实的测试条件。而且,这种方法生成的测试案例,将被测系统的数据特性和逻辑特性耦合在一起,一旦测试需求发生改动,原有的测试案例基本无法重用,需要重新生成测试案例,导致维护成本较高。

【发明内容】

[0005]为解决上述技术问题,本发明实施例提供一种测试案例生成方法及装置,技术方案如下:
[0006]本发明实施例提供一种测试案例生成方法,该方法包括:
[0007]获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
[0008]获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
[0009]对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
[0010]利用所得到的包含给定测试数据的操作序列,生成测试案例。
[0011]根据本发明的一种【具体实施方式】,该方法还包括:
[0012]获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
[0013]根据本发明的一种【具体实施方式】,所述测试数据由若干字段组成,所述根据测试数据描述信息生成测试数据集合,包括:
[0014]根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据;
[0015]对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
[0016]根据本发明的一种【具体实施方式】,所述对各个字段的备选数据进行组合,根据组合结果生成测试数据集合,包括:[0017]根据测试数据描述信息中指定的组合方式,对各个字段的备选数据进行组合;
[0018]和/或
[0019]根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据;
[0020]和/ 或
[0021]根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
[0022]根据本发明的一种【具体实施方式】,所述获取预设的测试逻辑描述信息,确定需要测试的操作序列集合,包括:
[0023]对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序;
[0024]根据解析结果,确定需要测试的操作序列集合。
[0025]根据本发明的一种【具体实施方式】,所述对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列,包括:
[0026]根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
[0027]本发明实施例还提供一种测试案例生成装置,该装置包括:
[0028]数据特征处理单元,用于获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
[0029]逻辑特征处理单元,用于获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
[0030]测试序列生成单元,用于对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
[0031]测试案例生成单元,用于利用所得到的包含给定测试数据的操作序列,生成测试案例。
[0032]根据本发明的一种【具体实施方式】,该装置还包括:
[0033]系统特征处理单元,用于获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
[0034]根据本发明的一种【具体实施方式】,所述测试数据由若干字段组成,所述数据特征处理单元包括:
[0035]字段数据生成子单元,用于根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据;
[0036]字段数据组合子单元,用于对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
[0037]根据本发明的一种【具体实施方式】,所述字段数据组合子单元,具体用于:
[0038]根据测试数据描述信息中指定的组合方式,对各个字段的备选数据进行组合;
[0039]和/ 或
[0040]根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据;
[0041]和/或
[0042]根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
[0043]根据本发明的一种【具体实施方式】,所述逻辑特征处理单元,具体用于:[0044]对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序;
[0045]根据解析结果,确定需要测试的操作序列集合。
[0046]根据本发明的一种【具体实施方式】,所述测试序列生成单元,具体用于:
[0047]根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
[0048]本发明实施例所提供的技术方案,预先将被测系统的测试数据需求和测试逻辑需求独立出来并存储为描述信息,在生成测试案例的过程中,通过分别读取测试数据需求和测试逻辑需求,对不同的测试数据和测试逻辑进行组合,自动构造多样性的测试序列,测试人员仅需分别对测试数据和测试逻辑进行定义,就能够得到有效覆盖多种测试数据和多种测试逻辑的测试案例。另一方面,一旦测试需求发生变化,对于测试人员而言,仅需直接修改测试数据描述信息或测试逻辑描述信息,就可以利用本发明方案快速批量生成新的测试案例,对于测试需求经常变化的应用场景而言,能够明显维护成本,提高测试效率。
【专利附图】

【附图说明】
[0049]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
[0050]图1为本发明实施例测试案例生成方法的一种流程图;
[0051]图2为本发明实施例测试案例生成方法的第二种流程图;
[0052]图3为本发明实施例测试案例生成装置的一种结构示意图;
[0053]图4为本发明实施例测试案例生成装置的第二种结构示意图。
【具体实施方式】
[0054]首先对本发明实施例所提供的一种测试案例生成方法进行说明,该方法可以包括以下步骤:
[0055]获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合;
[0056]获取预设的测试逻辑描述信息,确定需要测试的操作序列集合;
[0057]对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列;
[0058]利用所得到的包含给定测试数据的操作序列,生成测试案例。
[0059]本发明实施例所提供的技术方案,预先将被测系统的测试数据需求和测试逻辑需求独立出来并存储为描述信息,在生成测试案例的过程中,通过分别读取测试数据需求和测试逻辑需求,对不同的测试数据和测试逻辑进行组合,自动构造多样性的测试序列,测试人员仅需分别对测试数据和测试逻辑进行定义,就能够得到有效覆盖多种测试数据和多种测试逻辑的测试案例。另一方面,一旦测试需求发生变化,对于测试人员而言,仅需直接修改测试数据描述信息或测试逻辑描述信息,就可以利用本发明方案快速批量生成新的测试案例,对于测试需求经常变化的应用场景而言,能够明显维护成本,提高测试效率。[0060]根据本发明的方案,测试人员预先根据测试需要,对测试所需数据的基本需求以及需要测试的逻辑进行定义,生成测试数据描述信息和测试逻辑描述信息,下面分别对这两种描述信息进行说明:
[0061]测试数据描述信息中对测试数据的基本要求进行了定义,在该信息中,可以包含测试数据名称、类型、取值范围、需要生成的测试数据数量等基本信息。
[0062]在实际应用过程中,所需数据对应的可能是一张数据表,也就是说,需要生成含有多个数据字段的测试数据,在本发明的一种实施方式中,可以在测试数据描述信息中,分别对每个字段的数据需求进行描述,在生成测试数据的过程中,分别按照每个字段的需求生成数据,最后对各个字段的数据进行组合,从而生成测试数据。
[0063]每个数据字段的涉及基本属性包括字段名、字段类型等等。此外,对于不同的字段,可能需要定义取值范围、必须包含的取值、不允许包含的取值等等。为了充分对测试对象进行测试,有时还需要特地生成一些非法值或异常数据,同时在测试案例中给出对于这些“错误”数据的预期处理方法,以判断测试对象是否能够针对这些“错误”数据给出预期的处理。
[0064]在本发明的一种实施例中,可以使用自定义的语法格式对测试数据的需求进行描述,例如,当前需要生成weight、reason、layer、name四个不同类型的字段,测试数据描述信息可以按照以下形式定义:
[0065]
global datanum=10, allnum=100, combinetype=random;
tag:1, name !weight.type:1nt, max: 15, rrtin:1, enOrdatadeal=diOp:
tag:2, name:reason, type:uint, Crrordaiadeai=Cut;
tag:3, name:layer, type:string , maxIen= 10, eriOrdatadeal=cut;
tag:4, nameiptEiiurtber type:enum, valuelist:[ 123,5], abnorraal=drop;
rule`
{
tag I ==3 and tag2 <20 ; drop
}
[0066]在上述数据描述信息中,四个字段的数据分别通过tagl、ag4进行描述,在每个字段的描述信息中,分别定义了该字段的名称(name)、类型(type)、限定条件(例如最大/最小值方式限定、指定取值方式限定等)以及对错误/异常数据的处理方式等。
[0067]例如tagl的要求是:字段名称为name、字段类型是i nt、合法的取值范围是[1,15],如果生成的数据不属于这个范围,则对该数据进行丢弃(drop)处理,即对非法数据按照“空值” NULL进行处理。
[0068]另外,在上述数据描述信息的头部,还定义了每个字段需要生成的数据数量datanum=10、总共需要生成的测试数据数量alInum=IOO。
[0069]进一步地,在上述数据描述信息中,还定义了分别生成四个字段的数据后、对四个字段数据的组合方式:combinetype=random,这里采用的是随机(random)组合的方式,结合前面的数量定义信息可知:四个字段,每个字段生成10个数据,则总共可能形成410种组合,随机在这410种组合中选取100种,作为最终使用的测试数据。当然,在实际应用中,还可以采用顺序组合、指定组合等方式,如果对组合方式没有定义,则在生成测试数据的过程中可以采用某种默认的组合方式。
[0070]更进一步地,在上述数据描述信息中,还在rule字段中描述了对组合后的数据的整体限定条件。就本实施例而言,其含义是:如果某条数据的字段I数值等于3、并且字段2数值小于20,则对该条数据进行丢弃(drop)处理。
[0071]测试逻辑描述信息对需要测试的操作逻辑进行了定义,在该信息中,可以包含需要执行的操作、执行次数、执行顺序等基本信息。以下示出了一种测试逻辑描述信息的具体实例:
[0072]
【权利要求】
1.一种测试案例生成方法,其特征在于,该方法包括: 获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合; 获取预设的测试逻辑描述信息,确定需要测试的操作序列集合; 对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列; 利用所得到的包含给定测试数据的操作序列,生成测试案例。
2.根据权利要求1所述的方法,其特征在于,该方法还包括: 获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
3.根据权利要求1所述的方法,其特征在于,所述测试数据由若干字段组成,所述根据测试数据描述信息生成测试数据集合,包括: 根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据; 对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
4.根据权利要求3所述的方法,其特征在于,所述对各个字段的备选数据进行组合,根据组合结果生成测试数据集合,包括: 根据测试数据描述信息中指定·的组合方式,对各个字段的备选数据进行组合; 和/或 根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据; 和/或 根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
5.根据权利要求1所述的方法,其特征在于,所述获取预设的测试逻辑描述信息,确定需要测试的操作序列集合,包括: 对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序; 根据解析结果,确定需要测试的操作序列集合。
6.根据权利要求1所述的方法,其特征在于,所述对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列,包括: 根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
7.—种测试案例生成装置,其特征在于,该装置包括: 数据特征处理单元,用于获取预设的测试数据描述信息,根据测试数据描述信息生成测试数据集合; 逻辑特征处理单元,用于获取预设的测试逻辑描述信息,确定需要测试的操作序列集合; 测试序列生成单元,用于对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列; 测试案例生成单元,用于利用所得到的包含给定测试数据的操作序列,生成测试案例。
8.根据权利要求7所述的装置,其特征在于,该装置还包括:系统特征处理单元,用于获取预设的测试对象描述信息,根据测试对象描述信息,对所述测试案例的执行环境进行配置。
9.根据权利要求7所述的装置,其特征在于,所述测试数据由若干字段组成,所述数据特征处理单元包括: 字段数据生成子单元,用于根据测试数据描述信息中,对多个字段的特征描述,分别随机生成每个字段的备选数据; 字段数据组合子单元,用于对各个字段的备选数据进行组合,根据组合结果生成测试数据集合。
10.根据权利要求9所述的装置,其特征在于,所述字段数据组合子单元,具体用于: 根据测试数据描述信息中指定的组合方式,对各个字段的备选数据进行组合; 和/或 根据测试数据描述信息中指定的测试数据数量,生成符合期望数量的测试数据; 和/或 根据测试数据描述信息中指定的过滤条件,滤除相应的测试数据。
11.根据权利要求7所述的装置,其特征在于,所述逻辑特征处理单元,具体用于: 对测试逻辑描述信息进行解析,确定待测操作以及每种待测操作的执行次数和执行顺序;· 根据解析结果,确定需要测试的操作序列集合。
12.根据权利要求7所述的装置,其特征在于,所述测试序列生成单元,具体用于: 根据预设的组合方式和/或预设的操作序列期望数量,对测试数据集合和操作逻辑集合中的元素进行组合,得到复数个包含给定测试数据的操作序列。
【文档编号】G06F11/36GK103853652SQ201210500437
【公开日】2014年6月11日 申请日期:2012年11月29日 优先权日:2012年11月29日
【发明者】石宏杨 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1