Legacy projects tend to lack test coverage. Unfortunately, legacy projects are also often written in such a way that it makes it difficult to add tests. A few powerful testing techniques can make it much easier to get legacy projects under control.
Most code in the world is legacy code. Legacy projects tend to be lacking in test coverage. Unfortunately, legacy projects are often written in such a way that it makes it difficult to add tests - tests that are badly needed in order to start paying down technical debt and get the project on the right track.
Fortunately there are some effective ways of wrangling legacy code into submission. If we can break apart a legacy project’s entanglement of dependencies, making the code more modular and loosely coupled, we can add tests more easily. But breaking apart dependencies is tricky and requires a few certain techniques in order to be done safely.