从总体上认识TDD

简介: 简单理解下测试驱动开发TDD,把握这种编程方式的简单、核心原则,体会这样给程序、编程带来的有益之处。 (由我从书中提取的重点后再写入一些个人体会、理解、个人解释而成的博文)

测试驱动开发

它是一种开发方式,是敏捷开发、极限编程的核心部分之一。

它的目标是:可运行的简洁的代码。

在TDD中,有着两项简单原则:

  1. 仅当测试化失败的时候,才编写新的代码(产品代码、功能代码);
  2. 去掉重复的部分——重构

从上产生出一组技术方面复杂的行为准则:

  • 必须参考每次修改代码后代码运行状况的反馈,逐渐完成设计;
  • 必须自己编写测试;
  • 开发环境(如IDea)必须对细微的修改做出响应;
  • 设计必须遵从高内聚、低耦合的原则,这便于实施测试。

从上两条原则也预示了TDD编程任务的先后顺序:

  1. 红色指示条——编写一个无法工作的简单测试(甚至说无法通过编译)
  2. 绿色指示条——迅速使测试工作起来(想方设法,竭尽手段
  3. 重构——去掉单纯由于使测试工作起来而产生的重复部分(数据的重复-输入、输出)

所以TDD的经典三部曲就是:红色指示条——绿色指示条——重构。

面对问题时,要么一筹莫展,要么从简单的地方着手。那么这样做吧: 从简单的地方着手;编写自动化测试;通过每一次的重构添加一回设计上的构思。


简单的原则,蕴含了非常好的思维模式,同样给程序带来了很好的效果。可以说,除非有着与之对应的测试,不然是不应该存在任何产品代码——这样的编程,确保了所写的代码,全部都是可测试的,这些代码的正确性有着测试方法的保证,任何错误的修改都将立刻提示出来。这给了继续前进的勇气。 也可以说,当程序的现有工作代码全部都被测试所覆盖,这就极大降低了BUG潜伏的隐患。 既然是需要现有测试,那么就是说现在程序里没有任何功能代码,也是先写了测试,所以说写测试时候并不在意程序是否存在这个类或方法、字段,尽管写测试吧,等测试写完后,再想方设法使得测试迅速工作起来!重构是非常重要的,简单来说重构就是对现有代码的修改——对如何做而不是做什么。

END

2019年11月3日,09点44分

目录
相关文章
|
3月前
|
自然语言处理 测试技术
测试驱动开发(TDD)与行为驱动开发(BDD)的比较与选择
在软件开发中,测试驱动开发(TDD)与行为驱动开发(BDD)是两种常见的开发方法。虽然它们都强调测试在开发过程中的重要性,但是两者之间存在一些差异。本文将对TDD和BDD进行比较,分析它们各自的优点和缺点,以及在实际开发中如何选择最适合的方法。
|
9月前
|
前端开发 JavaScript Java
TDD测试驱动开发案例【水货】
TDD测试驱动开发案例【水货】
|
Java 测试技术 程序员
先测试再开发?TDD测试驱动开发了解一下?
TDD测试驱动开发概念以及简单使用
先测试再开发?TDD测试驱动开发了解一下?
|
小程序 测试技术 程序员
TDD(测试驱动开发)死了吗?
很早之前,曾在网络上见到过 TDD 这 3 个大写的英文字母,它是 Test Driven Development 这三个单词的缩写,也就是“测试驱动开发”的意思——听起来很不错的一种理念。
TDD(测试驱动开发)死了吗?
|
测试技术
TDD(测试驱动开发)死了吗?(2)
TDD(测试驱动开发)死了吗?
71 0
TDD 😀
TDD三层含义 1.Test Dirven Development  任务驱动开发 2.Test First Development   测试先行开发 3.
1000 0
|
测试技术 项目管理 开发者
|
测试技术 程序员 敏捷开发