敏捷技能修炼之小舵板之三:代码未动,测试先行

上一篇:敏捷技能修炼之小舵板之二:分离构造和使用:http://zh.5long.me/2014/Agile-Development-separate-build-use/

前言

随着敏捷方法的出现,测试驱动开发(Test-Driven Development, TDD)已经获得了发展的动力,许多团队已经体验了生产率的提升和测试驱动开发的价值。关于可测试性的问题,可能是所有这些小舵板中最重要的。

可测试性和代码质量

测试时开发中的重要环节,往往会耗去大量时间,但有时花去大量的时间却不一定能完成测试。因为代码的质量与我们试图去证明的代码质量之间有很高的相关性,特别是在松耦合、高内聚和冗余方面。在测试低质量的代码时,往往无从下手,我们经常总结道:"哎呀,我希望他们在写这段代码的时候能够好好考虑将来如何测试它"。这就引出了一个话题:

我应该在编写代码之前仔细考虑这段代码将如何测试。

理由很简单:可测试性与松耦合、高内聚、无冗余和恰当的封装都有关系。努力使代码变得易于测试,也就意味着更松的耦合度、更高的内聚度、更少的冗余和更好的封装性。

关于测试先行的思考

本书中所说的测试先行根本不是一种测试方法,它本质上是一种通过分析测试的设计先行方法。这个方法是先编写测试用例,在编写代码,最后执行测试用例的过程。这里的测试驱动是先编写验收测试在编写单元测试(验收测试驱动开发,Acceptance Test-Driven Development, ATDD),相比于传统的提前编写单元测试的方法(TDD,本书称为UTDD)更有效果。测试先行让我们得到了如下好处:

  • 更好的设计。
  • 更清晰的范围和避免额外的工作。
  • 降低复杂性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值