Any team developing and maintaining software - be it free and opensource or commercial - employs one form of software testing or another.But what are the different kinds of tests in our tool boxes? And how arethey best used? In this talk we'll take a look around and try to answerthese questions.First, we'll examine the basic concepts of testing: Everyone hasprobably at least heard about *unit tests* , but are they all you need?*Performance tests* can help you find out how well your product performsunder load and detect bottle necks early on. *Manual testing* is oftenlooked down upon, since it's not automated, but is it always a bad idea?And what even *is* *mutation testing*?We'll also get to know a lot of the amazing testing tools from thePython ecosystem. Find out what the best test runner is (Spoiler alert:it's pytest). Learn how to make writing test more fun and less workusing tools like mock, Faker and factory\_boy. Measure the quality ofyour test suite using coverage.py.But no tool is the right one for any situation. We'll also talk aboutwhen and how to use each of the tools, while debunking commonmisconceptions and demonstrating best practices.