Testing a program is very simple. All it involves is running particular pieces of your program and saying what you expect the results to be and comparing it to what the results from the piece of the program actually are. If the results are the same, the test passes. If the results are different, the test fails. Typically, these tests are run before code is committed to the Git repository and before code is deployed to the live server in order to make sure that broken code doesn't make it into either of those systems.
In program testing, there are three main types of tests. Unit tests are tests that verify the correctness of individual pieces of code, such as functions. Second is integration testing, which tests the correctness of various units of programs working in tandem. The last type of testing is system testing, which tests the correctness of the whole system at once rather than in individual pieces.
In this chapter, we will be using unit testing and system testing...