In real-world software development, automated testing is one of the key practices to ensure our application quality. Automated testing allows us to scale the testing effort once our application gets bigger. Consider this: on every new feature, would you prefer to manually test all existing features to make sure they don’t break instead of having an automated process to do that? In addition to catching regression bugs, testing may also act as documentation on how the software should behave.
In this chapter, we will look into how we would test our Haskell application.