3.只允许编写刚好能够导致一个失败的单元测试通过的产品代码。项目管理者联盟
对于任何功能,一定要从编写它的单元测试开始;但是到了原则2,你就不能再为那个单元测试写更多内容。只要一出现该单元测试代码编译失败,或是断言失败,你就必须停下来开始编写产品代码;但是到了原则3,你就只能编写产品代码,直到让测试编译成功或通过断言为准。项目管理者联盟
这三条军规我觉得太经典了,完全做到了才算TDD做到位了。项目管理者联盟
前几个迭代周期我们没有采用TDD,功能代码写了然后写测试,两个月后对系统进行了一次比较大的重构时,所有的测试都通过了,但是发布上去了还是由bug,所以这种干法是不行的,测试不能达到令人满意的覆盖度。TDD完全可以使测试达到令人满意的覆盖度。基本上只要测试通过了,就能确定重构没有对系统造成影响。项目管理者联盟
四、验收测试(acceptance test)/客户测试(customer test)项目管理者联盟
验收测试我们是放在最后做的,由BA代客户写验收测试,工程师使用selenium 进行验收测试的实现,我们发现selenium对frame支持的不是很好,有这儿我想到采用至顶向下如:使用Selenium和C astle进行测试驱动开发 进行TDD的话是最合理的,不知道大家是不是这么做的?talent.mypm.net
五、pair 编程项目管理者联盟
pair的好处我就不说了,试过了就知道了。项目管理者联盟 项目管理者联盟
|