5

我的工作场所由很多牛仔编码员组成。他们中的许多人都是小学生。这恰好导致了很多代码质量问题。

我正在寻找有关如何让我的团队最好地使用 TDD 的建议(我们可以从单元测试开始,然后进入回归测试,然后是更多的自动化测试)。

最终,我希望我们从错误中更快地学习,并产生更好的代码并培养更好的开发人员。

我希望有一些关于如何将 TDD 引入团队的实用建议。具体来说,在 LAMP (php) 堆栈中最好选择哪些工具。

对不起,如果这个问题太开放了。

4

5 回答 5

4

在经历了这个过程四次之后,我发现如果没有一定程度的强制执行,任何 TDD 的引入都会失败。程序员不想切换风格,也不会编写他们的第一个单元测试并突然看到曙光。

您可以在管理级别上强制执行,但这对所有相关人员来说都是耗时的。无论如何,这在开始时是必要的,但最终您将需要自动执行。答案是引入持续集成。

我发现 CI 服务器是任何 TDD 环境的终极基石。除非开发人员知道如果他们不编写测试会发生一些不好的事情,否则总会有牛仔觉得这在他们之下。

于 2009-06-06T19:10:43.643 回答
2

使编写测试变得容易并且结果可见

  • 使用具有良好文档的 TestFramework。像SimpleTest
  • 如果测试依赖于数据库内容,请创建一个将在脚本开头删除和创建的参考数据库。
  • 制作一个运行所有测试并在独立监视器上显示结果的脚本,或者使测试可见/易于访问的东西。(运行命令提示符不是一种选择)

我个人不会为应用程序中的每一块代码编写测试。
专注于应用程序中的领域对象。在我的情况下,这些是“价格计算”和“库存变化”

提醒他们,他们可能已经在编写测试,但是他们在创建之后就删除了他们的工作。示例:在开发函数期间,您将拥有一个带有echovar_dump () 结果的页面/测试脚本。在手动验证结果后,您将修改函数的参数并再次检查。

通过一些额外的努力,这些测试可以在 UnitTest 中自动化。哪个程序员不喜欢自动化的东西?

于 2009-05-16T09:36:20.917 回答
0

至于团队问题以及关于软件开发和测试的普遍想法,我会建议 Joel Spolski 的网站和书籍:http://joelonsoftware.com/从他那里得到了很多见解。

于 2009-05-16T08:00:28.323 回答
0

SimpleTest - 优秀的 php 测试文档和解释

于 2009-05-16T08:10:48.127 回答
0

启动 TDD 的另一种方法是尝试使用 PHP 框架。没有框架,很难有效地实现单元测试。

于 2009-05-16T08:15:29.957 回答