Untested code is broken code. Manual testing is essential to ensuring that our software works as expected and does not contain critical bugs. However, manual testing is severely limited because bugs may be introduced at any time in the code.
Nowadays, automated testing is a standard practice in software engineering. In this recipe, we will briefly cover important aspects of automated testing: unit tests, test-driven development, test coverage, and continuous integration. Following these practices is fundamental in order to produce high-quality software.
Python has a native unit testing module that you can readily use (unittest
). Other third-party unit testing packages exist. In this recipe, we will use pytest. It is installed by default in Anaconda, but you can also install it manually with conda install pytest
.