单元测试数据生成方法和单元测试数据生成系统技术方案

技术编号:11661580 阅读:152 留言:0更新日期:2015-06-29 15:51
本发明专利技术提供了一种单元测试数据生成方法和一种单元测试数据生成系统,其中,单元测试数据生成方法包括:根据预设单元测试标准,解析被测试数据的源代码结构;确定测试所需的单元测试数据的参数类型,并进行参数构造;在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。通过本发明专利技术的技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。

【技术实现步骤摘要】

本专利技术涉及数据测试
,具体而言,涉及一种单元测试数据生成方法和一种单元测试数据生成系统。
技术介绍
单元测试是指对软件的基本组成单元或模块进行的测试,又称为模块测试。基本单元或模块可以是函数、类实例、方法、存储过程等,也可以是任何具有明确功能定义、明确规格定义、明确接口定义、规模较小的程序代码模块的组合体。单元测试既关注单元功能,也关注程序模块的逻辑结构,其目的在于发现程序设计或实现的逻辑错误,使问题及早暴露,便于对问题的定位及解决。然而,要达到较高的单元测试覆盖率,准备一个比较完善的数据集合至关重要。在相关技术中,测试人员首先需要查看代码的数据来源,手动分析代码结构,并对其分析结果进行数据构建,同时需要对已有数据进行分析、验证、检查以保证数据的质量,以及在检查完后要整理和完善数据,并清除无用和冗余的数据、补录不完整的数据、修改错误的数据等,最后测试人员将构建好的数据保存。由于代码数据结构的复杂性以及程序中数据来源的多样性,相关技术中仅根据分析方法参数对代码控制流程的影响的技术方案,存在一定的局限性。因此,需要一种新的技术方案,可以通过自动化测试数据生成方法取代传统的繁琐的测试数据准备工作。
技术实现思路
本专利技术正是基于上述问题,提出了一种新的技术方案,可以通过自动化测试数据生成方法取代传统的繁琐的测试数据准备工作。有鉴于此,本专利技术的一方面提出了一种单元测试数据生成方法,包括:根据预设单元测试标准,解析被测试数据的源代码结构;确定测试所需的单元测试数据的参数类型,并进行参数构造;在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。在该技术方案中,能够按照预设的单元测试标准,自动地分析被测试源代码的结构,并根据分析结果进行参数构造,从而自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。在上述技术方案中,优选地,所述根据预设单元测试标准,解析被测试数据的源代码结构,具体包括:根据所述预设单元测试标准,确定所述单元测试数据的分支路径的数量,并确定每条所述分支路径的执行条件表达式。在该技术方案中,可以采用条件测试和分支测试的方法对需要进行测试的源代码进行分析,得出需要进行测试的分支路径,而分支条件测试可以决定要执行的分支路径的数量,具体地,可通过分析源代码,确定达到测试覆盖率100%时需要执行多少条分支路径。在该技术方案中,还可以计算每条分支路径执行的条件以及执行的语句,并且得出执行这些分支路径路径需要满足的参数条件,最后得到各分支路径的执行条件表达式,从而便于对每条分支路径进行单独的数据分析。在上述技术方案中,优选地,所述进行参数构造,具体包括:根据每条所述分支路径的所述执行条件表达式,为每条所述分支路径生成参数范围表达式。在该技术方案中,可以根据源代码分析结果中的执行条件表达式,以及对每条分支路径进行单独数据分析的分析结果,生成参数范围表达式。在上述技术方案中,优选地,所述根据所述参数类型和所述参数构造的结果,生成单元测试数据,具体包括:根据所述参数类型,查找类型约束表,并根据所述类型约束表的预设规则,生成与所述参数类型对应的参数类型对象;根据生成的所述参数范围表达式,查找数据生成表,并根据所述数据生成表,生成所述参数类型对象对应的参数数据,以供生成所述单元测试数据。在该技术方案中,可以根据确定的参数类型和参数范围表达式,分别在类型约束表和数据生成表中进行查找操作,从而得到最终的测试数据。通过本技术方案,可以自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。在上述技术方案中,优选地,所述参数类型包括以下至少之一或其组合:简单类型、自定义类型、通用类型。在该技术方案中,简单类型包括int、f 1at等8种基本参数类型,自定义类型即用户自定义的数据类型,通用类型则为Java定义的常用类和接口。当然,参数类型也可以是根据需要除此之外的其他类型。本专利技术的另一方面提出了一种单元测试数据生成系统,其特征在于,包括:解析单元,根据预设单元测试标准,解析被测试数据的源代码结构;执行单元,根据解析结果,确定测试所需的单元测试数据的参数类型,并进行参数构造;生成单元,在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。在该技术方案中,能够按照预设的单元测试标准,自动地分析被测试源代码的结构,并根据分析结果进行参数构造,从而自动生成单元测试数据,以直接应用于测试方法,使测试人员省去了繁琐的测试用例数据准备工作,不再需要测试人员去完成分析代码结构、准备测试数据、分析测试用例等工作,将手工准备方式变为自动化生成方法,大量节约了开发时间和开发成本,提高了测试效率。在上述技术方案中,优选地,所述解析单元具体用于:根据所述预设单元测试标准,确定所述单元测试数据的分支路径的数量,并确定每条所述分支路径的执行条件表达式。在该技术方案中,可以采用条件测试和分支测试的方法对需要进行测试的源代码进行分析,得出需要进行测试的分支路径,而分支条件测试可以决定要执行的分支路径的数量,具体地,可通过分析源代码,确定达到测试覆盖率100%时需要执行多少条分支路径。在该技术方案中,还可以计算每条分支路径执行的条件以及执行的语句,并且得出执行这些分支路径路径需要满足的参数条件,最后得到各分支路径的执行条件表达式,从而便于对每条分支路径进行单独的数据分析。在上述技术方案中,优选地,所述执行单元包括:根据每条所述分支路径的所述执行条件表达式,为每条所述分支路径生成参数范围表达式。在该技术方案中,可以根据源代码分析结果中的执行条件表达式,以及对每条分支路径进行单独数据分析的分析结果,生成参数范围表达式。在上述技术方案中,优选地,所述生成单元具体用于:根据所述参数类型,查找类型约束表,并根据所述类型约束表的预设规则,生成与所述参数类型对应的参数类型对象,以及根据生成的所述参数范围表达式,查找数据生成表,并根据所述数据生成当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种单元测试数据生成方法,其特征在于,包括:根据预设单元测试标准,解析被测试数据的源代码结构;确定测试所需的单元测试数据的参数类型,并进行参数构造;在完成所述参数构造之后,根据所述参数类型和所述参数构造的结果,生成所述单元测试数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡尊文李志国
申请(专利权)人:用友网络科技股份有限公司
类型:发明
国别省市:北京;11

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

1