故事背景:由于每个项目组都要抽一个人去学习和为以后各项目推广单元测试,所以我无情地“中招”了。跟着我们“测试第一人”的薄姐开始了单元测试之旅。
不得不说,我对单元测试的认识近乎为零。什么叫单元?它都测什么、怎么测,怎么算合格?具体的测试方法和技巧就先不谈了吧,免得伤感情~
“单元测试很重要, 师哥师姐们所在的公司有的也在用,所以大家要好好学”,“单元测试特别好,那天我加班到一点多,越想越高兴”,“你们真是捡到宝了!”薄姐如是说。
下面简单说一下什么是单元测试吧。
理论上讲,单元测试其实就是对最小可测试单元,如一个函数、方法等进行测试,他并不涉及到业务逻辑。所以开始这么一听,还是比较简单的。但是,其中可还包含着很多具体的复杂测试方法和测试技巧,而且不是所有的模块都需要进行单元测试,有了一定的经验以后,我们只需浏览一遍就能判断是否某个函数需要单元测试。
一个比较容易被误解的问题是谁来干单元测试这个活儿:测试组?No!开发人员是单元测试的执行者。每个开发人员对自己负责的代码和逻辑更清楚,更能知道自己想要什么,所以在每个单元完成之后,理论上都需要进行单元测试。
经常与单元测试联系起来的另外一些开发活动包括代码走读(Code review),静态分析(Static analysis)和动态分析(Dynamic analysis)。代码走读(不同于代码走查:见最下方地址1)就是开发人员之间随机的相互阅读代码,检查其编写正确与否的代码检查方式。静态分析就是对软件的源代码进行研读,查找错误或收集一些度量数据,并不需要对代码进行编译和执行。动态分析就是通过观察软件运行时的动作,来提供执行跟踪,时间分析,以及测试覆盖度方面的信息。
进行单元测试目前比较流行的工具主要是xUnit系列,比如Java的JUnit,.NET的NUnit等。具体的使用方法在下篇会介绍。
再说说为什么要进行单元测试。
首先,单元测试保证了我们代码的质量:每个小单元都进行了测试,保证了正确性和可执行性;其次,提高了开发人员的开发效率:通过编写用例和测试,能大大减少我们调试的时间,用熟了之后能达到事半功倍的效果(调试时候的痛苦想必不用我多说……);另外,它还保证了系统的灵活性和健壮性,通过单元测试,能够找到系统设计不合理的设计,做好应对变化的重构,提高灵活性;还能保证系统稳定,使其提升应对各种复杂环境的能力,增强健壮性;其他好处就不继续啰嗦了。
单元测试基本了解就先到这里吧,具体知识大家在网上自己可以继续深入学习。总之,单元测试是开发人员的一款编码"神器",它通过测试来提升你的编码能力,同时保证了系统的开发质量。在以后的工作中,即使仅从代码考虑,你的代码处处比别人优秀,何愁不快速升职?
(代码走查)地址1:http://baike.baidu.com/link?url=Z94J341olYbqvGeteqKgBk3bOhbH0kd4ho0R1-F5LkHkdLPYZgtbIUW4yV3oN-5VbUEX0QsAfnxxuLPViiuLT_