第 1 章 什么是测试驱动开发以及为什么在 PHP 中使用它?

使用 PHP 编程语言开发网络应用程序既有趣又高效。PHP 的入门学习曲线相对较浅,这是编程语言的一个非常重要的特点。PHP 开发人员可以使用大量的开放源代码学习材料、框架、软件包和完整的可扩展产品,这些都有一个非常庞大的开放源代码社区作为后盾。PHP 是一种适用于企业的编程语言,被广泛用作基于网络的解决方案来解决不同的业务问题。企业和开发人员可以使用 PHP 快速开发和部署网络应用程序。一旦这些企业开始取得成功并发展壮大,他们就需要在原有解决方案的基础上发布更多的功能、错误修复和改进。这就是开始变得有趣的地方。商业上成功的软件的维护可能是导致软件成本增加的最大因素之一,尤其是当软件从一开始就不是为了便于维护或测试而构建的时候。实施测试驱动开发(TDD)将提高软件的可维护性,并有助于降低成本和缩短产品上市时间。

我们大多数开发人员可能都遇到过或观察到过这样一个问题:一项功能或错误修复发布后,引发了更多问题、回归或意外的软件行为。如果您的开发环境中大部分或所有的质量保证(QA)测试都是在开发后、开发前甚至开发中手动完成的,那么您可能会遇到我提到的问题。这就是实施 TDD 的真正帮助所在。TDD 不仅有助于实施自动化测试,还能指导甚至迫使我们开发出更简洁、更松散耦合的代码。TDD 帮助开发人员在编写功能代码之前就编写和构建测试—​这有助于确保在编写功能代码或解决方案代码时,已经为其编写了相应的测试。它还能帮助我们开发人员不再说 "我稍后再添加单元测试"。

在编写任何代码之前,了解什么是 TDD,什么不是 TDD 是非常重要的。我们需要澄清一些关于 TDD 的常见误解,以帮助我们专注于 TDD 的真正含义。在本章中,我们还将尝试使用一个非常简单的类比,并试图强调为什么我们要将 TDD 作为软件项目的一部分来实施。

在本章中,我们将介绍以下内容:

  • 什么是 TDD

  • 关于 TDD 的常见误解

  • 我们为什么要考虑 TDD

  • 我们打算在本书中实现什么目标?