Chapter 3. Testability – Writing Testable Code
In the previous chapter, we covered a very important architectural attribute of software, namely, modifiability, and its related aspects. In this chapter, the topic is a closely related quality attribute: testability of software.
We briefly covered testability in the first chapter of this book, where we understood what testability is, and how it relates to the complexity of the code. In this chapter, we will look into the different aspects of software testability in detail.
Software testing by itself has developed into a large field with its own standards and unique set of tools and processes. The focus of this chapter is not to cover the formal aspects of software testing. Instead, what we will strive to do here is to understand software testing from an architectural perspective and understand its relation to the other quality attributes and, in the second half of this chapter, discuss the Python tools and libraries relevant...