一直觉得Unit Test没什么必要,自己写过的代码本身就做调试的,但是今天看了一篇文章改变了我的想法,所以记录下来:
1.调试只会关注程序的某个方面,通常是最优路径,UT至少要关注正/负2个方面,还要保证一定的覆盖率
2.调试,尤其是J2EE应用的调试很耗时,每次修改要重启服务器,没有UT效率高
3.调试不可重现,在代码变更后,软件质量无法保证
UT一定要做到自动化
只有用代码编写的UT,才能重现,才能节约未来手工测试时间
只有用代码编写的UT,才能做到自动化,才能在软件开发的任何时候都能快速简单的大批量执行,保证能准确的定位错误
保证不会因修改而引入新的错误
自动化的UT,才能保证回归测试的有效执行
UT节约的是未来的时间
节约了未来修改/维护低质量代码的时间
如果使用Test-driven思想 :自身就变成设计的一部分,你不会再感到是浪费时间,编写UT的过程就是你设计的过程
UT快速定位错误所在,节约调试时间