TDD测试驱动开发

TDD测试驱动开发

一、概念

TDD故名思意就是用测试的方法驱动开发,简单说就是先写测试代码,再写开发代码。传统的方式是先写代码,再测试,它的开发方式与之正好相反。

TDD是极限编程的一个最重要的设计工具之一,使得我们编码的目的更加明确。而极限编程的另一个最重要的工具—重构。重构改变的是代码的内部结构,而不会改变外部接口功能。一整套完备的测试用例可以保证我们的程序更加健壮,功能更加完善。

二、作用

站在用户使用的角度去思考如何完成产品设计,强迫开发人员事先思考完善的测试用例并提供不考虑细节的外部接口功能,大幅减少debug时间,提高产品开发质量。

三、适用范围

1.适合时间不是很紧的软件开发。

2.适合于产品和平台的开发。

四、操作步骤

  1. 加入一个新的测试。
  2. 运行下新加的测试,看到它失败。
  3. 对开发代码做很小的修改,目的就是让新加的测试通过 (注意这里的目的)。
  4. 运行所有的测试testcase,然后看到所有测试都通过了。
  5. 移掉重复的代码,对代码进行重构 (既包括功能代码,也包括测试代码。特别注意红色的字串一般会有重复,还有一些代码可以抽出来变成公用方法。

五、优缺点

优点

  • 测试代码都是从客户需求出发的,不是重实现出发的。测试更关注于对外部的接口。
  • 软件的需求都被测试代码描叙得很清楚,可以减少很多不必要的文档(有些时候写文档时间比开发时间多多了, 需要一个专门写文档的,而且用的机会很少。
  • 每次都是很小的步骤,这样你就很集中注意解决一个问题。
  • 可以优化设计。如果有做过测试驱动开发的会发现,为了更好的,更容易的做单元测试。

缺点

  • 有时候开发代码可能只有几行,可是测试代码可能比真正的代码要多很多。而且花时间想怎么测试。
  • 可能不适合时间很紧的软件开发

六、合作方式

最好且最快的方式就是XP中的无序结对编程,一个有TDD经验的坐在"后面",指导另一个不大熟悉的人,两人一起来完成一个类或模块的功能。

时间: 2024-10-12 22:55:13

TDD测试驱动开发的相关文章

我看TDD测试驱动开发

今天在实验室给大家介绍了一下TDD和Docker,大家对TDD都比较感兴趣,包括老板,也问了一些问题. 还是从头来说TDD吧,TDD作为敏捷开发领域的领头军,充满魅力,同时也充满争议.一切从三大军规说起: 除非这能让失败的单元测试通过,否则不允许去编写任何的产品代码. 只允许编写刚好能够导致失败的单元测试. (编译失败也属于一种失败) 只允许编写刚好能够导致一个失败的单元测试通过的产品代码. 上面这三个是网上找的中文翻译,回来后,我还是决定要把英文原文找出来,相对与上面三句拗口蹩脚的翻译,我相信

Scrum敏捷软件开发之技术实践——测试驱动开发TDD

重复无聊的定义 测试驱动开发,英文全称Test-Driven Development,简称TDD,是一种不同于传统软件开发流程的新型的开发方法.它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行.这有助于编写简洁可用和高质量的代码,并加速开发过程.(来源百度百科) 重复无聊的过程 测试驱动开发的基本过程如下: 快速新增一个测试(编者注:并非快速) 运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过 做一些小小的改动,尽快

测试驱动开发TDD(一)TDD的好处及介绍

背景 一个高效的软件开发过程对软件开发人员来说是至关重要的,决定着开发是痛苦的挣扎,还是不断进步的喜悦.国人对软件蓝领的不屑,对繁琐冗长的传统开发过程的不耐,使大多数开发人员无所适从.最近兴起的一些软件开发过程相关的技术,提供一些比较高效.实用的软件过程开发方法.其中比较基础.关键的一个技术就是测试驱动开发(Test-Driven Development).虽然TDD光大于极限编程,但测试驱动开发完全可以单独应用.下面就从开发人员使用的角度进行介绍,使开发人员用最少的代价尽快理解.掌握.应用这种

软件工程 - Test-Driven Development (TDD),测试驱动开发

参考 https://baike.baidu.com/item/%E6%B5%8B%E8%AF%95%E9%A9%B1%E5%8A%A8%E5%BC%80%E5%8F%91/3328831?fr=aladdin https://en.wikipedia.org/wiki/Test-driven_development https://github.com/mjhea0/flaskr-tdd 总结 先写测试,然后写程序pass掉测试,that is 测试驱动开发. TDD usually foll

测试驱动开发TDD(二)开源测试框架CppUnit

背景 CppUnit 是个基于 LGPL 的开源项目,最初版本移植自 JUnit,是一个非常优秀的开源测试框架.CppUnit 和 JUnit 一样主要思想来源于极限编程(XProgramming).主要功能就是对单元测试进行管理,并可进行自动化测试.这样描述可能没有让您体会到测试框架的强大威力,那您在开发过程中遇到下列问题吗?如果答案是肯定的,就应该学习使用这种技术: 测试代码没有很好地维护而废弃,再次需要测试时还需要重写: 投入太多的精力,找 bug,而新的代码仍然会出现类似 bug: 写完

测试驱动开发TDD(三)开源测试框架的选择

http://www.qnr.cn/pc/rj/zhongji/ruanze/201008/523311.html  * http://www.uml.org.cn/Test/201006085.asp ** http://blog.csdn.net/jq0123/article/details/5479998 *** 最终选择Google的GTest作为我们开发的测试框架.

测试驱动开发TDD(六)Start Google Test in Windows

一.前言 本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例. 二.下载 如果不记得网址, 直接在google里搜gtest,第一个就是.目前gtest的最新版本为1.3.0,从下列地址可以下载到该最新版本: http://googletest.googlecode.com/files/gtest-1.3.0.zip http://googletest.googlecode.com/files/gtest-1.3.0.tar.g

Cucumber测试驱动开发

Cucumber是一种BDD实践开发工具,属于敏捷开发的组成部分. 在敏捷开发中,对用户进行需求分析时,不是像传统的P&D的开发方式,首先编写大量的用户需求分析文档,而是通过一个个User Story来进行用户需求的分析. User Story的编写,也就是Cucumber的Gherkin编写.由一个个feature组成.User Story的编写应该符合SMART原则,即简明详细.可测量.可以在一个迭代内实现.有商业价值,并且可测试. BDD开发流程 首先应该在编写具体的代码前,先编写测试文件

什么是测试驱动开发

1:传统的编码方法 2:测试驱动开发 它的特点如下 2.1:编写一个失败的单元测试,来证明产品代码中存在缺陷,来进行修复这个缺陷 比喻我们要实现一个用户的添加方法User.Add,我们就会写一个测试方法来验证这个User.Add.当然在最初的测试肯定会失败,因为我们根本就没有 编写User.Add的编码所以运行失败以后我们就会去实现这个编码,直到通过为止 2.2:编写符合测试预期的代码,是测试通过 2.3:重构代码 第一次我们的编码肯定是为了完成功能可能可读性,规范效率还不是很好,所以我们会不停