Adopting a testing mindset
Let’s take a step back and talk about why a book on refactoring features an entire series of chapters around testing. The reason is that code that needs to be refactored is often a bit more volatile and tends to break more easily when changed. Since the art of refactoring is about changing the form of the software without changing its behavior, introducing bugs when refactoring is undesirable and unacceptable.
This is where tests come in. Tests give you the confidence you and your team need to be able to improve your code. Your legacy code may or may not have tests around it already, so the responsibility and necessity of ensuring good tests are present falls to you before you perform any testing work.
This requires you to adopt a testing mindset. This phrase refers to thinking about tests at the beginning of the development process as a vital component of software development and refactoring, not as an afterthought.
While we’ll explore...