You will learn how to: Design and develop software driven by tests Protect software from unwanted changes using regression tests Evolve software design with refactoring and TDD Recognise smells in the code and clean them up