B/S开发框架测试驱动开发(TDD)指导书(十)

本指导书详细介绍了敏捷实践——TDD的各个方面。TDD是提升单元测试有效性的工程方法,Web开发框架中遵循测试先行、小步快跑和及时重构的原则,能有效减少过度设计,促进降低开发成本、以及提高软件质量和设计效率。另外,本指导书还对遗留系统的TDD,以及TDD工具的选择给予参考性建议,B/S开发框架并通过大量的实践案例引导你充分体验TDD的魅力。

TDD常见问题

1.1  B/S开发框架测试代码是否需要检视

B/S开发框架测试代码的代码量比较大,如果写完整的话,很可能是被测代码的2~3倍。但测试代码的逻辑很简单,出现逻辑错误的可能性比较小。当测试用例不通过的时候,可能是修改被测代码,也可能是修改测试代码。测试代码和被测代码错在同一个地方的可能性很小,很容易发现测试代码的问题。

虽然测试代码本身出错的可能性比较小,但测试代码不完整的可能性很大。对于这个问题,一方面,在测试用例中,需要通过注释明确测试场景;另一方面,可以几个人一起讨论测试场景,防止遗漏。检视测试代码的时候,主要检视测试场景是否完整,不必关心具体代码是否正确。

1.2  进度紧的时候怎么做TDD

一般而言,当进度比较紧的时候,大家都会放弃TDD。这实际上是质量和进度的权衡问题。感到的压力越大,所做的测试就越少;做的测试越少,将犯的错误就越多,犯的错误越多,感觉到的压力就越大。但这样做很不可取,得到了眼前利益,牺牲了长远利益。因为这些没有做过测试的代码,问题终有一天会爆发出来,救火的成本,将比测试更高。借用《无间道》里面的一句话,出来混的,终究是要还的。

1.3 TDD的步子应该多大

B/S开发框架TDD周期

B/S开发框架项目一般TDD的例子,步子都比较小。实际开发中,我们会觉得这样操作很傻。我们可以把步子迈得稍微大一些,但不应该过于相信自己的能力,以至于自负。步子到底多大合适?根据你自己的能力决定,你觉得先写多少用例,再写代码,可以让这些用例通过,而且没有风险,完全在自己的掌握之中,那么这个步子就是合适的。

1.4 TDD看上去就是自动化UT

B/S开发框架TDD中的T覆盖了UT、IT、MST等,目前的实践主要是针对单元测试,并且要求能够自动化执行。主观上TDD是种思想,更是一种理念,它的本质更接近于促使把质量内建在思维中(Quality Is a Function of Thought and Reflection, Not Bug Prevention),以此促进代码质量和开发效率的提升。TDD更注重测试驱动设计,它除了包含UT,还包括设计、编码和重构。

1.5 TDD时该容忍多大程度的预先设计

知道自己应该构建什么就行,预先设计的度并没有一个准确的值。首先对于一个系统而言,我们应该从领域与架构的角度分析技术关键点,并对这些关键点进行预先设计,是非常有必要的。此外,对于系统的内部构造,我们也需要预先设计,除非这些内容是已经存在的。

TDD并不是完全排除设计的作用,利用测试来驱动开发,其实同时也代表我们可以利用测试来驱动设计。因此,如果将系统各个组成部分看作是包或者组件,那么理想的TDD起点应该是在包或组件被划分好之后,我们就可以利用单元测试来驱动我们对领域模型的思考与编码实现了。

1.6  是否需要新写用例

如果新的story要求对某个已有的测试做出轻微调整,是调整它还是写一个新测试,把旧的扔掉,原则:“不许更改现有的测试逻辑!”,或者“只有出现小的编译问题时才准动它,否则就别碰!”

如果新的B/S开发框架Story对老用例影响比较大,说明新的Story和老的Story对应的设计耦合性比较大,需要重新考虑这两个Story划分问题。

1.7 TDD是否适用紧急的项目

在时间紧张的时候,TDD的代码会比较多,影响进度,是否可以只对关键部分进行测试?

这个问题的实质是项目紧张的时候是否能够缩减测试,其实就没见过时间不紧,任务不重的实际项目,TDD就是为了省时省力。如果能很好地完成TDD,可以大量缩减后续测试和维护投入,整体而言是可以降低时间成本的。

如果B/S开发框架项目对质量要求不高,比如只是为了测试或验证方案,可以暂时不使用TDD进行开发。

如果B/S开发框架项目对质量要求较高,建议使用TDD进行开发。

标签: B/S开发框架测试驱动开发

网站&系统开发技术学习交流群:463167176

本站文章除注明转载外,均为本站原创或翻译,欢迎任何形式的转载,但请务必注明出处,尊重他人劳动,共创和谐网络环境。
转载请注明:文章转载自:软件开发框架 » B/S开发框架测试驱动开发(TDD)指导书(十)
本文标题:B/S开发框架测试驱动开发(TDD)指导书(十)
本文地址:http://www.hocode.com/OrgTec/Agile/0016.html

相关文章: 什么是软件开发平台web开发框架

电话
电话 18718672256

扫一扫
二维码