Eski kod (genellikle test edilmemiş, değiştirilmesi zor olan kod) test etmek açısından zorlayıcıdır — karmaşık bağımlılıklar ve hiç test bulunmayabilir. Test etmeyi güvenli bir şekilde eklemek karakterizasyon testleri, bağımlılıkları kırmak için seams ve kademeli iyileştirme gibi teknikler içerir ve bu da daha güvenli değişiklikleri sağlar.
Eski kodun zorlukları
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.
