从总体上认识TDD

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

测试驱动开发

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

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

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

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

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

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

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

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

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

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


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

END

2019年11月3日,09点44分

目录
相关文章
|
2月前
|
测试技术 C# 数据库
C# 一分钟浅谈:测试驱动开发 (TDD) 实践
【10月更文挑战第18天】测试驱动开发(TDD)是一种软件开发方法论,强调先编写测试代码再编写功能代码,以确保代码质量和可维护性。本文从 TDD 的基本概念入手,详细介绍了其核心步骤——编写测试、运行测试并失败、编写代码使测试通过,以及“红绿重构”循环。文章还探讨了 TDD 的优势,包括提高代码质量、促进设计思考、减少调试时间和文档化。此外,文中分析了常见问题及解决方案,如测试覆盖率不足、测试代码过于复杂、忽视重构和测试依赖过多,并通过一个简单的计算器类的代码案例,展示了 TDD 的实际应用过程。
48 1
|
4月前
|
Java 测试技术 开发者
提高代码质量:深入实践测试驱动开发(TDD)
【8月更文挑战第14天】测试驱动开发是一种强大的软件开发方法,它通过先写测试再编写代码的方式,显著提高了代码质量。通过实践TDD,开发者可以编写出更可靠、更易于维护的代码,并加速开发进程。虽然TDD需要一定的学习和适应过程,但其带来的长期收益是不可估量的。如果你还没有尝试过TDD,现在就开始吧!
|
7月前
|
敏捷开发 测试技术
深入理解并应用测试驱动开发(TDD)
【5月更文挑战第30天】测试驱动开发(TDD)是一种先编写测试用例再写代码的方法论,核心是"先测试,后开发"。通过"红-绿-重构"的循环,确保代码正确性,提升简洁性和可维护性。TDD步骤包括编写测试用例、运行测试、编写实现代码、重构及循环迭代。它能提高代码质量,促进团队合作,降低维护成本,并适应敏捷开发。在开发实践中,应用TDD能有效提升效率和代码质量。
|
7月前
|
自然语言处理 测试技术
测试驱动开发(TDD)与行为驱动开发(BDD)的比较与选择
在软件开发中,测试驱动开发(TDD)与行为驱动开发(BDD)是两种常见的开发方法。虽然它们都强调测试在开发过程中的重要性,但是两者之间存在一些差异。本文将对TDD和BDD进行比较,分析它们各自的优点和缺点,以及在实际开发中如何选择最适合的方法。
|
前端开发 JavaScript Java
TDD测试驱动开发案例【水货】
TDD测试驱动开发案例【水货】
|
Java 测试技术 程序员
先测试再开发?TDD测试驱动开发了解一下?
TDD测试驱动开发概念以及简单使用
先测试再开发?TDD测试驱动开发了解一下?
|
小程序 测试技术 程序员
TDD(测试驱动开发)死了吗?
很早之前,曾在网络上见到过 TDD 这 3 个大写的英文字母,它是 Test Driven Development 这三个单词的缩写,也就是“测试驱动开发”的意思——听起来很不错的一种理念。
TDD(测试驱动开发)死了吗?
|
测试技术
TDD(测试驱动开发)死了吗?(2)
TDD(测试驱动开发)死了吗?
99 0