Effective testing is critical for developing quality software. It’s not just something you do once to figure out if something you just wrote works; it’s something you should do regularly and frequently as you develop a piece of software. It’s far better to catch errors during development than after the software is deployed and in use, and regular testing plays a critical role in that.

Overview

In the CS50W Week 7 lecture, watch specifically these chapters:

  • Testing
  • Assert
  • Unit Testing
  • CI/CD
  • Git Hub Actions

This skips over the chapters on Django Testing and Selenium (we won’t use those in our class).

Optionally, watch the chapter on Docker, particularly if you don’t know what it is. We won’t use Docker in this class, but it is highly likely you will be using Docker or something like it in your future career.

Continuous Integration (CI)

First, read this quick, concise description of what CI is and why we should use it: Use continuous integration

Then, Continuous Integration by Martin Fowler provides more motivation and further details. You can stop when you hit “Fix Broken Builds Immediately.” The rest is a detailed exploration of further implementation specifics and reasoning. It’s well worth reading if you want to dig into the philosophy of CI.