2

虽然测试驱动开发的重构步骤应该始终涉及对给定功能的另一次完整测试,但您有什么方法可以防止功能本身之外的可能回归?

我的专业经验让我想在任何代码更改后重新测试整个功能模块。这是TDD推荐的吗?

谢谢你。

4

2 回答 2

1

虽然测试驱动开发的重构步骤应该始终涉及对给定功能的另一次完整测试,但您有什么方法可以防止超出功能本身的可能回归?

当您处理特定功能时,tests for the given functionality仅运行就足够了。无需进行完全回归。

我的专业经验让我想在任何代码更改后重新测试整个功能模块。

您不需要进行完全回归,但您可以,因为Unit tests它很小、简单且快速。

此外,还有多种工具可用于不同语言的“持续测试” :

所有这些工具都用于在您的本地机器上自动运行测试以获得快速反馈。

只有当您即将完成该功能的实现时,才需要全面运行所有测试。

在持续集成 (CI) 服务器上运行测试是必不可少的。特别是当你有很多集成测试时。

于 2013-11-17T16:56:01.907 回答
1

TDD 只是一种编写新代码或修改旧代码的方法。每次对任何代码文件(新功能或重构)进行修改时,都应该运行整个测试库。这就是您确保没有发生倒退的方式。我们在这里讨论自动测试(单元测试、系统测试、验收测试,有时还有性能测试)

持续集成(CI) 将帮助您实现这一目标:CI 服务器(Jenkins、Hudson、TeamCity、CruiseControl...)将拥有您的所有测试,并在您提交对源代码控制的更改时自动运行它们。它还可以计算测试覆盖率并指出您的代码在哪些地方没有得到充分测试(请注意,如果您使用正确的 TDD,您的测试覆盖率应该始终为 100%)。

于 2013-11-05T08:04:26.300 回答