Legacy code (vaak ongetest, moeilijk te wijzigen code) is uitdagend om te testen — het kan verwarde afhankelijkheden hebben en geen tests bevatten. Het veilig toevoegen van tests omvat technieken zoals karakteriseringstests, seams voor het doorbreken van afhankelijkheden, en incrementele verbetering, waardoor veiligere wijzigingen mogelijk worden.
De uitdaging van 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.
