Fork me on GitHub

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 account but you can sign into it with your GitHub account.


11:00 Motivation Why should we write tests?
11:10 Concepts What are unit tests, regression tests, and integration tests?
What is test coverage?
How should we approach testing?
11:20 Tools What tools are out there?
11: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?
11:45 Exercise/discussion: Testing using hooks How can we use Git hooks to make sure we do not commit broken code?
12:00 Lunch break Break
13:00 Exercise: Automatic testing with Travis CI How can we implement automatic testing each time we push changes to the repository?
Why is it good to autoclose issues with commit messages?
13:40 Exercise/discussion: Test design
14:05 Conclusions and recommendations What can we take home from this lesson?
14:10 Finish