一 TDD是什么?
TDD(Test-Driven Development)是敏捷开发中的一项核心实践和技术,也是一种设计方法论,其基本思想是:在明确要开发某个功能后,在开发功能代码之前,先编写测试代码,然后编写功能代码并用测试代码进行验证,如此循环直到完成全部功能的开发。
二 TDD实战方法举例
为了弄清楚TDD的思想和原理,现假设一个需求场景,并运用TDD的方法实现该需求。
需求描述:
实现一个检查给定数字是否为质数的函数(is_prime)
利用TDD的思想实现该需求的步骤如下:
1. 分析需求:
A. 接收一个参数,且为数值类型;
B. 判断该数值是否为质数,返回bool值;
2. 设计测试用例(TDD的核心:开发功能代码前先实现测试代码):
3. 开发测试代码:
4. 开发功能代码(使用测试代码验证功能代码,驱动功能完善):
因测试用例#3发现缺陷,需要修复该缺陷,修复后的实现版本标记为V2,如下:
因测试用例#5发现缺陷,需要修复该缺陷,修复后的实现版本标记为V3,如下:
本次测试用例全部通过,功能实现在有限用例的验证下已符合需求。
三 总结
本文通过一个实例对TDD(测试驱动开发)的思想进行了讲解,TDD的基本思想是开发功能代码前,先开发测试代码,并用测试代码验证功能实现是否满足需求或存在缺陷,在测试代码的驱动下优化功能代码的开发;TDD的实施手段是单元测试,通过上述实例,也能清楚认识到,在每次版本改动后,使用测试用例验证了版本修复情况,同时也验证了本次改动是否引起回归问题。由此,TDD中测试代码的作用:在被测代码发生改动后,执行单元测试用例即可验证本次改动是否对函数原有功能造成影响,是未来函数重构的信心保证。
四 其他资源
关于TDD:请参看http://i.youku.com/weiworld521 第22节;