TDD:重构和全球回归

时间:2013-10-31 01:00:22

标签: tdd code-testing

虽然测试驱动开发的重构步骤应该总是涉及针对给定功能的另一个完整测试,但是关于防止功能本身之外的可能回归的方法是什么?

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

谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

  

虽然测试驱动开发的重构步骤应始终如此   涉及给定功能的另一个完整测试,是什么   你的方法是防止可能的退步   功能本身?

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

  

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

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

此外,还有一些工具用于"Continuous Testing"不同语言:

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

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

在Continuous Integration(CI)服务器上运行测试至关重要。特别是,当你进行大量的集成测试时。