CN104731587A - 单元测试数据生成方法和单元测试数据生成系统 - Google Patents
单元测试数据生成方法和单元测试数据生成系统 Download PDFInfo
- Publication number
- CN104731587A CN104731587A CN201510109423.1A CN201510109423A CN104731587A CN 104731587 A CN104731587 A CN 104731587A CN 201510109423 A CN201510109423 A CN 201510109423A CN 104731587 A CN104731587 A CN 104731587A
- Authority
- CN
- China
- Prior art keywords
- data
- unit testing
- parameter
- unit
- testing 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
技术领域
本发明涉及数据测试技术领域,具体而言,涉及一种单元测试数据生成方法和一种单元测试数据生成系统。
背景技术
单元测试是指对软件的基本组成单元或模块进行的测试,又称为模块测试。基本单元或模块可以是函数、类实例、方法、存储过程等,也可以是任何具有明确功能定义、明确规格定义、明确接口定义、规模较小的程序代码模块的组合体。单元测试既关注单元功能,也关注程序模块的逻辑结构,其目的在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于对问题的定位及解决。
然而,要达到较高的单元测试覆盖率,准备一个比较完善的数据集合至关重要。在相关技术中,测试人员首先需要查看代码的数据来源,手动分析代码结构,并对其分析结果进行数据构建,同时需要对已有数据进行分析、验证、检查以保证数据的质量,以及在检查完后要整理和完善数据,并清除无用和冗余的数据、补录不完整的数据、修改错误的数据等,最后测试人员将构建好的数据保存。由于代码数据结构的复杂性以及程序中数据来源的多样性,相关技术中仅根据分析方法参数对代码控制流程的影响的技术方案,存在一定的局限性。
因此,需要一种新的技术方案,可以通过自动化测试数据生成方法取代传统的繁琐的测试数据准备工作。
发明内容
本发明正是基于上述问题,提出了一种新的技术方案,可以通过自动化测试数据生成方法取代传统的繁琐的测试数据准备工作。
有鉴于此,本发明的一方面提出了一种单元测试数据生成方法,包括:根据预设单元测试标准,解析被测试数据的源代码结构;确定测试所需的单元测试数据的参数类型,并进行参数构造;在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。
在该技术方案中,能够按照预设的单元测试标准,自动地分析被测试源代码的结构,并根据分析结果进行参数构造,从而自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,所述根据预设单元测试标准,解析被测试数据的源代码结构,具体包括:根据所述预设单元测试标准,确定所述单元测试数据的分支路径的数量,并确定每条所述分支路径的执行条件表达式。
在该技术方案中,可以采用条件测试和分支测试的方法对需要进行测试的源代码进行分析,得出需要进行测试的分支路径,而分支条件测试可以决定要执行的分支路径的数量,具体地,可通过分析源代码,确定达到测试覆盖率100%时需要执行多少条分支路径。在该技术方案中,还可以计算每条分支路径执行的条件以及执行的语句,并且得出执行这些分支路径路径需要满足的参数条件,最后得到各分支路径的执行条件表达式,从而便于对每条分支路径进行单独的数据分析。
在上述技术方案中,优选地,所述进行参数构造,具体包括:根据每条所述分支路径的所述执行条件表达式,为每条所述分支路径生成参数范围表达式。
在该技术方案中,可以根据源代码分析结果中的执行条件表达式,以及对每条分支路径进行单独数据分析的分析结果,生成参数范围表达式。
在上述技术方案中,优选地,所述根据所述参数类型和所述参数构造的结果,生成单元测试数据,具体包括:根据所述参数类型,查找类型约束表,并根据所述类型约束表的预设规则,生成与所述参数类型对应的参数类型对象;根据生成的所述参数范围表达式,查找数据生成表,并根据所述数据生成表,生成所述参数类型对象对应的参数数据,以供生成所述单元测试数据。
在该技术方案中,可以根据确定的参数类型和参数范围表达式,分别在类型约束表和数据生成表中进行查找操作,从而得到最终的测试数据。通过本技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,所述参数类型包括以下至少之一或其组合:简单类型、自定义类型、通用类型。
在该技术方案中,简单类型包括int、float等8种基本参数类型,自定义类型即用户自定义的数据类型,通用类型则为Java定义的常用类和接口。当然,参数类型也可以是根据需要除此之外的其他类型。
本发明的另一方面提出了一种单元测试数据生成系统,其特征在于,包括:解析单元,根据预设单元测试标准,解析被测试数据的源代码结构;执行单元,根据解析结果,确定测试所需的单元测试数据的参数类型,并进行参数构造;生成单元,在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。
在该技术方案中,能够按照预设的单元测试标准,自动地分析被测试源代码的结构,并根据分析结果进行参数构造,从而自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,所述解析单元具体用于:根据所述预设单元测试标准,确定所述单元测试数据的分支路径的数量,并确定每条所述分支路径的执行条件表达式。
在该技术方案中,可以采用条件测试和分支测试的方法对需要进行测试的源代码进行分析,得出需要进行测试的分支路径,而分支条件测试可以决定要执行的分支路径的数量,具体地,可通过分析源代码,确定达到测试覆盖率100%时需要执行多少条分支路径。在该技术方案中,还可以计算每条分支路径执行的条件以及执行的语句,并且得出执行这些分支路径路径需要满足的参数条件,最后得到各分支路径的执行条件表达式,从而便于对每条分支路径进行单独的数据分析。
在上述技术方案中,优选地,所述执行单元包括:根据每条所述分支路径的所述执行条件表达式,为每条所述分支路径生成参数范围表达式。
在该技术方案中,可以根据源代码分析结果中的执行条件表达式,以及对每条分支路径进行单独数据分析的分析结果,生成参数范围表达式。
在上述技术方案中,优选地,所述生成单元具体用于:根据所述参数类型,查找类型约束表,并根据所述类型约束表的预设规则,生成与所述参数类型对应的参数类型对象,以及根据生成的所述参数范围表达式,查找数据生成表,并根据所述数据生成表,生成所述参数类型对象对应的参数数据,以供生成所述单元测试数据。
在该技术方案中,可以根据确定的参数类型和参数范围表达式,分别在类型约束表和数据生成表中进行查找操作,从而得到最终的测试数据。通过本技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,所述参数类型包括以下至少之一或其组合:简单类型、自定义类型、通用类型。
在该技术方案中,简单类型包括int、float等8种基本参数类型,自定义类型即用户自定义的数据类型,通用类型则为Java定义的常用类和接口。当然,参数类型也可以是根据需要除此之外的其他类型。
通过以上技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
附图说明
图1示出了根据本发明的一个实施例的单元测试数据生成方法的流程图;
图2示出了根据本发明的一个实施例的单元测试数据生成系统的框图;
图3示出了根据本发明的另一个实施例的单元测试数据生成系统的框图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的一个实施例的单元测试数据生成方法的流程图。
如图1所示,根据本发明的一个实施例的单元测试数据生成方法,包括:
步骤102,根据预设单元测试标准,解析被测试数据的源代码结构。
步骤104,确定测试所需的单元测试数据的参数类型,并进行参数构造。
步骤106,在完成参数构造之后,根据参数类型和参数构造的结果,生成单元测试数据。
在该技术方案中,能够按照预设的单元测试标准,自动地分析被测试源代码的结构,并根据分析结果进行参数构造,从而自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,步骤102具体包括:根据预设单元测试标准,确定单元测试数据的分支路径的数量,并确定每条分支路径的执行条件表达式。
在该技术方案中,可以采用条件测试和分支测试的方法对需要进行测试的源代码进行分析,得出需要进行测试的分支路径,而分支条件测试可以决定要执行的分支路径的数量,具体地,可通过分析源代码,确定达到测试覆盖率100%时需要执行多少条分支路径。在该技术方案中,还可以计算每条分支路径执行的条件以及执行的语句,并且得出执行这些分支路径路径需要满足的参数条件,最后得到各分支路径的执行条件表达式,从而便于对每条分支路径进行单独的数据分析。
在上述技术方案中,优选地,步骤104包括:根据每条分支路径的执行条件表达式,为每条分支路径生成参数范围表达式。
在该技术方案中,可以根据源代码分析结果中的执行条件表达式,以及对每条分支路径进行单独数据分析的分析结果,生成参数范围表达式。
在上述技术方案中,优选地,步骤106包括:根据参数类型,查找类型约束表,并根据类型约束表的预设规则,生成与参数类型对应的参数类型对象;根据生成的参数范围表达式,查找数据生成表,并根据数据生成表,生成参数类型对象对应的参数数据,以供生成单元测试数据。
在该技术方案中,可以根据确定的参数类型和参数范围表达式,分别在类型约束表和数据生成表中进行查找操作,从而得到最终的测试数据。通过本技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,参数类型包括以下至少之一或其组合:简单类型、自定义类型、通用类型。
在该技术方案中,简单类型包括int、float等8种基本参数类型,自定义类型即用户自定义的数据类型,通用类型则为Java定义的常用类和接口。当然,参数类型也可以是根据需要除此之外的其他类型。
图2示出了根据本发明的一个实施例的单元测试数据生成系统的框图。
如图2所示,根据本发明的一个实施例的单元测试数据生成系统200,包括:解析单元202,根据预设单元测试标准,解析被测试数据的源代码结构;执行单元204,根据解析结果,确定测试所需的单元测试数据的参数类型,并进行参数构造;生成单元206,在完成参数构造之后,根据参数类型和参数构造的结果,生成单元测试数据。
在该技术方案中,能够按照预设的单元测试标准,自动地分析被测试源代码的结构,并根据分析结果进行参数构造,从而自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,解析单元202具体用于:根据预设单元测试标准,确定单元测试数据的分支路径的数量,并确定每条分支路径的执行条件表达式。
在该技术方案中,可以采用条件测试和分支测试的方法对需要进行测试的源代码进行分析,得出需要进行测试的分支路径,而分支条件测试可以决定要执行的分支路径的数量,具体地,可通过分析源代码,确定达到测试覆盖率100%时需要执行多少条分支路径。在该技术方案中,还可以计算每条分支路径执行的条件以及执行的语句,并且得出执行这些分支路径路径需要满足的参数条件,最后得到各分支路径的执行条件表达式,从而便于对每条分支路径进行单独的数据分析。
在上述技术方案中,优选地,执行单元204包括:根据每条分支路径的执行条件表达式,为每条分支路径生成参数范围表达式。
在该技术方案中,可以根据源代码分析结果中的执行条件表达式,以及对每条分支路径进行单独数据分析的分析结果,生成参数范围表达式。
在上述技术方案中,优选地,生成单元206具体用于:根据参数类型,查找类型约束表,并根据类型约束表的预设规则,生成与参数类型对应的参数类型对象,以及根据生成的参数范围表达式,查找数据生成表,并根据数据生成表,生成参数类型对象对应的参数数据,以供生成单元测试数据。
在该技术方案中,可以根据确定的参数类型和参数范围表达式,分别在类型约束表和数据生成表中进行查找操作,从而得到最终的测试数据。通过本技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
在上述技术方案中,优选地,参数类型包括以下至少之一或其组合:简单类型、自定义类型、通用类型。
在该技术方案中,简单类型包括int、float等8种基本参数类型,自定义类型即用户自定义的数据类型,通用类型则为Java定义的常用类和接口。当然,参数类型也可以是根据需要除此之外的其他类型。
图3示出了根据本发明的另一个实施例的单元测试数据生成系统的框图。
如图3所示,根据本发明的另一个实施例的单元测试数据生成系统,可以实现以下步骤:
1、自动化程序源代码分析:自动分析程序源代码结构,确定方法分支控制流,这些分支控制流可以用来获得测试该程序代码需要的测试用例代码分支路径。
2、自动化方法参数类型分析与参数构造:分析方法参数类型,针对特殊的方法类型构造特殊的测试数据,而针对代码中的复杂数据类型进行复杂类型的参数构造,并将生成的对象存储到一个持久化对象文件中,以供测试的时候读取。
3、自动化数据生成与回滚:根据分析结果自动生成测试数据,所得的测试数据可以直接用于测试,另外,还可以备份指定数据库表的数据,测试完成后数据回滚到单元测试执行之前的状态,执行测试案例按规则手动执行,或者自动执行
单元测试的测试用例设计有两种方法,即白盒测试和黑盒测试。白盒测试按照程序内部的结构测试程序,通过测试来验证产品内部动作是否按照设计规格说明书的规定正常进行,验证程序中的每条通路是否按预定要求正确工作,其主要包括条件测试、分支测试和数据流测试等。而黑盒测试则通过测试来检验每个功能是否能正常使用,黑盒测试不考虑程序内部接口和内部结构,而是在程序接口进行测试,只检查程序功能是否按照设计功能要求正确实现,黑盒测试用例设计方法包含等价类划分、边界值分析、异常测试以及冒烟测试等。本申请的单元测试数据生成系统采用分支条件测试以及数据流分析的方法对代码结构进行白盒测试分析,并采用等价类划分和边界值分析的黑盒测试方法进行测试用例分析和测试数据的自动生成,最终产生测试用例的用例数据。
测试程序单元进入本申请的单元测试数据生成系统之后,首先会被类型分析引擎和路径分析引擎同时进行处理,类型分析引擎和数据分析引擎在完成分析之后将分析结果传入数据分析引擎进行进一步的分析,同时类型分析引擎将会调用数据生成引擎进行特定参数类型的约束数据生成。数据分析引擎根据类型分析引擎和数据分析引擎获得的分析结果,调用搜索引擎对规则库进行搜索,获得对应结果的生成表达式,根据表达式生成数据,最终获得测试用例的测试数据。
如图3所示,本申请的单元测试数据生成系统具体包括:
1.类型分析引擎:类型分析引擎主要针对方法参数的类型进行分析,并且根据分析得到的参数类型进行相应的处理。类型分析引擎将方法参数分为三种类型:简单类型,包括int,float等8种基本类型;自定义类型,即指用户自定义的数据类型;通用类型,即Java定义的常用类和接口。这三种类型都需要将分析结果传递给数据分析引擎结合路径分析引擎得到的范围表达式结果生成参数范围表达式。同时,自定义类型和通用类型等复杂数据类型直接传递给数据生成引擎,数据生成引擎将会调用搜索引擎在类型约束表中查找对应类型需要测试的约束列表,并根据相应的约束规则生成对象。
2.路径分析引擎:路径分析引擎采用条件测试(Condition Testing)和分支测试(Branch Testing)的方法对需要进行测试方法的源代码进行分析,得出该方法中需要进行测试的路径。其中,分支条件测试可以决定要执行的路径条数,通过分析源代码,确定对该方法测试覆盖率达到100%需要执行多少条测试路径。路径分析引擎通过分析输入方法的源代码,分析方法源代码中的分支条件的数目,计算需要测试的路径以及每条路径执行的条件以及执行的语句,并且得出满足这些执行路径需要满足的参数条件。源代码在经过路径分析引擎之后,将会被肢解为多条可执行路径,并得出满足这些路径的条件表达式,在得到这些信息之后,便可针对每条路径进行单独的数据分析。
3.数据分析引擎:在获取到每一条路径及其路径条件表达式之后,数据分析引擎针对单条路径上的参数条件进行分析。转换路径条件表达式为参数范围表达式。
其中,方法参数分为简单参数和复杂参数两种。数据分析引擎将会分析每一个条件表达式中的参数是简单参数还是复杂参数,并且针对复杂参数,数据分析引擎将会分析条件表达式中的参数是调用方法还是调用属性,并且进行相应的记录。针对每一个参数,数据分析引擎将会生成每一个参数的范围表达式,并且记录相应的参数信息,如果该参数受到其他方法参数的影响,则选取其他参数表达该参数。
其中选取标准为:如果参数在条件表达式中出现次数最多,则选取该参数作为第一分析基点,使用该参数表达其他参数,其次将出现第二多的参数作为第二分析基点,在表达式中分析基点不存在或者存在多个参数的时候,优先考虑使用分析基点和第二分析基点,依次类推。最终得到每一个参数的表达式,并且按照分析基点的顺序进行排列。这里需要注意的是,复杂类型在条件表达式中无论是参数调用还是属性调用,都视为一个变量进行分析。
4.数据生成引擎:在获得每一个参数的范围表达式之后,需要对这些参数进行生成。数据生成引擎需要完成两个工作,第一个工作为接收来自类型分析引擎的请求,根据类型分析引擎传递过来的类型,调用规则搜索引擎查找类型约束表,根据类型约束表的规则,生成对应的参数类型对象。第二个工作为接收来自数据分析引擎传递过来的范围表达式,规则搜索引擎查找数据生成表,根据数据生成表达式,生成对应的参数数据。对于每一个参数,数据生成引擎将会采用等价类划分的方式生成若干组数据(由用户指定),分别包含正面测试和反面测试。
5.搜索引擎:包含规则搜索引擎和方法搜索引擎。规则搜索引擎主要对规则库进行搜索,返回对应的查找结果。当数据生成引擎需要对类型约束进行生成时,规则搜索引擎根据参数的类别和参数类型查找类型约束表,返回参数生成表达式给数据生成引擎。当数据生成引擎需要对参数数据进行生成时,规则搜索引擎会根据数据生成引擎提供的参数类型,参数范围表达式类型在规则库中搜索对应的参数生成表达式,并且将该表达式返回给数据生成引擎生成数据。当对复杂类型进行参数构造的时候,需要调用特定的方法对复杂数据进行构造。方法搜索引擎主要是响应数据生成引擎的查询请求,根据数据生成引擎提供的方法信息返回方法。同时,方法搜索引擎在搜索给定方法库的同时,还需要搜索用户自定义的类型构造方法,将满足条件的用户自定义类型构造方法查询结果返回给数据生成引擎。
6.规则库:规则库中主要包含两张表,分别为类型约束表和数据生成表,并且可以对规则库进行扩充满足更多的要求。类型约束表主要存储的是根据黑盒测试标准对一些常用的通用类和接口进行的一些输入约束,类型约束表包含参数类型、参数范围表达式以及对应的参数生成表达式。规则搜索引擎将符合条件的参数类别和参数类型对应的参数表达式列表返回给方法生成引擎。数据生成引擎主要根据规则库中的参数生成表达式对参数进行生成,而规则搜索引擎根据数据分析引擎获得的参数信息和参数范围表达式对数据生成表进行查找,返回对应类型和表达式的生成表达式。
7.方法库:对复杂类型进行构造时,需要针对特定的要求构造不同的参数对象。方法库中提供目前通用的类和接口的构造方法,当方法参数中包含通用类和接口时,数据生成引擎将会根据方法库中方法对这些参数进行构造。
通过本发明的单元测试数据生成系统,可以通过分析程序代码结构自动生成测试数据,帮助测试人员省去繁琐的测试用例数据准备工作,生成的单元测试数据可以直接用于测试程序单元,真正实现了自动化单元测试的目的。进一步地,本发明的单元测试数据生成系统结合了多种测试技术,投入使用之后,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
以上结合附图详细说明了本发明的技术方案,通过本发明的技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种单元测试数据生成方法,其特征在于,包括:
根据预设单元测试标准,解析被测试数据的源代码结构;
确定测试所需的单元测试数据的参数类型,并进行参数构造;
在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。
2.根据权利要求1所述的单元测试数据生成方法,其特征在于,所述根据预设单元测试标准,解析被测试数据的源代码结构,具体包括:
根据所述预设单元测试标准,确定所述单元测试数据的分支路径的数量,并确定每条所述分支路径的执行条件表达式。
3.根据权利要求2所述的单元测试数据生成方法,其特征在于,所述进行参数构造,具体包括:
根据每条所述分支路径的所述执行条件表达式,为每条所述分支路径生成参数范围表达式。
4.根据权利要求3所述的单元测试数据生成方法,其特征在于,所述根据所述参数类型和所述参数构造的结果,生成单元测试数据,具体包括:
根据所述参数类型,查找类型约束表,并根据所述类型约束表的预设规则,生成与所述参数类型对应的参数类型对象;
根据生成的所述参数范围表达式,查找数据生成表,并根据所述数据生成表,生成所述参数类型对象对应的参数数据,以供生成所述单元测试数据。
5.根据权利要求1至4中任一项所述的单元测试数据生成方法,其特征在于,所述参数类型包括以下至少之一或其组合:
简单类型、自定义类型、通用类型。
6.一种单元测试数据生成系统,其特征在于,包括:
解析单元,根据预设单元测试标准,解析被测试数据的源代码结构;
执行单元,根据解析结果,确定测试所需的单元测试数据的参数类型,并进行参数构造;
生成单元,在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。
7.根据权利要求6所述的单元测试数据生成系统,其特征在于,所述解析单元具体用于:
根据所述预设单元测试标准,确定所述单元测试数据的分支路径的数量,并确定每条所述分支路径的执行条件表达式。
8.根据权利要求7所述的单元测试数据生成系统,其特征在于,所述执行单元包括:
根据每条所述分支路径的所述执行条件表达式,为每条所述分支路径生成参数范围表达式。
9.根据权利要求8所述的单元测试数据生成系统,其特征在于,所述生成单元具体用于:
根据所述参数类型,查找类型约束表,并根据所述类型约束表的预设规则,生成与所述参数类型对应的参数类型对象,以及根据生成的所述参数范围表达式,查找数据生成表,并根据所述数据生成表,生成所述参数类型对象对应的参数数据,以供生成所述单元测试数据。
10.根据权利要求6至9中任一项所述的单元测试数据生成系统,其特征在于,所述参数类型包括以下至少之一或其组合:
简单类型、自定义类型、通用类型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510109423.1A CN104731587A (zh) | 2015-03-12 | 2015-03-12 | 单元测试数据生成方法和单元测试数据生成系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510109423.1A CN104731587A (zh) | 2015-03-12 | 2015-03-12 | 单元测试数据生成方法和单元测试数据生成系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104731587A true CN104731587A (zh) | 2015-06-24 |
Family
ID=53455505
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510109423.1A Pending CN104731587A (zh) | 2015-03-12 | 2015-03-12 | 单元测试数据生成方法和单元测试数据生成系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104731587A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294138A (zh) * | 2016-07-29 | 2017-01-04 | 东软集团股份有限公司 | 测试用例生成方法和装置 |
CN107066380A (zh) * | 2017-02-23 | 2017-08-18 | 青岛海信电器股份有限公司 | 一种包含冗余功能的应用的认证方法和装置 |
CN107480053A (zh) * | 2017-07-21 | 2017-12-15 | 杭州销冠网络科技有限公司 | 一种软件测试数据生成方法及装置 |
CN108804310A (zh) * | 2018-04-28 | 2018-11-13 | 微梦创科网络科技(中国)有限公司 | 功能测试方法、装置及设备 |
CN108874611A (zh) * | 2017-05-12 | 2018-11-23 | 北京金山云网络技术有限公司 | 一种测试数据的构建方法及装置 |
CN109861960A (zh) * | 2018-11-26 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 提供用于验证业务逻辑的验证数据的方法及装置 |
CN112100049A (zh) * | 2019-06-18 | 2020-12-18 | 北京数聚鑫云信息技术有限公司 | 一种生成测试数据的方法、装置、介质及设备 |
CN114490390A (zh) * | 2022-01-25 | 2022-05-13 | 中国农业银行股份有限公司 | 测试数据生成方法、装置、设备及存储介质 |
WO2023103690A1 (zh) * | 2021-12-08 | 2023-06-15 | 华为云计算技术有限公司 | 一种单元测试生成方法、装置及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030140138A1 (en) * | 2002-01-24 | 2003-07-24 | Dygon John G. | Remotely driven system for multi-product and multi-platform testing |
CN102043720A (zh) * | 2011-01-18 | 2011-05-04 | 北京世纪高通科技有限公司 | 利用sql语句自动生成测试数据的方法和装置 |
CN103019934A (zh) * | 2012-11-28 | 2013-04-03 | 北京交控科技有限公司 | 基于数据代码分离技术的测试用例生成方法 |
CN103530223A (zh) * | 2012-07-06 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 一种自动生成单元测试用例的方法及装置 |
CN103942147A (zh) * | 2014-05-06 | 2014-07-23 | 南京大学 | 一种线性拟合函数驱动的测试数据自动生成方法 |
-
2015
- 2015-03-12 CN CN201510109423.1A patent/CN104731587A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030140138A1 (en) * | 2002-01-24 | 2003-07-24 | Dygon John G. | Remotely driven system for multi-product and multi-platform testing |
CN102043720A (zh) * | 2011-01-18 | 2011-05-04 | 北京世纪高通科技有限公司 | 利用sql语句自动生成测试数据的方法和装置 |
CN103530223A (zh) * | 2012-07-06 | 2014-01-22 | 百度在线网络技术(北京)有限公司 | 一种自动生成单元测试用例的方法及装置 |
CN103019934A (zh) * | 2012-11-28 | 2013-04-03 | 北京交控科技有限公司 | 基于数据代码分离技术的测试用例生成方法 |
CN103942147A (zh) * | 2014-05-06 | 2014-07-23 | 南京大学 | 一种线性拟合函数驱动的测试数据自动生成方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294138A (zh) * | 2016-07-29 | 2017-01-04 | 东软集团股份有限公司 | 测试用例生成方法和装置 |
CN107066380A (zh) * | 2017-02-23 | 2017-08-18 | 青岛海信电器股份有限公司 | 一种包含冗余功能的应用的认证方法和装置 |
CN108874611A (zh) * | 2017-05-12 | 2018-11-23 | 北京金山云网络技术有限公司 | 一种测试数据的构建方法及装置 |
CN107480053A (zh) * | 2017-07-21 | 2017-12-15 | 杭州销冠网络科技有限公司 | 一种软件测试数据生成方法及装置 |
CN108804310A (zh) * | 2018-04-28 | 2018-11-13 | 微梦创科网络科技(中国)有限公司 | 功能测试方法、装置及设备 |
CN109861960A (zh) * | 2018-11-26 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 提供用于验证业务逻辑的验证数据的方法及装置 |
CN109861960B (zh) * | 2018-11-26 | 2021-12-21 | 阿里巴巴集团控股有限公司 | 提供用于验证业务逻辑的验证数据的方法及装置 |
CN112100049A (zh) * | 2019-06-18 | 2020-12-18 | 北京数聚鑫云信息技术有限公司 | 一种生成测试数据的方法、装置、介质及设备 |
WO2023103690A1 (zh) * | 2021-12-08 | 2023-06-15 | 华为云计算技术有限公司 | 一种单元测试生成方法、装置及相关设备 |
CN114490390A (zh) * | 2022-01-25 | 2022-05-13 | 中国农业银行股份有限公司 | 测试数据生成方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104731587A (zh) | 单元测试数据生成方法和单元测试数据生成系统 | |
WO2020155778A1 (zh) | 接口自动化测试方法、测试装置、测试设备及存储介质 | |
CN103365765B (zh) | 测试用例筛选方法和系统 | |
CN111722839B (zh) | 一种代码生成方法、装置、电子设备及存储介质 | |
CN101251825B (zh) | 一种生成测试用例的方法和装置 | |
CN105138461A (zh) | 一种应用程序的接口测试方法及装置 | |
CN107665171A (zh) | 自动回归测试方法及装置 | |
CN103020158A (zh) | 一种报表创建方法、装置和系统 | |
CN103605606B (zh) | 一种可自动转换的嵌入式软件测试用例批量执行方法 | |
CN101377758B (zh) | 一种生成测试用例的方法和装置 | |
CN111078482A (zh) | 通讯导航设备测试系统、方法、设备和可读存储介质 | |
CN111108481B (zh) | 故障分析方法及相关设备 | |
CN111522728A (zh) | 自动化测试用例的生成方法、电子设备及可读存储介质 | |
CN113706110B (zh) | 一种fpga测试工具一体化测试管理平台 | |
CN115309566A (zh) | 一种服务接口的动态管理方法及系统 | |
CN108460068A (zh) | 报表导入导出的方法、装置、存储介质及终端 | |
CN103810094B (zh) | 一种测试案例的执行方法、装置和测试工具 | |
US20070156742A1 (en) | Visual modeling method and apparatus | |
CN117472372A (zh) | 一种响应式表单搭建方法及系统 | |
CN116204396A (zh) | 一种针对分析型数据库性能的测试方法和装置 | |
CN106650138B (zh) | 一种自动实现静态和动态时序分析对比的方法 | |
CN109522213A (zh) | 一种基于自定义测试脚本的测试方法及装置 | |
CN107992417B (zh) | 基于存储过程的测试方法、装置及设备、可读存储介质 | |
CN111813665A (zh) | 一种基于python的大数据平台接口数据测试方法和系统 | |
CN112199294A (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: 20150624 |