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.

Prerequisites

  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.

Schedule

13:00 Motivation Why should we write tests?
13:10 Concepts What are unit tests, regression tests, and integration tests?
What is test coverage?
How should we approach testing?
13:20 Tools What tools are out there?
13: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?
13:50 Exercise/discussion: Test design
14:15 Exercise/discussion: Testing using hooks How can we use Git hooks to make sure we do not commit broken code?
14:30 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?
15:10 Conclusions and recommendations What can we take home from this lesson?
15:15 Finish