测试工具之 常见单元测试工具介绍
凌雪 2018-08-07 来源 :网络 阅读 584 评论 0

摘要:本文将带你了解测试工具之 常见单元测试工具介绍,希望对大家学测试工具有所帮助

本文将带你了解测试工具之 常见单元测试工具介绍,希望对大家学测试工具有所帮助


1.       C/C++语言开发的首选利器-
 C++Test
   
     
   
               以前在windows平台下的开发,使用的框架主要是MFC,以及console工程(基于win32SDK),属于纯C/C++开发的范畴。
   
               因此,使用的单元测试工具,主要有C++Test和CppUnit两种,其中又以前者为主。因为具有直接导入VC工程,以及自动生成测试集合、用例的优点,还是相当好用的。不过这个软件也有缺点,就是修改测试用例时,基本上不能引入被测代码中的符号。举个例子,除了测试用例中已经生成的全局变量赋值语句,用户如果想设定其他全局变量,或者定义一些指针类型-为了访问某些全局数组空间,最终会发现,该测试用例无法运行。
   
               显然,这一缺点,可以通过CppUnit中的手工编写测试用例来解决。当然,缺点就是没法自动生成测试用例了;你得一个一个的自己编写。
   
             除过上面讲到的缺点,C++Test是一个非常优秀的软件,对于纯C语言开发者,是非常便利和强大的。特别是对于嵌入式开发者,使用该软件进行单元测试,能够极大地提高软件质量,避免target调试费时费力的缺点。
   
               当然,前提条件是,将嵌入式系统的代码,成功移植到Visual
     C++环境(使用VC编译器替代原来的gcc或者arm定制编译器)。需要注意的是,只要求编译通过,不要求连接通过-链接需要的函数可以由C++Test自动生成。
   
               在移植过程中,会遇到以下一些问题,这里给出笔者的简单解决方法。
   
    1)   汇编语言部分 – 如果能看懂,可以尝试转换为C代码,否则屏蔽。
   
    2)   特殊的函数标记或编译器伪指令(pragma系统),直接屏蔽。
   
      3)   不要忘记把原编译器中的预定义宏迁移到VC工程中。最常见的是,一些标识CPU选项和debug等级的预定义宏。
   
    笔者就曾经将一个code warrior开发环境下的arm工程,迁移到VC2005中,最终使用C++Test完成了单元测试。有图为证。
   
   
   
         笔者的这个工程,大约包含几百个源文件。如果使用手工生成测试用例的方法,需要大量的测试人员和人力才能完成;并且还难于管理测试用例。使用C++Test之后,减轻了不少工作量。
   
    其实,该软件还有一个优点-提供测试覆盖率统计和图示。相信这一点,也是单元测试的最终目标-百分之百覆盖,所非常有利的工具了。
   
     
   
     
   
    2.       .Net环境单元测试的首选利器-
     Nunit
   
     
   
      目前windows平台下的最流行开发环境,非属.Net开发环境莫属。基于该环境,微软提供了ManagedC++/VB/C#等开发语言,吸引了不少粉丝。当然,微软的东西,都是集成在Visual
     Studio中的,连带着也产生了单元测试工具-不过只在team版本中才有。
   
      不过经过比较,笔者还是推荐Nunit。首先这个软件是免费的,其次很强大,应用起来也很方便。只要仿照自带的例子,编写相应的测试类就行了-当然,必须引入“NUnit.Framework”包。
   
    下图是个简单的例子,取材于该软件的samples.
   
   
   
     
   
    完成工程的解释和链接后,可以通过Nunit,定位到该工程生成的“dll”文件进行测试。
   
     
   
     
   
    3.       Java环境单元测试的终极利器-
     Junit
   
     
   
      从事Android开发之后,因为eclipse的缘故,选择了Junit作为测试工具。其实,parasoft公司的J++Test也是不错的选择;不过Android开发包内置支持Junit,显然更加值得推荐。
   
      下面引用一个android开发包中的例子,进行简单的说明。这个例子,读者可以在“android\android-sdk-windows\samples\android-8\ApiDemos\tests”中找到。这个例子代表的工程,就是一个用于android平台应用程序(JAVA代码)单元测试的Junit测试工程。
   
     
   
     
   
      与上一节中提到的测试源文件编写类似,需要引入“android.test.ActivityInstrumentationTestCase2”包,才能引入测试驱动并且成功连接到测试驱动入口。当然,可供使用的测试用例原型有很多,不止这一个类型;比较常用的还有“android.test.AndroidTestCase”。
   
               实际测试时,可以选定任意的android终端进行。在这个实例中,笔者选定的是android模拟器。测试完成后,eclipse的Junit面板,会显示测试用例的执行结果;可惜的是,仍然没有覆盖率统计。
   
             
   
     
   
    4.       其他常用语言的单元测试工具
   
    除了上文提到的几种开发语言和平台,在日常编程活动中,可能会遇到的还有perl,tcl,python等OO语言。
   
    一般来说,这些语言有着庞大的第三方package支持。因此,一般来说,类似于android平台内置支持Junit框架,这些语言也有相应的支持。举个例子,perl支持包列表,自从perl语言创世以来,perl
     testing这个模块就支持全面的测试。感兴趣的读者,可以阅读一下这方面的书籍。    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试工具频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程