3.2.1 Test-driven development

In test-driven development, we first write a failing test, represented
in many testing tools by the color red. We then implement code to get
the test to pass, represented by the color green. Finally, if necessary,
we refactor the code, changing its form (by eliminating duplication, for
example) without changing its function. This cycle is known as “Red,
Green, Refactor