TDD与Design by Contract
摘要:
需求规范的表达形式有很多种,比如:自然语言描述的文档,UML的用例图。好的需求规范形式应该具备:精确性(易于验证),抽象性(简洁,具有概况能力,易于理解),完备性(覆盖需求的各个方面)。文档和UML用例图等传统的需求规范表达形式的不足,最明显的就是:1.精确性不足;2.在开发进程中容易与实现脱钩,难于维护。TDD的测试用例是作为一种新的需求规范表达形式而提出的,它一定程度上克服了精确性和可维护性的问题,但同时也丧失了抽象性。除此之外,Design by Contract的契约也是一种需求规范的表达形式,本文特别指出了契约同时具备抽象性和准确性的优势。不过,Bertrand没有特别强调的是:契约在表达能力即完备性方面还有所不足。因为,契约是通过无副作用的一些条件语句来表达的,并不是所有的需求规范都容易用这样的形式表达,而这恰好是TDD的优势。 阅读全文