什么类型的错误测试驱动开发最有效的捕获?

Dri*_*zzy 1 tdd agile

如何重复一个非常短的开发周期有助于消除软件中的错误?如果正确实施,TDD最有效的捕获方法是什么?为什么?

提前致谢!

LBu*_*kin 5

TDD迫使您从"消费"您要编写的代码的角度思考.这种观点有助于将您(开发人员)置于需要考虑如何构建API的位置以及如何验证实现的要求.

TDD有助于识别以下领域的缺陷:

  • 要求.是否清楚代码需要做什么.是否可以验证代码的不变量或最终效果.成功标准是否在要求中定义,或者是否模糊或缺失.
  • 便于使用.您是否可以有效地使用您计划编写的代码来实现最终用户所需的各种事物,或者将来与其集成的其他代码.
  • 可测性.代码是否可根据设计中的可访问数据或对象进行验证.是否有可能确认事情将按预期运作.
  • 边缘案例.通过预先确定他们的存在来识别和回应边缘案例通常更容易.当边缘情况出现在游戏的后期时,人们倾向于试图"强迫"现有的设计来容纳它们,而不是重新思考设计.
  • 异常处理.当您开始编写测试用例时,您将开始意识到您可能希望能够响应错误或异常情况的区域.这有助于规划您的异常处理策略,抛出的异常类型,要包含的信息等.

TDD还有助于提高测试的覆盖水平,因为它将测试带到前台,而不是将其作为"事后"活动.当测试最后发生时,由于时间和预算的限制,或者由于开发人员的热情和动力自然下降,最容易被忽略或缩短.