用vs2008和NUnit进行程序自测

“在进行单元测试之前需要弄清楚被测试代码实现的功能和相应的逻辑关系;同时还要考虑到测试的输入内容。也就是说,测试用例的设计。用例的设计要保证面面俱到,是否覆盖了每一条路径。而如何做到面面俱到这就需要测试组的成员们对每个函数进行详细的分析,将分析和讨论的结果归入相关的测试库中”

“初期工作的进度慢并不要紧,只要能做得很详细对于以后的测试还是有很大的帮助。或许以后的测试中,只要直接调用原来写过的测试类库,修改部分简单的语句就可以实现新模块的单元测试了。”

“刚开始这部分工作的时候,对于测试人员来说可能是比较困难的。补吧,练吧,做多了,自然就会写了。”

 

相信一提起测试,大部分的软件开发人员还是比较发怵的,不熟悉外加小有情绪。上面的片断,可以让我们体会一下测试的过程。以下是笔者对测试的个人理解,贴出来共勉,激励大家,激励自已,使尊重测试成为一种习惯。

 

使用测试-SOS

软件开发人员的创造性和贡献精神,铸就了IT世界的繁华和鼎盛。然而,软件工程浩大繁杂,即使小项目,如何能使创新精神蓬勃腾飞,减少软件bug或失误,应该是软件人员孜孜以求的效果。测试的哲学基础是:创新+接受规则=有效沟通。

 

软件测试应该由测试人员的外驱行为,转变为软件开发人员的自驱努力。这就是结构优美(structure gracely)、目标集中(objective focus)、用户中意(satisfied)-简称SOS-的最终产品!

 

软件测试终究来说,分为两种,即对组件的测试和对组件复合的测试。前者是我们通常命名的白盒测试,后者是黑盒测试。白盒是基准,黑盒是方法论,也就是白盒测试是必需的。白盒测试目前在OOP下,主要表现为对类的测试,包括设计定位的准确维度、开发原则规则符合维度、暴露部分的结构化维度(如接口的通用性灵活性、服务适配符合等)等。

 

测试理论的基础,在于用编程的方式实现所需要的测试方法!从而对软件或服务进行测试。难度在于用最合适的方法模式->进行少量的代码->完成大量的测试。

 

使用工具并不是我们的目的,但恰当的工具必会使我们得到实际的、持续的帮助、与我们结为一体并使我们得心应手。测试软件是这样的工具吗?

答案是肯定的。(试试吧 为什么不呢?)

 

在工具选择上,到底是用NUnit还是用MS自带的,我们需要选择下。

 

使用MS自带测试,
vs2005中仅有vsts TestEdition具有单元测试的功能,其它版本没有;vs2008中专业版既已支持单元测试。笔者试用了下,感觉不错,使用时--只要在成员的代码上右键“创建单元测试”即可(尤其是从测试文件中 “转到自定义处”去查看原始成员 的小功能,用起来很方便)。

MS自已的产品集成度会好一些,满足开发人员的测试是没有问题的。

 

 

使用NUnit测试工具,其实很简单,关键就是vs允许使用外部测试工具,添加起来很简单,解决方案资源管理器->右键->属性->调试->使用外部程序设置、在添加引用中“浏览”,选择NUnit.exe即可;在程序中,需要添加using NUnit.Framework。这样,按F5运行项目后,NUnit会自动启动,就可以进行测试。


用vs2008和NUnit进行程序自测_第1张图片

用vs2008和NUnit进行程序自测_第2张图片
  

NUnit在测试中的实际使用方面,有两个重要的attribute,分别是[TestFixture]和[Test],再有一个重要的类Assert(英文“断言、生效”),这个类型大概有20个方法,让你用来验证主要程序的结果是否与你期待的结果一样。(这些方法的使用会给我们调试程序带来较大的方便,其使用可参考链接,可以获得更多的了解:

http://blog.sina.com.cn/s/blog_484dc3d20100d7l0.html

http://www.360doc.com/content/06/1108/12/10846_253089.shtml

 

试试吧,很方便哦,可以让我们更好地写好代码~呵,不用写一堆MessageBox.Show来搞掂了。相信对于Agile开发,这应该是不可或缺的选项(之一)。

你可能感兴趣的:(设计模式,编程,单元测试,软件测试,oop)