Tests are great and we should write them all the time! Wait, what exactly were we getting out of them again? In this talk we'll expose some of the lies we've been taught about testing, like "testing is awesome", "testing is hard" and "you can't test-drive exploratory code". Good tests don't just catch bugs; they guide our thinking, shape our code, document our reasoning and even teach maintainers how to use our API... but only if we write them to be that way. If you like testing (or just wish you did), this talk is for you.