Legacy-kod (ofta otesterad, svår-att-ändra-kod) är utmanande att testa — den kan ha förvirrande beroenden och inga tester. Att lägga till tester på ett säkert sätt kräver tekniker som karaktäriseringstester, seams för att bryta beroenden, och inkrementell förbättring, vilket möjliggör säkrare ändringar.
Utmaningen med legacy-kod
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.
