Testing in Python - The Big Picture
Software testing is of course very important when it comes to quality assurance. But good testing strategies can also make our lives as developers easier. In this talk, we will take a look at different aspects of software testing and find out what the Python ecosystem has to offer for our testing needs.
Tags: Programming, Python
Scheduled on wednesday 16:35 in room lecture
A Python programmer and open source enthusiast for years, I am now the lead developer in a medical software company. Like everyone in the software field, I benefit greatly from many open source tools available to us. Therefore I try to give back whenever I can, leaving a contribution here and there. I'm mainly involved with the coala.io project, a code quality analyzer for all language where I'm currently mentoring a Google Summer of Code student. I absolutely love going to conferences to meet old friends and make new ones. If you've seen my talk and have questions or comments and wonder if you should discuss them with me, the answer is: yes!
Any team developing and maintaining software - be it free and open source or commercial - employs one form of software testing or another. But what are the different kinds of tests in our tool boxes? And how are they best used? In this talk we'll take a look around and try to answer these questions.
First, we'll examine the basic concepts of testing: Everyone has probably at least heard about unit tests, but are they all you need? Performance tests can help you find out how well your product performs under load and detect bottle necks early on. Manual testing is often looked 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 the Python ecosystem. Find out what the best test runner is (Spoiler alert: it's pytest). Learn how to make writing test more fun and less work using tools like mock, Faker and factory_boy. Measure the quality of your test suite using coverage.py.
But no tool is the right one for any situation. We'll also talk about when and how to use each of the tools, while debunking common misconceptions and demonstrating best practices.