我的工作场所由很多牛仔编码员组成。他们中的许多人都是小学生。这恰好导致了很多代码质量问题。
我正在寻找有关如何让我的团队最好地使用 TDD 的建议(我们可以从单元测试开始,然后进入回归测试,然后是更多的自动化测试)。
最终,我希望我们从错误中更快地学习,并产生更好的代码并培养更好的开发人员。
我希望有一些关于如何将 TDD 引入团队的实用建议。具体来说,在 LAMP (php) 堆栈中最好选择哪些工具。
对不起,如果这个问题太开放了。
我的工作场所由很多牛仔编码员组成。他们中的许多人都是小学生。这恰好导致了很多代码质量问题。
我正在寻找有关如何让我的团队最好地使用 TDD 的建议(我们可以从单元测试开始,然后进入回归测试,然后是更多的自动化测试)。
最终,我希望我们从错误中更快地学习,并产生更好的代码并培养更好的开发人员。
我希望有一些关于如何将 TDD 引入团队的实用建议。具体来说,在 LAMP (php) 堆栈中最好选择哪些工具。
对不起,如果这个问题太开放了。
在经历了这个过程四次之后,我发现如果没有一定程度的强制执行,任何 TDD 的引入都会失败。程序员不想切换风格,也不会编写他们的第一个单元测试并突然看到曙光。
您可以在管理级别上强制执行,但这对所有相关人员来说都是耗时的。无论如何,这在开始时是必要的,但最终您将需要自动执行。答案是引入持续集成。
我发现 CI 服务器是任何 TDD 环境的终极基石。除非开发人员知道如果他们不编写测试会发生一些不好的事情,否则总会有牛仔觉得这在他们之下。
使编写测试变得容易并且结果可见。
我个人不会为应用程序中的每一块代码编写测试。
专注于应用程序中的领域对象。在我的情况下,这些是“价格计算”和“库存变化”
提醒他们,他们可能已经在编写测试,但是他们在创建之后就删除了他们的工作。示例:在开发函数期间,您将拥有一个带有echo或var_dump () 结果的页面/测试脚本。在手动验证结果后,您将修改函数的参数并再次检查。
通过一些额外的努力,这些测试可以在 UnitTest 中自动化。哪个程序员不喜欢自动化的东西?
至于团队问题以及关于软件开发和测试的普遍想法,我会建议 Joel Spolski 的网站和书籍:http://joelonsoftware.com/我从他那里得到了很多见解。
SimpleTest - 优秀的 php 测试文档和解释
启动 TDD 的另一种方法是尝试使用 PHP 框架。没有框架,很难有效地实现单元测试。