Legacy-Code (oft ungetesteter, schwer zu ändernder Code) ist schwierig zu testen – er kann verschachtelte Abhängigkeiten haben und keine Tests aufweisen. Das sichere Hinzufügen von Tests beinhaltet Techniken wie Charakterisierungstests, Seams zum Brechen von Abhängigkeiten und inkrementelle Verbesserung, die sicherere Änderungen ermöglichen.
Herausforderung mit Legacy-Code
Legacy code is often: untested, tightly coupled, hard to understand, risky to change:
→ no tests → changing it is dangerous (you can't tell if you broke something)
→ hard to test → dependencies are tangled (can't isolate units); not designed for testing
→ a chicken-and-egg problem: to change safely you need tests, but it's hard to test.
