Kod legasi (selalunya tidak diuji, sukar diubah) adalah mencabar untuk diuji — ia mungkin mempunyai dependency yang berbelit dan tiada ujian. Menambah ujian dengan selamat melibatkan teknik seperti characterization test, seam untuk memecahkan dependency, dan penambahbaikan secara berperingkat, membolehkan perubahan yang lebih selamat.
Cabaran kod legasi
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.
