话说单元测试,是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。
就测试方面来讲,单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。
就我们现在学习的语言C++,像这种面向对象的语言中,要进行测试的基本单元就是类。
单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。例如,你可能在文本框中输入合法的数据,然后确认数据处理的结果是否是预期的。
可以说,单元测试是由程序员自己来完成的,当然,收益的也是我们自己。如果不进行单元测试,只是一味的敲着代码,等到整个系统敲完了,一运行,这一个bug,那一个bug的,我们就需要从新开始调试,熟悉代码。小型系统还要一些,这要是系统稍微大一些,如果再加上以前的代码注释不是特别规范,那么,这个调试的过程可就非常“折磨”人了。
其实我们每天都在做单元测试。你写了一个函数,除了极简单的外,总是要执行一下,看看功能是否正常,有时还要想办法输出些数据,如弹出信息窗口什么的,这,也是单元测试,把这种单元测试称为临时单元测试。
对于程序员来说,如果养成了对自己写的代码进行单元测试的习惯,不但可以写出高质量的代码,而且还能提高编程水平。
总结来说,单元测试有如下几个优点():
1、它是一种验证行为。
程序中的每一项功能都是测试来验证它的正确性。它为以后的开发提供。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样,我们就可以更自由的对程序进行改进。
2、它是一种设计行为。
编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。
3、它是一种编写文档的行为。
单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。
4、它具有回归性。
自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。
这是关于单元测试的理论知识,关于如何进行正确合理的测试,还需我们进行进一步了解,并且学习使用相关的工具,例如NUnit等,在此不再解说。
原文:http://blog.csdn.net/sunliduan/article/details/22511507