日历

September 2020
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
282930  

DbC和TDD

Tagged: ,

  • This topic is empty.
Viewing 4 reply threads
  • Author
    Posts
    • #1079
      Todd
      Member

      昨天看了一个老外的视频讲座,他谈到:DbC适合用于表达无副作用的条件约束(constraint);TDD适合用于表达类的外部行为(behavior)。二者是互补关系,可以结合使用。

      http://www.infoq.com/presentations/TDD-in-a-DbC-World-Greg-Young

    • #1263
      hui
      Keymaster

      二者既有互补之处,也有重叠之处。另外,好的DbC框架可以自动生成一些测试用例。

    • #1264
      Todd
      Member

      对,的确有重叠之处。

    • #1265
      Todd
      Member

      需求的表达方式有很多种: 自然语言文档,UML用例图,TDD的测试用例,DBC的契约。好的需求规范应该追求精确性和抽象(通用)性。自然语言和UML用例图具备抽象性,但精确性不足;TDD的测试用例具备精确性但没有抽象性;DBC同时具备这两个特征但是表达能力不足,不是所有规范都能用无副作用的语句来表示。

    • #1266
      hui
      Keymaster

      虽然assertion中不能含有副作用的语句,但DbC中的precondition和postcondition之间是允许副作用的。当然不可否认,DbC的表达力的确是有局限的。

Viewing 4 reply threads
  • You must be logged in to reply to this topic.
 请您评分1星(很差)2星(不行)3星(一般)4星(不错)5星(很棒)