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