一种自动化单元测试方法技术

技术编号:23764095 阅读:59 留言:0更新日期:2020-04-11 18:55
本发明专利技术提供一种自动化单元测试方法,包括:提取待测文件:对SVN服务器进行访问,比较SVN版本库中代码发生变更的文件,并对代码发生变更后的文件进行文件格式识别,提取出C文件作为第一待测文件,对第一待测文件执行去换行符操作得到第二待测文件,将第二待测文件传送给测试工具的单元测试执行单元;对测试工具进行测试环境配置,以提供第二待测文件的运行环境;对第二待测文件执行单元测试:采用配置之后的测试工具对所述第二待测文件进行单元测试处理;所述单元测试处理包括创建集合、添加第二待测文件和执行单元测试,执行单元测试之后生成单元测试报告。

An automatic unit test method

【技术实现步骤摘要】
一种自动化单元测试方法
本专利技术属于软件测试领域,具体涉及一种自动化单元测试方法。
技术介绍
按照国军标的要求,军用软件研制过程中,软件单元测试是不可或缺的测试活动,也是软件质量保证的关键环节。软件单元测试是指测试程序中单个子程序或过程。单元测试的目的是验证模块满足功能、性能和接口等的要求。单元测试主要是模块接口、局部数据结构、重要的执行路径、错误处理和边界测试等五个基本特性进行考察。有效地单元测试能够在软件研制早期发现编码中存在的绝大部分缺陷,从而减小后期发现缺陷带来的成本问题。Testbed是较常见的单元测试工具之一。用户能够根据测试需要灵活地编写桩函数、对变量赋值,生成语句覆盖率、分支覆盖率、MC/DC覆盖率报告。因此备受军工企业青睐。然而,Testbed单元测试工具的繁琐界面操作使得单元测试工作非常耗时,需要投入大量的人力成本。据不完全统计,熟练使用Testbed单元测试工具的情况下,仅能做到人均300行代码/天。当代码规模达到十万行,则需要至少300人日完成单元测试工作。
技术实现思路
本专利技术的目的:一种自动化单元测试方法。该方法使用python语言调用Testbed单元测试工具实现。本专利技术的技术方案:提供一种自动化单元测试方法,所述单元测试方法包括:提取待测文件:对SVN服务器进行访问,比较SVN版本库中代码发生变更的文件,并对代码发生变更后的文件进行文件格式识别,提取出C文件作为第一待测文件,对第一待测文件执行去换行符操作得到第二待测文件,将第二待测文件传送给测试工具的单元测试执行单元;对测试工具进行测试环境配置,以提供第二待测文件的运行环境;对第二待测文件执行单元测试:采用配置之后的测试工具对所述第二待测文件进行单元测试处理;所述单元测试处理包括创建集合、添加第二待测文件和执行单元测试,执行单元测试之后生成单元测试报告。进一步地,所述比较SVN版本库中代码发生变更的文件包括:首先通过读取配置文件中的原始待测文件版本信息,以获取待比较的两个版本号;然后对不同版本号对应的原始待测文件执行比较操作,获取版本差异,提取差异文件;所述对代码发生变更后的文件进行文件格式识别包括:从SVN服务器中导出提取的差异文件;按行读取差异文件并筛选出适用格式的C文件作为第一待测文件。进一步地,所述测试工具为Testbed测试工具;在进行测试环境配置时,对所述第二待测文件配置适用的编译器、配置头文件路径、配置启动模拟器,以生成Testbed.ini文件;测试环境配置之后,设置桩函数和设计编写测试用例,以生成TCF文件。进一步地,所述创建集合包括:获取当前系统时间以给集合命名;然后给命名后的集合配置分析属性,根据第二待测文件间的互相关系需求确定第二待测文件的分析属性;所述分析属性包括孤立分析或工程分析;进一步地,所述添加第二待测文件包括:向配置分析属性后的集合添加第二待测文件,在对第二待测文件执行添加操作时,首先按行读取第二待测文件,去除行尾的换行符,以获取第二待测文件全名;然后,对添加指令操作符和第二待测文件全名执行字符串拼接操作。进一步地,在添加待测文件之后,读取所述Testbed.ini文件,自动获取进行所述第二待测文件单元测试时所需的环境信息,所述环境信息包括第二待测文件的编译器、头文件路径、模拟器、模板、插桩选项、历史记录存放路径、代码等级和测试级别;读取所述TCF文件,自动获取进行所述第二待测文件单元测试时所需的桩函数和测试用例信息。进一步地,所述执行单元测试包括:对所述第二待测文件做编译器预处理以将宏扩展到第二待测文件;修改所述第二待测文件的头文件格式,归一化为#include”X.h”;通过插桩将经过编译器预处理和归一化处理之后的第二待测文件生成第三待测文件;通过编译器编译所述第三待测文件生成可执行程序,对可执行程序执行单元测试。进一步地,在可执行程序执行单元测试时,记录第三待测文件中所有函数的执行过程,并通过Testbed测试工具分析所述执行过程,以生成单元测试报告;所述单元测试报告包括语句覆盖率报告、分支覆盖率报告、MC/DC覆盖率报告、回归报告、测试变量报告中的一个或多个。本专利技术的有益效果:本专利技术通过访问SVN服务器和对适用格式的文件筛选,实现待测文件的自动化提取,能够有效地提高文件提取效率,降低人力成本;通过配置和调用测试工具自动化读取并执行测试用例,实现单元测试自动化,避免了测试工具界面操作的繁琐步骤,能够提高单元测试效率,降低成本。本专利技术所述的自动化单元测试方法,能够使测试人员将更多的精力放在测试用例的设计编写上,从而达到提高测试效率,减少人力成本,缩短软件研制周期,改善代码质量的效果。附图说明图1为Testbed测试工具配置流程图;图2为单元测试自动化执行流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。图2为单元测试自动化执行流程图,如图2所示,本实施例,提供一种自动化单元测试方法,所述单元测试方法包括以下步骤:(1)提取待测文件对SVN服务器进行访问,比较SVN版本库中代码发生变更的文件,并对代码发生变更后的文件进行文件格式识别,提取出C文件作为第一待测文件,对第一待测文件执行去换行符操作得到第二待测文件,将第二待测文件传送给测试工具的单元测试执行单元;所述比较SVN版本库中代码发生变更的文件包括:首先通过读取配置文件中的原始待测文件版本信息,以获取待比较的两个版本号;然后对不同版本号对应的原始待测文件执行比较操作,获取版本差异,提取差异文件;所述对代码发生变更后的文件进行文件格式识别包括:从SVN服务器中导出提取的差异文件;按行读取差异文件并筛选出适用格式的C文件作为第一待测文件。(2)测试环境配置对测试工具进行测试环境配置,以提供第二待测文件的运行环境。所述测试工具为Testbed测试工具;在进行测试环境配置时,对所述第二待测文件配置适用的编译器、配置头文件路径、配置启动模拟器,以生成Testbed.ini文件;测试环境配置之后,设置桩函数和设计编写测试用例,以生成TCF文件。(3)自动化单元测试对第二待测文件执行单元测试:采用配置之后的测试工具对所述第二待测文件进行单元测试处理;所述单元测试处理包括创建集合、添加第二待测文件和执行单元测试,执行单元测试之后生成单元测试报告。所述创建集合包括:获取当前系统时间以给集合命名;然后给命名后的集合配置分析属性,根据第二待测文件间的互相关系需求确定第二待测文件的分析属性;所述分析属性包括孤立分析或工程分析;所述添加第二待测文件包括:向本文档来自技高网...

【技术保护点】
1.一种自动化单元测试方法,其特征在于,所述单元测试方法包括:/n提取待测文件:对SVN服务器进行访问,比较SVN版本库中代码发生变更的文件,并对代码发生变更后的文件进行文件格式识别,提取出C文件作为第一待测文件,对第一待测文件执行去换行符操作得到第二待测文件,将第二待测文件传送给测试工具的单元测试执行单元;/n对测试工具进行测试环境配置,以提供第二待测文件的运行环境;/n对第二待测文件执行单元测试:采用配置之后的测试工具对所述第二待测文件进行单元测试处理;所述单元测试处理包括创建集合、添加第二待测文件和执行单元测试,执行单元测试之后生成单元测试报告。/n

【技术特征摘要】
1.一种自动化单元测试方法,其特征在于,所述单元测试方法包括:
提取待测文件:对SVN服务器进行访问,比较SVN版本库中代码发生变更的文件,并对代码发生变更后的文件进行文件格式识别,提取出C文件作为第一待测文件,对第一待测文件执行去换行符操作得到第二待测文件,将第二待测文件传送给测试工具的单元测试执行单元;
对测试工具进行测试环境配置,以提供第二待测文件的运行环境;
对第二待测文件执行单元测试:采用配置之后的测试工具对所述第二待测文件进行单元测试处理;所述单元测试处理包括创建集合、添加第二待测文件和执行单元测试,执行单元测试之后生成单元测试报告。


2.根据权利要求1所述的自动化单元测试方法,其特征在于,
比较SVN版本库中代码发生变更的文件包括:首先通过读取配置文件中的原始待测文件版本信息,以获取待比较的两个版本号;然后对不同版本号对应的原始待测文件执行比较操作,获取版本差异,提取差异文件;
对代码发生变更后的文件进行文件格式识别包括:从SVN服务器中导出提取的差异文件;按行读取差异文件并筛选出适用格式的C文件作为第一待测文件。


3.根据权利要求1所述的自动化单元测试方法,其特征在于,所述测试工具为Testbed测试工具;在进行测试环境配置时,对所述第二待测文件配置适用的编译器、配置头文件路径、配置启动模拟器,以生成Testbed.ini文件;测试环境配置之后,设置桩函数和设计编写测试用例,以生成TCF文件。


4.根据权利要求1所述的自动化单元测试方法,其特征在于,所述创建集合包括:获取当前系统时间以给集合命名;然后给命名后的集合配置分析属性,并根据第二待测文件间的互相关系需求确定...

【专利技术属性】
技术研发人员:苗晓旭曾佩杰胡玉露朱文钊
申请(专利权)人:中国直升机设计研究所
类型:发明
国别省市:江西;36

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

1