Architecting for Testability
If you are a developer you are probably working on a large and complicated codebase. Unfortunately a lot of existing code lacks automated tests and adding them can be challenging, particularly if the code is old or poorly structured. Testability has always been an aspect of architecture that people have said is important but all too often I see this aspect ignored. Approval testing is a technique that helps you to get a difficult codebase under test and begin to control your technical debt. Approval testing works best on larger pieces of code where you want to test for multiple things. Because of this, the architecture of the system is really important for success with this testing technique. In my experience, investing in testability and setting up automated approval tests will make your testing cheaper and it will tell you more about any possible problems than other kinds of testing. In this talk you will learn about what Approval testing is, why it can work well even in complex codebases, and what architectural changes are needed for it to flourish.