一种实现单元测试的方法及装置

一种实现单元测试的方法及装置

摘要

本发明公开了一种实现单元测试的方法及装置,包括 :遍历进行单元测试的目录及子目录下
的测试用例文件,根据测试用例文件的文件名,生成测试用例文件的测试套 ;建立各测试用例文件的测试套和测试用例一一对应的映射信息 ;根据建立的测试套和测试用例的映射信息,生成测试文件 ;根据生成的测试套和测试文件,对单元测试的应用程序进行单元测试,输出测试结果。本发明通过根据测试用例文件的文件名生成测试用例文件的测试套,及测试用例文件和测试套的映射,简化了添加测试套以及测试用例到单元测试的框架的过程,节省了单元测试中人为参与的时间,提高了单元测试的工作效率。
这里写图片描述

技术领域

[0001] 本发明涉及软件测试技术,尤指一种实现单元测试的方法及装置。

背景技术

[0002] 单元测试,是指对软件中的最小可测试单元进行检查和验证。一个单元测试是用于判断某个特定条件下 ( 或场景下 ) 某个函数 ( 或某个流程 ) 的行为。例如把一个很大的值放入一个有序列表 (list) 中去,然后确认该值出现在 list 的尾部,以实现单元测试 ;或者,从字符串中删除匹配某种模式的字符,然后确认字符串确实不再包含这些字符实现单元测试。充分的单元测试,可以在早期发现软件 BUG 并进行修复,大大提高软件质量,降低后期维护成本。

[0003] 单元测试是由编写程序的程序员完成的。程序员编写功能代码后,通过编写单元测试,用于对程序的每个函数、流程等进行测试,使其实现代码实际应用时所应有的功能。如果不进行代码测试,则代码中的细小错误很难被发现,当 BUG 暴露时将难于调试,大幅度提高后期测试和维护成本,且影响软件质量。

[0004] 白盒测试用例 (CUnit) 是一种 C 语言单元测试框架。白盒测试用例以静态库的形式提供给用户使用,用户编写程序的时候直接链接此静态库就可以进行单元测试。CUnit提供了一个简单的单元测试框架。CUnit 的测试是单线程启动,只能注册一个测试 Test Registry_,一次测试可以运行多个测试套 (Test Suite),而每个测试套可以包括多个测试用例 (Test Case),每个测试用例又包含一个或者多个断言类的语句。注册一个测试用例后,需要将测试用例增加到 CUnit 的单元测试框架中,并在单元内挂载测试函数后,调用编写使用的界面进行测试。

[0005] 在 CUnit 的单元测试框架中,随着单元测试的测试用例的增加,在编写完测试用例后,需要操作人员根据测试用例编写测试套,而测试套的格式是一个固定的格式,只是名字和内容不同,当存在较多的测试用例时,该过程是一个很繁琐的过程。尤其是测试用例有改动时,需要手动查找该用例的位置,修改过程费时。

[0006] 综上,目前在进行单元测试时,添加测试套以及测试用例到单元测试的框架中成为一个重复、繁琐的事情。影响了单元测试的工作效率。

发明内容

[0007] 为了解决上述技术问题,本发明公开了一种实现单元测试的方法及装置,能够自动完成测试套和测试用例的添加,提高单元测试的工作效率。

[0008] 为了达到本发明的目的,本发明提供一种实现单元测试的方法,包括 :

[0009] 遍历进行单元测试的目录及子目录下的测试用例文件,根据测试用例文件的文件名,生成测试用例文件的测试套 ;

[0010] 建立各测试用例文件的测试套和测试用例一一对应的映射信息 ;

[0011] 根据建立的测试套和测试用例的映射信息,生成测试文件 ;

[0012] 根据生成的测试套和测试文件,对单元测试的应用程序进行单元测试,输出测试结果。

[0013] 进一步地,遍历进行单元测试的目录及子目录下的测试用例文件为 :通过 Python脚本遍历进行单元测试的测试用例文件的目录及子目录下的测试用例文件。

[0014] 进一步地,生成映射信息包括 :

[0015] 通过二级列表的方式,建立所述各测试用例文件的测试套和测试用例一一对应的映射信息。

[0016] 进一步地,生成测试文件包括 :

[0017] 通过 Python 脚本,根据所述生成的测试套和测试用例的映射信息生成所述测试文件。

[0018] 进一步地,对单元测试的应用程序进行单元测试,输出测试结果包括 :

[0019] 通过 Python 脚本调用 makefile 文件,对所述测试文件和所述测试套及单元测试的应用程序进行编译,生成可执行文件 ;

[0020] 执行可执行文件以输出测试结果。

[0021] 进一步地,该方法之前还包括 :预先设置与所述单元测试的各模块和子模块对应的测试用例相应的名称,以生成所述测试用例文件的目录及子目录。

[0022] 另一方面,本申请还提供一种实现单元测试的装置,包括 :

[0023] 遍历单元,用于遍历进行单元测试的目录及子目录下的测试用例文件,根据测试

用例文件的文件名,生成测试用例文件的测试套 ;

[0024] 映射单元,用于建立各测试用例文件的测试套和测试用例一一对应的映射信息 ;

[0025] 测试文件单元,根据建立的测试套和测试用例的映射信息,生成测试文件 ;

[0026] 测试执行单元,用于根据生成的测试套和测试文件,对单元测试的应用程序进行单元测试,输出测试结果。

[0027] 进一步地,遍历单元具体用于,通过 Python 脚本遍历进行单元测试的测试用例文件的目录及子目录下的测试用例文件,根据测试用例文件的文件名,生成测试用例文件的测试套。

[0028] 进一步地,映射单元具体用于,对各测试用例文件的测试套和测试用例,通过二级列表的方式建立测试套和测试用例一一对应的映射信息。

[0029] 进一步地,测试文件单元具体用于,根据建立的测试套和测试用例的映射信息,生成测试文件具体包括 ;根据建立的测试套和测试用例的映射信息,通过 Python 脚本生成测试文件。

[0030] 进一步地,测试执行单元具体用于,通过 Python 脚本调用 makefile 文件,对所述测试文件和所述测试套及单元测试的应用程序进行编译,生成可执行文件 ;

[0031] 执行可执行文件以输出测试结果。

[0032] 进一步地,该装置还包括命名单元,用于预先设置单元测试的各模块和子模块对应的测试用例相应的名称,以生成测试用例文件的目录及子目录。

[0033] 与现有技术相比,本发明提供的技术方案包括 :遍历进行单元测试的目录及子目录下的测试用例文件,根据测试用例文件的文件名,生成测试用例文件的测试套 ;建立各测试用例文件的测试套和测试用例一一对应的映射信息 ;根据建立的测试套和测试用例的映射信息,生成测试文件 ;根据生成的测试套和测试文件,对单元测试的应用程序进行单元测试,输出测试结果。本发明通过根据测试用例文件的文件名生成测试用例文件的测试套,及测试用例文件和测试套的映射,简化了添加测试套以及测试用例到单元测试的框架的过程,节省了单元测试中人为参与的时间,提高了单元测试的工作效率。

附图说明

[0034] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 :

[0035] 图 1 为本发明实现单元测试的方法的流程图 ;

[0036] 图 2 为本发明实现单元测试的装置的结构框图。

这里写图片描述

申请号:201410328072.9
申请日:2014-07-10

申请(专利权)人 浪潮(北京)电子信息产业有限公司

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值