- Learn the history and value of Test-Driven Development
- Explore the five practices that comprise TDD
- Understand the test-first mindset and use it as Just-in-Time problem analysis
- Learn refactoring as Just-in-Time design
- Practice adding characterization tests to legacy code
- Learn about emergent design and simple design
- Use mock objects to decouple difficult dependencies
Essential Test-Driven Development is a 3-day course for developers, providing hands-on experience with the techniques of Test-Driven Development (TDD). This course is designed for experienced developers who are comfortable with their programming language and the basics of object-oriented design. Attendees learn the techniques of test-first, refactoring, mock objects, and others. They learn how these techniques provide and maintain a very low defect-count, plus why TDD helps developers work fearlessly, swiftly, and comfortably on new features and bug-fixes. Attendees will also learn how to work on legacy code: building test-coverage for critical areas, and protecting areas of the legacy system that do not yet require any alteration.
This set of practices for developers is at the heart of low-defect agile software development. These techniques allow incremental development and Emergent Design to flourish, without degrading quality. This course also contains a significant section on the not-so-pleasant task of adding unit tests to legacy code. The course is currently offered in Java, JavaScript, C#, VB.net, or C++.
Who Should Attend/Prerequisites?
This is an intermediate to experienced level course intended for software developers. Attendees should have competence with either the Java, Javascript, VB.net, C++, or C# programming languages, a familiarity with basic object-oriented principles of design and a basic familiarity with an Agile framework such as Scrum or Kanban.
This course involves hands-on programming. Please bring a laptop with your IDE loaded. If you have any difficulty bringing a laptop, please let us know immediately.