Programming is never just about crafting a solution to a problem and leaving it once it's reached a somewhat finished state. More often than not, it's also about maintaining the existing solutions so that businesses can continue to run and make money. Maintaining these existing solutions, typically, means doing things like debugging and adding new features, and in order to do these things, it's important to have a working knowledge of some of the tools that exist within the Python ecosystem.
In this chapter, we'll be looking at the various testing strategies we can follow in order to ensure that we can continue to add new features and perform refactoring of our code with minimal risk to the existing features.
We'll also be diving deep into some of the tools available that allow us to gain a better understanding of our Python applications...