测试驱动开发的定义
最近在学习《重构》,里面强调,实施重构的一个前提是,必须建立一个可靠的测试环境。里面还提到了测试驱动开发,以及测试驱动开发的好处。正好最近在开发一个小的项目,所以便在这个项目中尝试了一下测试驱动开发,感觉不错,这里分享一下我的体会。
我开发使用的是C++,我使用的测试框架是Google的c++开源测试框架gtest。另外Google也有一个mock的开源框架gmock,可以和gtest一起使用。至于gtest的使用,可以参照我以前转载的一个系列文章:玩转Google开源C++单元测试框架Google Test系列(gtest)
首先谈一下测试框架gtest。总体感觉gtest使用起来还算比较方便的,而且他们能够自动运行所有的测试用例,这一点非常重要。在《玩转Google开源C++单元测试框架Google Test系列(gtest)
》这个系列的文章中,没有看到测试框架对private方法测试的描述。后来我看了一下官方网站的说明,它是支持的。另外,这个测试框架的一个不好的地方就是,它主要是通过检查函数返回值来判断测试成功或失败的,对于返回值为void的方法,要判断执行成功与失败,则非常的不方便,有的时候,根本无法判断。不过从总体上来看,这个测试框架还是比较不错的。
其次那,谈一下测试驱动开发带来的好处。
1、提高软件质量。毋容置疑,有单元测试保障的软件产品质量肯定要比没有经过单元测试的软件产品质量要好。
2、开发速度。测试驱动开发主张在编码之前首先编写测试代码,这种做法会降低编码的速度。但是在整个软件开发过程中,编码所占用的时间是很少的,我们大部分的时间在调试,定位bug,修改bug。测试驱动对开发速度的提升在于,它可以减少后者的时间,从而在整体上提升开发速度。
3、重构。构建一个可靠的测试环境,可以让我们大胆的进行重构,而不用担心会引入潜伏下来的bug。
4、增量开发。使用测试驱动开发,我们可以实现软件产品的增量开发,而不用担心增量开发会对原有的功能造成破坏。
5、促进优良的设计:低耦合,高内聚。测试驱动开发一个非常重要的好处就是它可以促进优良的设计。糟糕的设计,一般情况会非常难以进行测试。测试驱动有助于促进低耦合,高内聚的设计,因为这样的设计才会易于测试。
6、真正实现面向接口编程。
7、避免过度设计。当你构建好测试用例后,也就提供了一个完成设计的目标:让所有的测试用例测试通过。这样可以避免过度设计。
虽然测试驱动开发有这么多的好处,但是要在研发人员的推行这个开发方式,面临的挑战还是非常大的,毕竟它带来的是一种全新的开发思路和模式。不过我相信,只要开发人员乐于去尝试这种开发方式,他一定会喜欢上它的。
分享到:
相关推荐
测试驱动开发及开发实践.pdf 测试驱动开发及开发实践.pdf
测试驱动开发.pdf测试驱动开发.pdf
测试驱动开发 测试驱动开发 测试驱动开发 测试驱动开发
要使测试驱动开发在软件行业中得以繁荣兴盛,需要一些条件,《C#测试驱动开发》从讨论这些条件开始。软件开发发展到今天,有其历史和特定的条件,理解这些很重要。避免重复过去的错误也很重要。在自己当前的开发实践...
测试驱动开发电子书测试驱动开发电子书测试驱动开发电子书测试驱动开发电子书
测试驱动开发实践介绍ppt.ppt 测试驱动开发实践介绍ppt.ppt
测试驱动开发-实例1 Test-Driven+Development+By+Example-测试驱动开发
java 测试驱动开发,
极限编程反其道而行之,主张采用测试驱动开发(TDD)的方法,即通过测试定义所要开发的功能的接口,然后实现功能的开发过程。TDD通过不断地测试推动代码的开发,既简化了代码,又保证了软件质量。本书采用“手把手”...
《Java测试驱动开发》介绍如何将各种TDDzui佳实践应用于Java开发,主要内容包括:用Java语言进行TDD会用到的各种工具和框架,所需环境搭建;通过实际应用程序,展示TDD优点及开发中应注意的主要问题;TDD是如何通过...
C#测试驱动开发(中文清晰版) 第Ⅰ部分 入门 第 1 章 通向测试驱动开发之路 第 2 章 单元测试简介 第 3 章 重构速览 第 4 章 测试驱动开发:以测试为指南 第 5 章 模拟外部资源 第Ⅱ部分 将基础知识...
测试驱动开发PPT,要进行梳理,对现在工作有帮助
Kent Beck的经典教程 测试驱动开发
测试驱动开发(TDD)以测试作为开发过程的中心,它要求在编写任何产晶代码之前, 首先编写用于定义产品代码行为的测试,而编写的产品代码又要以使测试通过为目标。测试驱 动开发要求测试可以完全自动化地运行,在对...
python测试驱动开发
TDD的概念与模式第二部分 针对特定技术应用TDD第5章 测试驱动Web组件第6章 测试驱动数据访问第7章 测试驱动不可预测功能第8章 测试驱动Swing代码第三部分 基于ATDD构建产品第9章 解析验收测试驱动开发第10章 ...
测试驱动开发 英文版 非常经典的一本好书。
测试驱动开发 TDD ,将读者带入XP极限编程的神奇世界!
这个月,XP 方面的讲师兼 Java 开发人员 Roy Miller 谈论了测试驱动的编程是什么,它为什么可以使程序员的生产力和质量发生巨大变化,以及编写测试的原理。请在与本文相随的 论坛中提出您就本文的想法,以飨笔者和...