第一次尝试TDD

今天用搭建好的CppUnit做了人生第一次TDD,新手上路,难免显得笨手笨脚,但是仍然感受到了TDD带来的震撼。

首先,每个case都很小,使得发现问题、解决问题的速度很快,极大地缩短了开发周期。其次,这种测试方式使得每个模块不得不写得高内聚低耦合,而这恰恰是高质量软件的特征之一。

当然,工具虽好,也要会用才能发挥其威力。由于是初次使用,还无法做到从最简单的测试开始,上来就写个复杂的,当时还自以为够简单,等测试出了问题才发现有更简单的case没有写。这就好比等到产品出了问题才发现,原来其中一个部件没有测试过,实在不能算是正确的开发方式。陋习难改,还需多加实践啊!

开始TDD

仰慕TDD以久,一直找不到机会尝试。这次趁着release期间有空,开发了个patch,在应用了这个patch后,我们的编译器代码就可以利用CppUnit做白盒测试了。由于某些不可抗力的存在,这个patch不能check-in,不过因为受影响的几个文件基本不会更改,所以这种打patch的方式还能凑合着用,不至于有过重的维护负担。

有了CppUnit,就可以做Test-Driven Development。实践是检验真理的唯一标准,也是学习知识的最好方式。书读了两本,文档看了一对,可究竟怎么做TDD还是懵懂懵懂,没有一点感性认识。幸运的是,这样的日子即将成为过去,从明天开始,咱也TDD了:-)。