最近,我在工作中继承了一个业务关键项目以“增强”。在过去的五年中,该代码已被开发并通过了许多人的手。不再在公司工作的顾问和全职员工扼杀了这个非常微妙和过于敏感的应用程序。我们大多数人都必须处理遗留代码或此类项目......这是作为开发人员的一部分......但是......
有零单元和零系统测试。逻辑在存储过程、视图(是的,我说的是视图)和代码之间相互混合(有时无缘无故地重复)。文档?是的,对。我害怕。是的,即使是最小的“调整”或重构也是非常神圣的。一个小事故,我的雇主就会遭受重大的收入损失和潜在的法律问题。
那么,有什么建议吗?我的第一个想法是开始针对现有代码编写断言/单元测试。然而,这只能到此为止,因为存储过程中嵌入了很多逻辑。(我知道它可以测试存储过程,但从历史上看,它比单元测试源代码逻辑要困难得多)。另一种或附加的方法是比较应用程序执行功能之前和之后的数据库状态,进行一些代码更改,然后进行数据库状态比较。