单元测试(Unit Testing),是指对软件或项目中最小可测试单元进行正确性检验的测试工作。单元是人为规定最小可测试的功能模块,可以是一个模块,一个函数或者一个类。单元测试需要与模块开发进行隔离情况下进行测试。
测试通常是开发人员比较厌烦的一个活动,不清楚它的意义所在,也会有人觉得它会浪费时间。有很多开发人员不知道如何编写单元测试,也会由于项目中没有要求的原因,所以对此就不Care,也会常常认为开发人员的主要工作是开发,测试是测试人员的事情。这是一种普遍现象。
因为以上的种种原因,开发人员往往忽略了单元测试的重要性。测试不能保证一个程序100%的正确,但是会提高我们对程序完成的信心,可以让我们相信程序可以按我们的预期来执行操作和返回结果,可以让我们提前发现程序中的不足和BUG。
一个漏洞的隐藏时间越长,那么发现并找出这个问题的代价就会越大,通过《快速软件开发》中大量的研究数据可以看出,最后才去完善一个漏洞代价比在漏洞产生时就解决代价的10倍。
对于开发人员,只有当自己模块,功能在没有问题的情况下,才可以安全的提交到SVN,CVS,GIT等版本控制器中。
正是因为测试在程序开发中的重要地位,才会在IT和互联网中掀起了测试驱动开发模式(TDD)的热潮。它主要强调先编写测试代码,再进行功能开发。这里需要思考如何对功能进行测试,如何完成测试代码编写,怎样可以满足测试用例,然后循序渐进的来完成所有功能的开发。这样提高了程序的可靠性和安全性。
俗话说,一屋不扫,何以扫天下。在开发的过程中,保证代码的可靠性才是所有开发人员需要关注的事情,只有保证了可靠,才可以考虑其他的问题,比如效率,架构等等。