Source: https://www.emse.fr/~picard/cours/2A/junit/junit.pdf