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

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

TDD核心原则

1.1  从用户的角度出发

开始实现一个测试用例时(包括编写测试代码),不要考虑具体功能的实现,要从用户的角度出发,逐步覆盖全部使用场景。只有实现功能代码时才考虑具体实现。

1.2  测试先行

B/S开发框架为什么要先写测试代码再写被测代码呢?

l  第一个原因是程序员的过于乐观。如果先写代码,再写测试用例,绝大多数的程序员在基本功能调试通过以后,就认为程序已经足够好,不需要再写测试用例。

l  第二个原因是聚焦目标,通过目标的反馈,证明目标的达成。我们每做一项工作,都需要知道目标是什么,这样才会有动力。如果不先写测试用例,就不知道编码什么时候完成。相反,如果有测试用例,编码的目标就是使这些测试用例通过,什么时候编码完成,非常明确。

l  第三是理解需求。如果已经有代码,我们会受代码的影响,按照代码实现来测试我们的程序,如果代码是错的,测试会跟着错。如果先写测试用例,因为代码还没有实现,只能按需求来写,这样会促使我们把需求想清楚,并通过测试用例表达出来。

l  第四是促进设计。当我们不考虑测试的时候,往往会函数接口不清晰,核心和外围代码混杂在一起,代码不具备可测试性。如果先设计用例,就会促使我们把接口设计清晰,否则没法写测试用例。

测试先行的前提是从用户的角度出发。

1.3  B/S开发框架测试自动化

B/S开发框架TDD编写的测试代码,做到自动化,并集成到持续集成环境中,以便在增加新功能后,能够快速验证原有功能。手工测试很难反复地执行和构建,所以,若不能做到自动化,TDD效果就会大打折扣。

1.4  小步快跑

首先要划分粒度,粒度太大会导致TDD周期长,不能快速反馈。但并不是越小越好,因为粒度太小,深入到具体实现的代码块,就违背了TDD从用户角度出发的原则。小粒度应该是从用户角度来说是越小越好。

然后是,每次只选择一个用例来实施TDD,这样才能保证快速反馈。

为什么我们不一次写很多用例,再写代码呢?如果我们一次写很多用例的话,一方面,让这些用例通过将很困难,另一方面,测试用例对代码的接口要求,可能是不合理的,将会导致返工。一次写多少用例合适,取决于自己的能力。刚开始的时候,建议按指导书里面的例子,步子要小。等熟悉了,步子可以稍微大一些,但不要试图把步子迈得特别大,因为你的能力终究是有限的。保守的登山家有一条规矩,登山的时候,不管任何时候,四肢中必须有三个附在物体上。如果你松开两只以上的手或脚移动,将变得非常危险。

时刻牢记按照TDD的顺序去开发,按照每次一个用例的小步伐去开发,并形成良好的习惯。

1.5  B/S开发框架及时重构

Web开发框架重构是在每次执行测试用例通过之后进行,而不是延迟到所有用例全部完成再来重构。同样,重构也是在这个小步伐中进行,我们提倡经常重构,只要闻到代码中有什么坏味道,就立刻想办法去消除它。重构要有及时性,否则,代码结构容易变得恶化,复杂的代码分支也会导致补充过多的测试用例,时间太久也会淡忘代码。

B/S开发框架TDD核心流程

1.6  B/S开发框架测试用例的可维护性

要有一个用例清单(TODO List的形式),每次新增一个用例,立刻采用TDD方法编写测试代码和功能代码,保持三者的一致性。

编写清晰简洁的测试用例,详细的测试用例不一定是好的测试用例。研发人员习惯于把测试用例写得非常细致,企图把所有内容写全,用例之间重复描述的篇幅很大,如果条件发生改变,几乎所有用例都要更新一遍。用例只要列出测试点,只要读者能明白用例是测什么的、能够与其他用例区分开来,就算清晰简洁的用例。

web开发框架测试用例要分级、分类,便于管理。

测试代码与功能代码在配置库上具有相同的目录结构。

测试代码尽量采用可读性好的变量名、函数名,必要时才写注释。

要经常重构测试代码,减少测试代码中的冗余。

1.7  Web开发框架TDD三军规

RobertC.Martin总结的TDD三条军规:

1、  除非这能让失败的单元测试通过,否则不允许去编写任何的产品代码;

2、  只允许编写刚好能够导致失败的单元测试(编译失败也属于一种失败);

3、  只允许编写刚好能够导致一个失败的单元测试通过的产品代码。

对于任何功能,一定要从编写它的单元测试开始。但是到了原则2,你就不能再为那个单元测试编写更多内容,只要一出现该单元测试代码编译失败,或是断言失败,你就必须停下来开始编写产品代码。同样到了原则3,B/S开发框架中你就只能编写刚刚好的产品代码,让测试编译成功或通过断言为止,不能再编写更多的产品代码了。

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


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

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

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

相关文章: 初识Web框架--IOC机制是什么东东

电话
电话 18718672256

扫一扫
二维码