Fork me on GitHub
Credit and license

Automated testing

In this lesson we will discuss why testing needs to be part of the software development cycle and how such a cycle can be implemented. We will exercise a collaborative testing/code review workflow.


  1. You need pytest (as part of Anaconda or Miniconda or Virtualenv).

  2. Basic understanding of Git.

  3. You need a GitHub account.

  4. You will also need a Travis CI and Coveralls account but you can sign into them with your GitHub account.


15:00 Motivation Why should we write tests?
15:10 Concepts What are unit tests, regression tests, and integration tests?
What is test coverage?
How should we approach testing?
15:20 Tools What tools are out there?
15:30 Exercise: Testing with pytest How can we implement a test suite using pytest?
I am a Fortran developer, do I need to care about pytest?
15:50 Exercise: Automatic testing with Travis CI and Coveralls How can we implement automatic testing each time we push changes to the repository?
Why is it good to autoclose issues with commit messages?
16:30 Exercise/discussion: Test design
16:55 Conclusions and recommendations What can we take home from this lesson?
17:00 Finish