DescriptionWhat we offer

  • This course teaches participants the sustainable approach to Test-Driven Development. The practice of Test-Driven Development, which utilizes Refactoring and Unit Testing in a particularly fine-grained way, is demonstrated. A hands-on TDD project will dominate the third day.

ObjectivesWhat you learn

  • In this course, you will learn:
    • Why and how to be "test-driven"
    • How to analyze requirements to obtain better tests
    • How to write unit tests
    • How to use mock objects
    • How to refactor legacy code
    • How to use an XUnit testing framework (Junit or NUnit or CxxTest)
    • A variety of refactoring techniques, with hands-on exercises to solidify this knowledge

TopicsThe best for you

  • A brief overview of the motivations behind Agility, and TDD specifically
  • As a group, we all get the testing framework up and running on all needed machine
  • Review Code Qualities, and how they relate to Testing and Testability
  • Unit-testing in general, leading to the benefits of TDD
  • A small Unit-testing/TDD exercise
  • Mock Objects, with an exercise
  • Code Smells, and Refactoring
  • Refactoring to the open-closed, just in time design
  • Legacy code refactoring exercise and debrief
  • TDD and Design, revisiting the exercise from Day 1
  • TDD and Design, putting it all together. This includes a larger hands-on lab project

PrerequisitesWhat should you know

  • Participants should have a solid background in an object-oriented language such as Java, C#, or C++

AudienceWho should attend

  • Software developers who want to learn how to code better and learn new design techniques