Your unit tests pass and your code coverage looks great, so you can just hit “Deploy” and head out for the weekend, right? Unfortunately, passing tests, while useful, do not begin to guarantee that your system works correctly. However, we can do better! Techniques such as property based testing, dependent types, and manual testing can be combined with unit testing to ensure highly reliable software. How do you know when you are “covered” by a unit test and when you must employ other techniques? We will consider precisely what unit testing really does, where it fails, and how to create the best plan for ensuring the overall quality of your application.