Kode legacy (sering kali tanpa tes, sulit diubah) adalah tantangan untuk diuji — mungkin memiliki ketergantungan yang rumit dan tanpa tes. Menambahkan tes dengan aman melibatkan teknik seperti characterization tests, seams untuk memutus ketergantungan, dan peningkatan inkremental, memungkinkan perubahan yang lebih aman.
Tantangan kode legacy
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.
