一种自动化单元测试的实现方法及装置制造方法及图纸

技术编号:11139738 阅读:126 留言:0更新日期:2015-03-12 20:04
本发明专利技术实施例公开了一种自动化单元测试的实现方法及装置。其中,该方法包括:获取用户在本次单元测试下输入的被测对象、负载对象以及测试用例的配置信息;根据预先生成的代码文件模板和所述配置信息,生成相应的被测对象代码文件、负载对象代码文件以及测试用例代码文件;基于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测试桩代码文件执行关联编译操作,以生成可执行的测试程序,并运行所述测试程序,根据运行结果生成测试报告。本发明专利技术实施例提供的技术方案,解决了现有技术中测试用例编写过程工作量大、时间长的问题,实现了单元测试的自动化,缩减了测试用例的编码时间,提高了测试效率和准确率。

【技术实现步骤摘要】

本专利技术实施例涉及测试
,尤其涉及一种自动化单元测试的实现方法及装置
技术介绍
在大机组程序开发中,为了能够复用已开发产品的资源(架构、文档、库和源码),通常需要一套可方便复用程序资源并且可通过动态配置属性就能直接输出程序的软件系统,这样在很大程度上可以减少程序开发过程中的重复工作量,加快程序开发的进度,让产品占得市场先机。在这样一套软件系统中进行程序开发工作,程序的质量无疑是重中之重,那么十分有必要对其进行单元测试。单元测试是一种白盒测试,旨在检测程序代码中的错误和漏洞,从源头上保证程序的质量,是对程序每一行代码或代码块进行覆盖测试以判断其正确与否。在现有技术中,通常所采用的单元测试方式是通过人工编写大量的测试用例代码对源程序代码进行测试验证,并通过编译生成测试报告,再通过解读测试报告中令人费解的测试数据,最终才能判断出源程序代码中的错误和漏洞。显然,上述现有技术存在的技术缺陷在于:在编写测试用例的过程中,可能会因为编写者的编码笔误等原因而造成测试错误,故使源程序遗留或多或少的漏洞未能及时发现;并且,测试用例代码量往往都比源程序代码量更庞大,工作量非常大,特别是在源程序代码更改后进行回归测试时,如果需要重新修改测试用例代码甚至要重写,则更是会耗费大量的编码时间。传统的单元测试方式测试时间长,对人员的要求高,工作量大,因此程序很少做完整的单元测试。为了解决这种困境,那么我们则必须要使单元测试自动化,减轻测试的工作量,缩短测试时间。
技术实现思路
本专利技术实施例提供一种自动化单元测试的实现方法及装置,以实现单元测试的自动化,缩减测试用例的编码时间,提高测试效率和准确率。第一方面,本专利技术实施例提供了一种自动化单元测试的实现方法,该方法包括:获取用户在本次单元测试下输入的被测对象、负载对象以及测试用例的配置信息;根据预先生成的代码文件模板,生成与所述配置信息相对应的被测对象和测试用例代码文件,以及负载对象代码文件;基于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测试桩代码文件执行关联编译操作,以生成可执行的测试程序,并运行所述测试程序,根据运行结果生成测试报告。第二方面,本专利技术实施例还提供了一种自动化单元测试的实现装置,该装置包括:配置信息获取单元,用于获取用户在本次单元测试下输入的被测对象、负载对象以及测试用例的配置信息;测试代码文件生成单元,用于根据预先生成的代码文件模板和所述配置信息,生成相应的被测对象和测试用例代码文件,以及负载对象代码文件;测试程序生成及执行单元,用于基于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测试桩代码文件执行关联编译操作,以生成可执行的测试程序,并运行所述测试程序,根据运行结果生成测试报告。本专利技术实施例提供的技术方案,只需用户在本次单元测试中输入被测对象、负载对象以及测试用例的配置信息,便可自动利用所述配置信息和预先生成的代码文件模板来生成单元测试所需的包含有测试用例代码的代码文件,进而通过对代码文件进行编译来生成可执行的测试程序,并运行所述测试程序,根据运行结果生成测试报告,从而解决了现有技术中测试用例编写过程工作量大、时间长,以及编写者的编码笔误等原因而造成的测试错误的问题,实现了单元测试的自动化,缩减了测试用例的编码时间,提高了测试效率和准确率。附图说明图1是本专利技术实施例一提供的一种自动化单元测试的实现方法的流程示意图;图2是本专利技术实施例二提供的一种自动化单元测试的实现方法的流程示意图;图3是本专利技术实施例三提供的一种自动化单元测试的实现方法的流程示意图;图4A是本专利技术实施例四提供的一种自动化单元测试的实现方法的流程示意图;图4B是本专利技术实施例四提供的一种自动化单元测试的实现方法的网络结构示意图;图4C是本专利技术实施例四提供的一种获取配置信息的人机交互界面示意图;图4D是本专利技术实施例四提供的一种自动化单元测试的实现方法所涉及的部分线程操作示意图;图4E是本专利技术实施例四提供的一种自动化单元测试的实现方法的测试结果示意图;图4F是本专利技术实施例四提供的一种回归测试时所加载显示的测试用例配置信息示意图;图5是本专利技术实施例五提供的一种自动化单元测试的实现装置的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例一图1是本专利技术实施例一提供的一种自动化单元测试的实现方法的流程示意图。该方法可以由自动化单元测试的实现装置来执行,所述装置由软件来实现。参见图1,本实施例提供的自动化单元测试的实现方法具体包括如下操作:操作S110、获取用户在本次单元测试下输入的被测对象、负载对象以及测试用例的配置信息。其中,被测对象在软件中表现为算法,用于实现对各种负载对象内部或外部的逻辑关系的处理,负载对象在软件中表现为结构体,测试用例由至少一个断言组成,每一个断言包括一个输入参数和一个期望输出参数,输入参数和期望输出参数由执行单元测试的用户来定义和输入。本实施例可以采用用户通过人机交互界面输入一些与被测对象、负载对象和测试用例相关的配置信息,或者用户预先编写包含被测对象、负载对象和测试用例相关的配置信息的配置文件的方式,来告知本次单元测试所需要测试的被测对象、负载对象,以及测试用例应该包含几个断言和每个断言的输入参数、期望输出参数的值。这样,在获取了本次单元测试下的被测对象、负载对象以及测试用例的配置信息后,可以后续自动生成与测试用例相关的文件,而无需测试人员手动编写复杂的测试用例,缩减了测试用例的编码时间,提高了测试效率,同时避免了因编写者的编码笔误等造成的测试错误的问题,提高了测试的准确率。操作S120、根据预先生成的代码文件模板和所述配置信息,生成相应的被测对象和测试用例代码文件,以及负载对象代码文件。本实施例采用模板技术预先生成代码文件模板,根据生成的代码文件模板和操作S110获取的配置信息,生成相应的被测对象和测试用例代码文件,以及负载对象代码文件。其中,模板技术有:StringTemplate,Smarty,FastTemplate,ShellPage,Sava本文档来自技高网
...
一种自动化单元测试的实现方法及装置

【技术保护点】
一种自动化单元测试的实现方法,其特征在于,包括:获取用户在本次单元测试下输入的被测对象、负载对象以及测试用例的配置信息;根据预先生成的代码文件模板和所述配置信息,生成相应的被测对象和测试用例代码文件,以及负载对象代码文件;基于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测试桩代码文件执行关联编译操作,以生成可执行的测试程序,并运行所述测试程序,根据运行结果生成测试报告。

【技术特征摘要】
1.一种自动化单元测试的实现方法,其特征在于,包括:
获取用户在本次单元测试下输入的被测对象、负载对象以及测试用例的配
置信息;
根据预先生成的代码文件模板和所述配置信息,生成相应的被测对象和测
试用例代码文件,以及负载对象代码文件;
基于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测
试桩代码文件执行关联编译操作,以生成可执行的测试程序,并运行所述测试
程序,根据运行结果生成测试报告。
2.根据权利要求1所述的自动化单元测试的实现方法,其特征在于,根据
预先生成的代码文件模板和所述配置信息,生成相应的被测对象和测试用例代
码文件,以及负载对象代码文件,包括:
根据预先生成的StringTemplate代码文件模板和所述配置信息,按照CUnit
下的标准代码格式,生成相应的被测对象和测试用例代码文件,以及负载对象
代码文件;
基于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测
试桩代码文件执行关联编译操作,以生成可执行的测试程序,并运行所述测试
程序,根据运行结果生成测试报告,包括:
通过引用CUnit框架的自动模式,基于所生成的代码文件以及对应于本次
单元测试的测试框架代码文件和测试桩代码文件执行关联编译操作,以生成可
执行的测试程序;以及,运行所述测试程序,按照预设规则对运行结果进行序
列化,以生成扩展标记语言XML格式的测试报告。
3.根据权利要求2所述的自动化单元测试的实现方法,其特征在于,在运

\t行所述测试程序,按照预设规则对运行结果进行序列化,以生成扩展标记语言
XML格式的测试报告之后,还包括:
按照所述预设规则对所述测试报告中的序列化运行结果进行反序列化;
将反序列化结果作为本次单元测试的最终结果,通过人机交互界面进行显
示。
4.根据权利要求2所述的自动化单元测试的实现方法,其特征在于,在基
于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测试桩代
码文件执行关联编译操作,以生成可执行的测试程序之前,还包括:
存储所生成的代码文件至预设的目标文件夹目录下;
确定与所述负载对象具有引用关系的目标对象的代码文件和CUnit编译库
文件;
将所确定的目标对象的代码文件和CUnit编译库文件拷贝至所述目标文件
夹目录下;
基于所生成的代码文件以及对应于本次单元测试的测试框架代码文件和测
试桩代码文件执行关联编译操作,以生成可执行的测试程序,包括:
采用GNU编译器套装GCC,对所述目标文件夹目录下存储的所生成的代
码文件、所拷贝的目标对象的代码文件和CUnit编译库文件,以及对应于本次
单元测试的测试框架代码文件和测试桩代码文件进行关联编译;
如果关联编译成功,则生成可执行的测试程序。
5.根据权利要求4所述的自动化单元测试的实现方法,其特征在于,在进
行关联编译之后,还包括:如果关联编译失败,则将关联编译错误信息提示给
用户。
6.根据权利要求4所述的自动化单元测试的实现方法,其特征在于,还包
括:生成用于运行所述测试程序的测试脚本。
7.根据权利要求1-6中任一项所述的自动化单元测试的实现方法,其特征
在于,在获取用户在本次单元测试下输入的对被测对象、负载对象以及测试用
例的配置信息之后,还包括:将获取结果存储至非关系型数据库;
在运行所述测试程序,根据运行结果生成测试报告之后,还包括:接收对
所述被测对象的回归测试请求,根据所述回归测试请求加载并显示所述非关系
型数据库中存储的所述获取结果。
8.一种自动化单元测试的实现装置,其特征在于,包括:
配置信...

【专利技术属性】
技术研发人员:王灵军邵世卓罗晓
申请(专利权)人:珠海格力电器股份有限公司
类型:发明
国别省市:广东;44

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

1