A good test suite shows the right "perspective" to have on code. All code is read 100x more than written. But most code is written in a way that doesn't encode enough context.<p>Class hierarchies, method layout, pattern use. These things are all invisible at a high level, but testing can make those patterns surface easily and can encodes lots of semantic expectations about what the code is for.<p>It's much easier to make a change when you can force a test to fail and single step through the test, rather than setup a local environment, try to create a reproduction and then setup a trail of breakpoints to get the system into some "known" state.