测试用例自动生成方法及装置制造方法及图纸

技术编号:15982563 阅读:32 留言:0更新日期:2017-08-12 05:37
一种测试用例自动生成方法及装置,所述方法包括:获取存在变量需求的作用域的标识;根据所述作用域的标识,获取所述作用域对应的作用域集合;从所述作用域集合中,筛选出所属作用域属性的标识包含于所述作用域集合的变量集合;从所筛选出的变量集合中筛选出与所述变量需求对应的变量;根据筛选出的所述变量构建表达式,生成所述测试用例。上述方案能够提高自动生成的测试用例的正确率,提高对编译器进行测试的质量和效率。

【技术实现步骤摘要】
测试用例自动生成方法及装置
本专利技术涉及计算机领域,尤其涉及一种测试用例自动生成方法及装置。
技术介绍
在程序开发的过程中,需要确保编译器具有较高的可靠性,尤其针对自主开发的编译器,更需要验证其可靠性。在验证编译器的可靠性时,通常使用大量的测试用例来覆盖编译器的功能和性能的各个方面。若通过人工手动编写测试用例,所耗费的时间和工作量较大,无法满足对编译器进行测试的质量和效率的需求。由于对编译器进行测试时,主要的工作量为编写测试用例输出至被测编译器进行编译,测试用例的可复用程度较高。在现有技术中,可以采用程序自动生成测试代码技术来自动生成测试用例,以解决同类型的编译器的测试工作。在测试用例中,变量是测试用例代码中最基本的组成元素。变量在测试用例代码中的每个位置的正确应用与否,是判断编译器是否能够正确工作的条件之一。因此,在自动生成测试用例时,所生成的变量是否能够在其有效的作用域中被正确引用,对生成正确的测试用例起着至关重要的作用。目前,自动生成的测试用例的正确率较低,导致编译器对测试用例的编译经常出错,对编译器进行测试的质量和效率较低。
技术实现思路
本专利技术实施例解决的技术问题是如何提高自动生成的测试用例的正确率,提高对编译器进行测试的质量和效率。为解决上述技术问题,本专利技术实施例提供一种测试用例自动生成方法,包括:获取存在变量需求的作用域的标识;根据所述作用域的标识,获取所述作用域对应的作用域集合;从所述作用域集合中,筛选出所述作用域属性的标识包含于所述作用域集合的变量集合;从所筛选出的所述变量集合中筛选出与所述变量需求对应的变量;根据筛选出的所述变量构建表达式,生成所述测试用例。可选的,所述从筛选出的变量集合中筛选出所述变量,包括:根据所述变量的数据类型,从所述所筛选出的变量集合中筛选出与所述变量需求对应的变量。可选的,所述筛选出所属作用域属性包含于所述作用域集合的变量集合,包括:从预先生成的作用域类中,读取所述作用域集合对应的作用域集合属性;从预先生成的变量类中,读取所述变量对应的作用域属性;从所述作用域集合属性中,筛选出所述变量对应的作用域属性包含于所述作用域集合属性的变量集合。可选的,所述作用域类为适于管理所述生成的作用域的类;所述作用域类中的信息包括:所述生成的作用域的标识及对应的作用域集合。可选的,采用如下方法生成所述作用域类:生成作用域,以及所述生成的作用域对应的标识和作用域集合;判断所述生成的作用域是否存在父作用域;当所述生成的作用域不存在所述父作用域时,将所述生成的作用域的标识添加到所述生成的作用域对应的作用域集合中;当所述生成的作用域存在所述父作用域时,读取所述父作用域对应的作用域集合中的所有数据,并添加至所述生成的作用域对应的作用域集合中。可选的,所述变量类为适于管理所述生成的变量的类;所述变量类中的信息包括:所述生成的变量的标识、所述生成的变量的数据类型、所述生成的变量的数据值以及所述生成的变量的所属作用域。本专利技术实施例还提供了一种测试用例自动生成装置,包括:作用域标识获取单元,用于获取存在变量需求的作用域的标识;作用域集合获取单元,用于根据所述作用域的标识,获取所述作用域对应的作用域集合;变量集合筛选单元,用于从所述作用域集合中,筛选出所属作用域属性的标识包含于所述作用域集合的变量集合;变量筛选单元,用于从所筛选出的所述变量集合中筛选出与所述变量需求对应的变量;测试用例生成单元,用于根据筛选出的所述变量构建表达式,生成所述测试用例。可选的,所述变量筛选单元,用于根据所述变量的数据类型,从所述所筛选出的变量集合中筛选出与所述变量需求对应的变量。可选的,所述变量集合筛选单元,用于从预先生成的作用域类中读取所述作用域集合对应的作用域集合属性;从预先生成的变量类中读取所述变量对应的作用域属性;从所述作用域集合属性中,筛选出所述变量对应的作用与属性包含于所述作用域集合属性的变量集合。可选的,所述作用域类为适于管理所述生成的作用域的类;所述作用域类中的信息包括:所述生成的作用域的标识及对应的作用域集合。可选的,采用如下方法生成所述作用域类:生成作用域,以及所述生成的作用域对应的标识和作用域集合;判断所述生成的作用域是否存在父作用域;当所述生成的作用域不存在所述父作用域时,将所述生成的作用域的标识添加到所述生成的作用域对应的作用域集合中;当所述生成的作用域存在所述父作用域时,读取所述父作用域对应的作用域集合中的所有数据,并添加至所述生成的作用域对应的作用域集合中。可选的,所述变量类为适于管理所述生成的变量的类;所述变量类中的信息包括:所述生成的变量的标识、所述生成的变量的数据类型、所述生成的变量的数据值以及所述生成的变量的所属作用域。与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:当某一个作用域存在变量需求时,根据作用域的标识选取对应的作用域集合;从作用域集合中,选取所属作用域属性的标识包含于作用域集合的变量集合,再从变量集合中选取出与变量需求对应的变量。也就是说,作用域集合包含作用域所引用的已生成的变量对应的所属作用域属性,换句话说,作用域所引用的已生成的变量为合法有效的变量,因此生成的测试用例的正确率较高,进而提高了对编译器进行测试的质量和效率。进一步,根据变量的数据类型,从筛选出的变量集合中筛选出变量,可以更进一步地提高生成的测试用例的正确率。附图说明图1是本专利技术实施例中的一种测试用例自动生成方法的流程图;图2是本专利技术实施例中的一种生成作用域类的流程图;图3是本专利技术实施例中的一种测试用例自动生成装置的结构示意图。具体实施方式在测试用例中,变量是测试用例代码中最基本的组成元素。变量在测试用例代码中的每个位置的正确应用与否,是判断编译器是否能够正确工作的条件之一。因此,在自动生成测试用例时,所生成的变量是否能够在其有效的作用域中被正确引用,对生成正确的测试用例起着至关重要的作用。目前,自动生成的测试用例的正确率较低,导致编译器对测试用例的编译经常出错,进而导致对编译器进行测试的质量和效率较低。在本专利技术实施例中,当某一个作用域存在变量需求时,根据作用域的标识选取对应的作用域集合;从作用域集合中,选取所属作用域属性的标识包含于作用域集合的变量集合,再从变量集合中选取出与变量需求对应的变量。也就是说,作用域集合包含作用域所引用的已生成的变量对应的所属作用域属性,换句话说,作用域所引用的已生成的变量为合法有效的变量,因此生成的测试用例的正确率较高,进而提高了对编译器进行测试的质量和效率。为使本专利技术的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本专利技术的具体实施例做详细的说明。本专利技术实施例提供了一种测试用例自动生成方法,参照图1,以下通过具体步骤进行详细说明。步骤S101,获取存在变量需求的作用域的标识。在实际应用中,可以在上位机中运行适于完成程序自动生成测试用例的应用软件,来测试用例的自动生成。为便于描述,本专利技术下述实施例中所称的应用软件均为能够完成程序自动生成测试用例的软件。应用软件在生成测试用例时,需要使用已生成的变量构建表达式,进而根据表达式生成测试用例。在构建表达式的过程中,作用域需要引用已生成的变量。在构建表达式时,可以先获取存在变量需求的作用域的标识。在具体实施本文档来自技高网...
测试用例自动生成方法及装置

【技术保护点】
一种测试用例自动生成方法,其特征在于,包括:获取存在变量需求的作用域的标识;根据所述作用域的标识,获取所述作用域对应的作用域集合;从所述作用域集合中,筛选出所属作用域属性的标识包含于所述作用域集合的变量集合;从所筛选出的所述变量集合中筛选出与所述变量需求对应的变量;根据筛选出的所述变量构建表达式,生成所述测试用例。

【技术特征摘要】
1.一种测试用例自动生成方法,其特征在于,包括:获取存在变量需求的作用域的标识;根据所述作用域的标识,获取所述作用域对应的作用域集合;从所述作用域集合中,筛选出所属作用域属性的标识包含于所述作用域集合的变量集合;从所筛选出的所述变量集合中筛选出与所述变量需求对应的变量;根据筛选出的所述变量构建表达式,生成所述测试用例。2.如权利要求1所述的测试用例自动生成方法,其特征在于,所述从所筛选出的变量集合中筛选出与所述变量需求对应的变量,包括:根据所述变量的数据类型,从所述所筛选出的变量集合中筛选出与所述变量需求对应的变量。3.如权利要求1所述的测试用例自动生成方法,其特征在于,所述筛选出所属作用域属性包含于所述作用域集合的变量集合,包括:从预先生成的作用域类中,读取所述作用域集合对应的作用域集合属性;从预先生成的变量类中,读取所述变量对应的作用域属性;从所述作用域集合属性中,筛选出所述变量对应的作用域属性包含于所述作用域集合属性的变量集合。4.如权利要求3所述的测试用例自动生成方法,其特征在于,所述作用域类为适于管理所述生成的作用域的类;所述作用域类中的信息包括:所述生成的作用域的标识及对应的作用域集合。5.如权利要求4所述的测试用例自动生成方法,其特征在于,采用如下方法生成所述作用域类:生成作用域,以及所述生成的作用域对应的标识和作用域集合;判断所述生成的作用域是否存在父作用域;当所述生成的作用域不存在所述父作用域时,将所述生成的作用域的标识添加到所述生成的作用域对应的作用域集合中;当所述生成的作用域存在所述父作用域时,读取所述父作用域对应的作用域集合中的所有数据,并添加至所述生成的作用域对应的作用域集合中。6.如权利要求3所述的测试用例自动生成方法,其特征在于,所述变量类为适于管理所述生成的变量的类;所述变量类中的信息包括:所述生成的变量的标识、所述生成的变量的数据类型、所述生成的变量的数据值以及所述生成的变量的所属作用域。7.一种测试用例自...

【专利技术属性】
技术研发人员:裘巍汪哂宇陈立权
申请(专利权)人:上海东软载波微电子有限公司
类型:发明
国别省市:上海,31

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

1