一种单元测试方法及装置制造方法及图纸

技术编号:14349313 阅读:90 留言:0更新日期:2017-01-04 19:57
本发明专利技术公开了一种单元测试方法及装置,包括:确定需要测试的目标单元;根据所述目标单元所对应的函数,生成第一文档文件,所述第一文档文件中包括:至少一个输入变量、以及所述至少一个输入变量对应的输出变量;根据所述第一文档文件中每一个输入变量对应的各个测试值,生成所述输出变量的预期值;将所述目标单元对应的属性信息存储到第二文档文件中,并对所述第二文档文件中的所述属性信息进行编译;对编译后的所述第二文档文件进行测试,得到实际测试值;根据所述预期值和所述实际测试值,生成测试结果。本发明专利技术能够减少单元测试的工作量。

【技术实现步骤摘要】

本专利技术涉及软件
,特别涉及一种单元测试方法及装置
技术介绍
单元测试是对软件程序中的最小可测试单元进行的最有针对性、覆盖最全面、最彻底的系统性测试,用以检验软件程序的逻辑正确性,保证所编写软件程序的行为满足编程者的具体需要。单元测试在软件程序开发阶段可以充分发现软件程序中存在的Bug(漏洞),以保证软件程序的质量和使用效率。目前,主要是通过人工实现单元测试,该人工实现的单元测试主要包括:完成一段软件程序,并对该段软件程序进行编译;确定出该段软件程序存在的语法错误、词法错误等漏洞,并对存在的漏洞进行修改,修改后再对该段软件程序进行编译,直到编译通过为止。针对编译通过的软件程序,输入变量值进行运行操作,以确定测试结果。可见,现有技术中单元测试的工作量巨大。
技术实现思路
本专利技术实施例提供了一种单元测试方法及装置,以便于减少单元测试的工作量。第一方面,本专利技术实施例提供了一种单元测试的方法,该方法包括:确定需要测试的目标单元;根据所述目标单元所对应的函数,生成第一文档文件,所述第一文档文件中包括:至少一个输入变量、以及所述至少一个输入变量对应的输出变量;根据所述第一文档文件中每一个输入变量对应的各个测试值,生成所述输出变量的预期值;将所述目标单元对应的属性信息存储到第二文档文件中,并对所述第二文档文件中的所述属性信息进行编译;对编译后的所述第二文档文件进行测试,得到实际测试值;根据所述预期值和所述实际测试值,生成测试结果。优选地,在所述确定需要测试的目标单元之前,进一步包括:确定所需测试的软件程序对应的多个最小单元;对所述软件程序进行编译;针对编译后的所述软件程序进行静态分析;根据分析结果确定不存在漏洞的最小单元;所述确定需要测试的目标单元,包括:将不存在漏洞的最小单元确定为所述目标单元。优选地,进一步包括:设定条数阈值;在所述生成所述输出变量的预期值之前,进一步包括:根据所述第一文档文件中每一个输入变量对应的各个测试值,确定执行所述生成所述输出变量的预期值的测试脚本条数;在确定的所述测试脚本条数大于所述条数阈值时,则将所述测试脚本条数分成至少两个分组;针对每一个分组,执行所述生成所述输出变量的预期值;其中,所述测试脚本条数为各个输入变量对应测试值个数的乘积。优选地,所述测试结果包括:所述预期值和所述实际测试值比较结果、测试报告和测试覆盖率文档;其中,所述测试报告,包括:漏洞总数、严重漏洞总数、漏洞类型、单元测试总工作量、漏洞原因分析;所述测试覆盖率文档,包括:测试覆盖率的百分比、每一行代码的执行情况、未执行的代码;优选地,所述第二文档文件,包括:所述目标单元所对应函数中输入变量的定义、输出变量的定义、类型的定义、函数的主体和每一个输入变量对应的各个测试值。第二方面,本专利技术实施例提供了一种单元测试的装置,该装置包括:确定单元,用于确定需要测试的目标单元;第一生成单元,用于根据所述目标单元所对应的函数,生成第一文档文件;则,所述第一文档文件中包括:至少一个输入变量、以及所述至少一个输入变量对应的输出变量;根据所述第一文档文件中每一个输入变量对应的各个测试值,生成所述输出变量的预期值;编译单元,用于将所述目标单元对应的属性信息存储到第二文档文件中,并对所述第二文档文件中的所述属性信息进行编译;测试单元,用于对编译后的所述第二文档文件进行测试,得到实际测试值;第二生成单元,用于根据所述预期值和所述实际测试值,生成测试结果。优选地,进一步包括:分析单元,用于确定所需测试的软件程序对应的多个最小单元;对所述软件程序进行编译;针对编译后的所述软件程序进行静态分析;根据分析结果确定不存在漏洞的最小单元;其中,所述确定单元,具体用于:将不存在漏洞的最小单元确定为所述目标单元。优选地,进一步包括:存储单元,用于存储设定的条数阈值;进一步包括:划分单元,用于根据所述第一文档文件中每一个输入变量对应的各个测试值,确定执行所述生成所述输出变量的预期值的测试脚本条数;在确定的所述测试脚本条数大于所述条数阈值时,则将所述测试脚本条数分成至少两个分组;针对每一个分组,执行所述生成所述输出变量的预期值;其中,所述测试脚本条数为各个输入变量对应测试值个数的乘积。优选地,所述测试结果包括:所述预期值和所述实际测试值比较结果、测试报告和测试覆盖率文档;其中,所述测试报告,包括:漏洞总数、严重漏洞总数、漏洞类型、单元测试总工作量、漏洞原因分析;所述测试覆盖率文档,包括:测试覆盖率的百分比、每一行代码的执行情况、未执行的代码。优选地,所述第二文档文件,包括:所述目标单元所对应函数中输入变量的定义、输出变量的定义、类型的定义、函数的主体和每一个输入变量对应的各个测试值。可见,本专利技术实施例提供了一种单元测试方法及装置,首先确定需要测试的目标单元,根据所述目标单元所对应的函数,生成一个包括至少一个输入变量以及与所述至少一个输入变量对应的输出变量的第一文档文件。在所述第一文档文件中输入各个输入变量的各个测试值,根据所述测试值生成所述输出变量的预期值,然后把所述目标单元对应的属性信息存储到第二文档文件中,并编译所述第二文档文件,直至编译通过。对所述编译通过后的所述第二文档文件进行测试,得到实际测试值,比较所述实际测试值与所述预期值进行比较,生成测试结果,这个单元测试方法实现了半自动化的操作,减少了测试人员的手动操作时间,因此减少了单元测试的工作量。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一个实施例提供的一种单元测试方法流程图;图2是本专利技术一个实施例提供的另一种单元测试方法流程图;图3是本专利技术一个实施例提供的一种装置所在设备的硬件架构图;图4是本专利技术一个实施例提供的一种单元测试装置结构图;图5是本专利技术一个实施例提供的另一种单元测试装置结构图;图6是本专利技术一个实施例提供的又一种单元测试装置结构图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供了一种单元测试方法,该方法可以包括以下步骤:步骤101:确定需要测试的目标单元;步骤102:根据所述目标单元所对应的函数,生成第一文档文件,所述第一文档文件中包括:至少一个输入变量、以及所述至少一个输入变量对应的输出变量;步骤103:根据所述第一文档文件中每一个输入变量对应的各个测试值,生成所述输出变量的预期值;步骤104:将所述目标单元对应的属性信息存储到第二文档文件中,并对所述第二文档文件中的所述属性信息进行编译;步骤105:对编译后的所述第二文档文件进行测试,得到实际测试值;步骤106:根据所述预期值和所述实际测试值,生成测试结果。根据上述实施例,首先确定需要测试的目标单元,根据本文档来自技高网...
一种单元测试方法及装置

【技术保护点】
一种单元测试方法,其特征在于,包括:确定需要测试的目标单元;根据所述目标单元所对应的函数,生成第一文档文件,所述第一文档文件中包括:至少一个输入变量、以及所述至少一个输入变量对应的输出变量;根据所述第一文档文件中每一个输入变量对应的各个测试值,生成所述输出变量的预期值;将所述目标单元对应的属性信息存储到第二文档文件中,并对所述第二文档文件中的所述属性信息进行编译;对编译后的所述第二文档文件进行测试,得到实际测试值;根据所述预期值和所述实际测试值,生成测试结果。

【技术特征摘要】
1.一种单元测试方法,其特征在于,包括:确定需要测试的目标单元;根据所述目标单元所对应的函数,生成第一文档文件,所述第一文档文件中包括:至少一个输入变量、以及所述至少一个输入变量对应的输出变量;根据所述第一文档文件中每一个输入变量对应的各个测试值,生成所述输出变量的预期值;将所述目标单元对应的属性信息存储到第二文档文件中,并对所述第二文档文件中的所述属性信息进行编译;对编译后的所述第二文档文件进行测试,得到实际测试值;根据所述预期值和所述实际测试值,生成测试结果。2.根据权利要求1所述的方法,其特征在于,在所述确定需要测试的目标单元之前,进一步包括:确定所需测试的软件程序对应的多个最小单元;对所述软件程序进行编译;针对编译后的所述软件程序进行静态分析;根据分析结果确定不存在漏洞的最小单元;所述确定需要测试的目标单元,包括:将不存在漏洞的最小单元确定为所述目标单元。3.根据权利要求1所述的方法,其特征在于,进一步包括:设定条数阈值;在所述生成所述输出变量的预期值之前,进一步包括:根据所述第一文档文件中每一个输入变量对应的各个测试值,确定执行所述生成所述输出变量的预期值的测试脚本条数;在确定的所述测试脚本条数大于所述条数阈值时,则将所述测试脚本条数分成至少两个分组;针对每一个分组,执行所述生成所述输出变量的预期值;其中,所述测试脚本条数为各个输入变量对应测试值个数的乘积。4.根据权利要求1所述的方法,其特征在于,所述测试结果包括:所述预期值和所述实际测试值比较结果、测试报告和测试覆盖率文档;其中,所述测试报告,包括:漏洞总数、漏洞类型、单元测试总工作量和漏洞原因分析中的至少一种;所述测试覆盖率文档,包括:测试覆盖率的百分比、每一行代码的执行情况和未执行的代码中的至少一种。5.根据权利要求1-4中任一所述的方法,其特征在于,所述第二文档文件,包括:所述目标单元所对应函数中输入变量的定义、输出变量的定义、类型的定义、函数的主体和每一个输入变量对应的各个测试值。6.一种单元测试装置,其特征在于,包括:...

【专利技术属性】
技术研发人员:马彬
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

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

1