本发明专利技术公开了一种测试用例的生成方法,包括:利用编译器对源程序进行编译,生成插桩源程序;利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图;对所述流程图进行计算,得到所述源程序的目标路径集;根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例;该方法能够自动生成测试用例,因此使得测试用例的生成更具人性化节省人力,简单易用,图形结合,节省成本,提高效率;本发明专利技术还公开了一种测试用例的生成系统。
【技术实现步骤摘要】
本专利技术涉及数据处理
,特别涉及一种测试用例的生成方法及系统。
技术介绍
程序测试存在于程序开发过程的整个生命周期,工作量很大,在进行测试的过程中需要使用很多各种各样的资源。因为测试用例的设计、执行、分析都是十分繁琐的,需要花费很多的时间,同时效率很低,所以测试的成本费用很高。在程序开发工作中程序测试的工作占有的比例很高,通常达到40%左右,有些要求高的甚至达到60%。因为程序测试的大多数操作和过程都是具有重复性和大量性的,所以可以将自动化方法应用于程序开发过程中的程序测试工作。测试的自动化不仅可以让测试人员减少许多无意义的工作量,而且还可以提高资源的利用率。当前的自动化测试工具主要是分为功能和性能测试工具,其中性能的测试工具比较成熟,而功能方面特别是,在测试数据的自动生成方面的研究还比较欠缺。而要实现自动化主要与测试用例自动生成的程度相关,测试用例的自动生成可以有效地减少工作人员的工作量和加快测试的进程。但是在目前的一些测试工具中(如testbed,c++test),有关测试用例自动生成的效果和测试覆盖情况都不太理想,在大多数程序产品的开发中,许多所谓的自动化测试工具其实都不是完全能够达到自动化的,特别是测试用例的生成这一方面,主要还是采用手工设计的模式来完成产品的测试。现有的测试用例主要为黑盒测试,同时程序的插装主要为手动方式,效率低下,同时容易出现错误,针对这些缺点。因此,针对上述缺点,如何自动生成测试用例,是本领域技术人员需要解决的技术问题。
技术实现思路
本专利技术的目的是提供一种测试用例的生成方法及系统,能够自动生成测试用例,使得测试用例的生成更具人性化节省人力,简单易用,图形结合,节省成本,提高效率。为解决上述技术问题,本专利技术提供一种测试用例的生成方法,包括:利用编译器对源程序进行编译,生成插桩源程序;利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图;对所述流程图进行计算,得到所述源程序的目标路径集;根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例。其中,利用编译器对源程序进行编译,生成插桩源程序,包括:利用GCC编译器对源程序进行编译,生成RTL中间代码;对所述RTL中间代码进行汇编,生成插桩源程序。其中,利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图,包括:利用GCC编译器对源程序进行编译,得到语法树中间文件;将所述语法树中间文件转换为gxl格式文件;将所述gxl格式文件转换为xml文件;对所述xml文件进行解析,生成所述源程序的流程图。其中,根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例,包括:根据所述插桩源程序及所述目标路径集,确定每个目标路径经过的分支点,并通过遗传算法生成每个目标路径对应的测试用例。本专利技术提供一种测试用例的生成系统,包括:插桩源程序成模块,用于利用编译器对源程序进行编译,生成插桩源程序;流程图生成模块,用于利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图;目标路径集生成模块,用于对所述流程图进行计算,得到所述源程序的目标路径集;测试用例生成模块,用于根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例。其中,所述插桩源程序成模块包括:RTL中间代码生成单元,用于利用GCC编译器对源程序进行编译,生成RTL中间代码;插桩源程序生成单元,用于对所述RTL中间代码进行汇编,生成插桩源程序。其中,所述流程图生成模块包括:语法树生成单元,用于利用GCC编译器对源程序进行编译,得到语法树中间文件;gxl格式文件生成单元,用于将所述语法树中间文件转换为gxl格式文件;xml文件生成单元,用于将所述gxl格式文件转换为xml文件;流程图生成单元,用于对所述xml文件进行解析,生成所述源程序的流程图。其中,所述测试用例生成模块为根据所述插桩源程序及所述目标路径集,确定每个目标路径经过的分支点,并通过遗传算法生成每个目标路径对应的测试用例的模块。本专利技术所提供的测试用例的生成方法,包括:利用编译器对源程序进行编译,生成插桩源程序;利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图;对所述流程图进行计算,得到所述源程序的目标路径集;根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例;该方法根据生成的插桩源程序即目标路径集利用遗传算法能够自动生成测试用例,因此使得测试用例的生成更具人性化节省人力,简单易用,图形结合,节省成本,提高效率;本专利技术还公开了一种测试用例的生成系统。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面
描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1为本专利技术实施例所提供的测试用例的生成方法的流程图;图2为本专利技术实施例所提供的GCC编译器的工作流程示意图;图3为本专利技术实施例所提供的源程序的流程图生成示意图;图4为本专利技术实施例所提供的目标路径的测试用例的生成示意图;图5为本专利技术实施例所提供的测试用例的生成系统的结构框图。具体实施方式本专利技术的核心是提供一种测试用例的生成方法及系统,能够自动生成测试用例,使得测试用例的生成更具人性化节省人力,简单易用,图形结合,节省成本,提高效率。为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参考图1,图1为本专利技术实施例所提供的测试用例的生成方法的流程图;该方法可以包括:S100、利用编译器对源程序进行编译,生成插桩源程序;其中,该步骤是利用编译器对源程序进行编译,以便实现自动对源程序进行插桩,实现对源程序的逻辑覆盖。这里只要是可以自动完成的编译器都可,例如GCC编译器,GNU:(GNU Compiler Collection,GNU编译器套装),GCC编译器是一个支持跨平台的编译器,它能在x86、x86-64、IA-64、Power PC、SPARC和Alpha等大多数的硬件平台上运行,该GCC编译器在内部进行了高度的优化,它也可以进行移植,在硬件编程中使用相当广泛。同时大多数主流的编程语言它都能支持比如C/C++、Objective-C、Fortran、Java和Ada。因此,优选的,该步骤使用GCC编译器生成插桩源程序,具体过程如下:利用GCC编译器对源程序进行编译,生成RTL中间代码;对所述RTL中间代码进行汇编,生成插桩源程序。其中,具体的请参考图2,通过图2可以了解到源代码的编译过程,并利用RTL的中间代码对源程序进行插装同时不影响程序运行的效率。通过编译器对源程序文件进行本文档来自技高网...
【技术保护点】
一种测试用例的生成方法,其特征在于,包括:利用编译器对源程序进行编译,生成插桩源程序;利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图;对所述流程图进行计算,得到所述源程序的目标路径集;根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例。
【技术特征摘要】
1.一种测试用例的生成方法,其特征在于,包括:利用编译器对源程序进行编译,生成插桩源程序;利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图;对所述流程图进行计算,得到所述源程序的目标路径集;根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例。2.如权利要求1所述的测试用例的生成方法,其特征在于,利用编译器对源程序进行编译,生成插桩源程序,包括:利用GCC编译器对源程序进行编译,生成RTL中间代码;对所述RTL中间代码进行汇编,生成插桩源程序。3.如权利要求2所述的测试用例的生成方法,其特征在于,利用所述编译器对所述源程序进行图形化显示,获得语法树中间文件,并对所述语法树中间文件进行解析,生成所述源程序的流程图,包括:利用GCC编译器对源程序进行编译,得到语法树中间文件;将所述语法树中间文件转换为gxl格式文件;将所述gxl格式文件转换为xml文件;对所述xml文件进行解析,生成所述源程序的流程图。4.如权利要求3所述的测试用例的生成方法,其特征在于,根据所述插桩源程序及所述目标路径集,利用遗传算法生成测试用例,包括:根据所述插桩源程序及所述目标路径集,确定每个目标路径经过的分支点,并通过遗传算法生成每个目标路径对应的测试用例。5.一种测试用例的生成系统,其特征...
【专利技术属性】
技术研发人员:俞祥贤,
申请(专利权)人:珠海迈科智能科技股份有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。