 and fixing bugs once the software is in production is very costly. Most importantly, <strong>good engineers take pride in building things that work well and are robust.</strong></p>

<p>The key to writing working software is developing good tests. In this course we follow an approach called test-driven development. As you write code, you will also write companion tests. These tests are used to verify that the code you just finished writing works as intended.</p>

<p>This strategy is sometimes called "<em>t