测试用例自动生成方法和系统技术方案

技术编号:8489634 阅读:177 留言:0更新日期:2013-03-28 08:31
本申请提供了一种测试用例自动生成方法,包括:步骤101,获取测试参数和参数组合策略,并根据参数组合策略生成多组测试数据;步骤102,选取一组测试数据,依据预设模型确定测试动作的输入参数及期待输出;步骤103,基于所确定的各测试动作输入参数及期待输出,依据预设模型调用测试动作的顺序创建动态测试路径,动态测试路径为有序存放测试动作、校验动作的数组容器;步骤104,输出动态测试路径,得到一组测试用例。本申请还提供了一种实现前述方法的测试用例自动生成系统。本申请的测试用例自动生成方法和系统,能够解决测试用例编写耗时和覆盖率低的问题。

【技术实现步骤摘要】
测试用例自动生成方法和系统
本申请涉及计算机测试
,特别是涉及一种测试用例自动生成方法及系 统。
技术介绍
计算机产品在投入使用前通常需要进行测试,例如,根据已知产品的功能设计规 格对产品进行测试,以验证产品的每个功能是否符合要求,或者根据以及产品的内部工作 过程对产品进行测试,以验证产品的每个内部操作是否符合设计规格要求等等。其中,自动化测试通常根据测试用例编写测试代码来实现,测试用例指为特定目 标而开发的一组测试输入、执行条件和预期结果。在进行测试时通常是程序员根据测试用 例来编写测试代码。因为对于某一计算机产品来说,会有较多的测试用例和测试代码,人工 编写无疑会增加编写时间,从而增加测试成本。另外,在测试用例较多的情况下,如果全部 人工编写会增加整个测试时间,而选择部分则会导致测试用例和代码的覆盖率降低,无法 保证产品被充分测试。
技术实现思路
本申请所要解决的技术问题是提供一种测试用例自动生成方法和系统,能够解决 测试用例编写耗时和覆盖率低的问题。为了解决上述问题,本申请公开了一种测试用例自动生成方法,包括以下步骤步骤101,获取预设模型的测试参数的数据和参数组合策略,并根据参数组合策略 生成多组测试数据;步骤102,选取一组测试数据,依据预设模型确定各测试动作的输入参数以及期待 输出结果;步骤103,基于所确定的各测试动作的输入参数以及期待输出结果,依据预设模型 调用测试动作的顺序创建动态测试路径,所述动态测试路径为有序存放测试动作、校验动 作的数组容器;步骤104,根据设定计算机语言的语法输出动态测试路径,得到一组测试用例;所 述测试用例包括与所设语法相应的语言的测试代码。进一步地,通过以下步骤创建动态测试路径基于预设模型,若一测试动作被调用,记住调用参数,返回关联该测试动作的动态 结果,并将测试动作加入到动态测试路径;基于预设模型,当一校验动作被调用时,若被校验值的类型为动态结果,则将前述 步骤获取的对测试动作的期待输出结果赋值给该动态结果。进一步地,所述动态测试路径还包括有序存放的日志信息;则,所述创建动态测试路径的步骤还包括基于预设模型,当一日志动作被调用时,将日志动作及相关信息加入动态测试路 径。进一步地,针对不同的测试场景,建立相应的预设模型;所述预设模型包括对应API或功能接口的测试动作;由多个测试动作有序组成的测试步骤;所述多个测试步骤组成一个测试场景;用于校验两个对象是否相等的校验动作;包括日志类别和内容的日志动作。进一步地,所述预先定义的数据组合策略包括按照笛卡尔乘积展开测试参数;或按照每次只变更一类参数的原则展开测试参数。进一步地,所述动态结果的取值操作包括取Map或者数组中的元素;或取属性,从最初始的动态结果到最后的动态结果是一条取值路径。为了解决上述问题,本申请还公开了一种测试用例生成系统,包括测试数据生成模块,用于获取预设模型的测试参数数据与数据组合策略,并根据 数据组合策略生成多组测试数据;期待输出结果获取模块,用于选取一组测试数据,获取该组测试数据执行测试模 型时测试动作的期待输出结果;动态测试路径创建模块,用于基于所确定的各测试动作的输入参数以及期待输出 结果,依据预设模型创建动态测试路径,所述动态测试路径为有序存放测试动作、校验动作 与日志信息的数组容器;测试用例生成模块,根据设定的计算机语言的语法输出动态测试路径,得到一组 测试用例,直到所有测试数据都生成测试用例;所述测试用例包括与所设语法相应的语言 的测试代码。进一步地,所述动态测试路径创建模块包括动态结果返回单元,用于基于预设模型,若一测试动作被调用,返回动态结果,并 将测试动作加入动态测试路径;校验单元,用于基于预设模型,当一校验动作被调用时,若被校验值的类型为动态 结果,则将前述步骤获取的期待输出结果赋值给被校验值。进一步地,所述动态测试路径创建模块包括日志信息添加单元,用于基于预设模型,当一日志动作被调用时,将日志动作及相 关信息加入动态测试路径。进一步地,所述测试数据生成模块包括数据组合策略确定单元,用于按照笛卡尔乘积展开测试参数或按照每次只变更一 类参数的原则展开测试参数。与现有技术相比,本申请包括以下优点本申请的测试用例生成方法是先获取测试场景模型(测试模型)的参数与参数组合策略生成一组或多组测试数据后,再结合每一组测试数据执行测试模型而产生对应的 测试用例。其中,对每一组测试数据,在执行测试模型时,当测试动作被调用时并真实执行 得到返回值而是返回一与该测试动作关联的模拟值,即动态结果,并且当该值被校验时,动 态结果记住期望值,同时按照测试动作与日志信息动作在模型中被调用的顺序,存入到一 个指定的顺序容器中,即动态测试路径;在一组测试数据在模型执行完成后,根据动态测试 路径来自动生成测试用例。本方法无需多次重复编写同一测试场景下的测试用例代码,节 省编写时间,同时,因为模型会根据输入的参数生成所有的测试数据,并自动生成所有测试 数据的测试用例,提高了测试用例的覆盖率。另外,本申请提供编写测试模型的基本框架,利用脚本语言编写测试模型,并且测 试数据动态组合后生成测试代码与展示测试路径视图。一个测试模型是对一类测试用例的 抽象,可以生成一个或多个测试用例,维护一个测试模型即可以维护一类测试用例。当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。附图说明图1是本申请的测试用例生成方法实施例一的流程图2是本申请的测试用例生成系统实施例一的结构示意图3是本申请的测试用例生成系统实例的结构示意图。具体实施方式为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本申请作进一步详细的说明。参照图1,示出本申请的一种测试用例自动生成方法实施例一,包括以下步骤步骤101,获取预设模型的测试参数的数据和参数组合策略,并根据参数组合策略 生成多组测试数据。其中,参数组合策略根据需要来定义,如,按照笛卡尔乘积展开测试参数、或者 按照每次只变更一类参数的原则展开测试参数等等。测试参数是指API (Application Programming Interface,应用程序编程接口)或者接口功能的参数或者预设模型所需要的 逻辑参数。其中,按照笛卡尔乘积展开测试参数,如{ “dl””,“d2””},将被展 开为4组(a, c)、(a, d)、(b,a)、(b,d),此种测试数据生成方法是对测试中出现的所有情形 做了全面覆盖,有利于代码提高覆盖率。按照每次只变更一类参数的原则展开测试数据,如{“dl,,·· ”,“d2”: ”}, 将被展开为3组(a,c)、(a, d)、(b,a)。如果将第一个数据设为默认值,这种测试数据生成 方法使每一个测试参数可能出现的值都被覆盖到。步骤102,选取一组测试数据,依据预设模型确定各测试动作的输入参数以及期待 输出结果。在对计算机产品进行测试时,在输入数据和测试动作一定的情况下,则其输出结 果是一定的,因此根据测试数据和测试动作就能确定其期待输出结果。步骤103,基于所确定的各测试动作的输入参数以及期待输出结果,依据预设模型调用测试动作的顺序创建动态测试路径,所述动态测试路径为有序存放测试动作、校验动 作的数组容器。具体的,本文档来自技高网...

【技术保护点】
一种测试用例自动生成方法,其特征在于,包括以下步骤:步骤101,获取预设模型的测试参数的数据和参数组合策略,并根据参数组合策略生成多组测试数据;步骤102,选取一组测试数据,依据预设模型确定各测试动作的输入参数以及期待输出结果;步骤103,基于所确定的各测试动作的输入参数以及期待输出结果,依据预设模型调用测试动作的顺序创建动态测试路径,所述动态测试路径为有序存放测试动作、校验动作的数组容器;步骤104,根据设定计算机语言的语法输出动态测试路径,得到一组测试用例;所述测试用例包括与所设语法相应的语言的测试代码。

【技术特征摘要】

【专利技术属性】
技术研发人员:易棉生
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1