我们的团队计划在遗留代码库中重构某些模块,它是一个用Java编写的Web应用程序。它根本没有单元测试。
我要求开发人员在重构之前为现有功能编写一个junit,但是我相信这不会非常广泛。
我可以采取哪些其他措施(黑盒/白盒/进程)来确保重构不会干扰任何现有功能。
当前的系统非常稳定,已经运行了8年以上。
谢谢
灰色
最佳答案
开始之前,请先阅读Michael Feathers的Working Effectively with Legacy Code。
当前状态下的代码很可能无法有效地进行单元测试(因为它可能不是以单元为单位)。我看到的效果很好的是集成级别的测试,该测试仅使用一些合理的输入并记录输出即可; Web应用程序使其特别适合。编写这些代码,然后萌发一些小的方法和类-对所有新内容进行单元测试-同时保持这些高级测试正常运行。从一开始就要做正确的TDD工作比做更多的工作,但这绝对是可行的。
关于refactoring - 重构旧版代码的质量保证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4256820/