Test Driven Development Fundamentals is an intensive, two-day, hands-on course. It gives working developers, QE staff, and other software professionals a solid introduction to the practice. Day one opens with a short introduction, then moves into the TDD process itself, centered on the red-green-refactor cycle. Attendees write a failing test and make it pass with the simplest code that works. They then clean up the result without changing its behavior. Unit testing with JUnit follows, giving students their first real assertions and test fixtures to work with. The day closes with test design and best practices, covering naming, isolation, and what makes a unit test maintainable rather than brittle.
Day two shifts to tools and workflow, opening with behavior driven development using Cucumber for Java, where students translate plain-language scenarios into executable specifications. A module on continuous integration with Jenkins shows how those tests run automatically on every change instead of sitting idle on a developer’s machine. The course leans on principles and practices rather than pure construction, so students grasp the reasoning behind the discipline, not just its mechanics. Lab exercises give clear demonstrations of the value of driving software design through tests. The closing module surveys common pitfalls and anti-patterns, along with practical tips for introducing the practice on a real team.
Who Should Attend
Developers, QE/QA Staff, and other Software Professionals
What Attendees Will Learn
Upon completing Test Driven Development Fundamentals, attendees will be able to:
- Understand the principles and practices of Test Driven Development (TDD)
- Articulate the benefits and motivation for driving the development process with tests and testing
- Apply TDD with Java and common testing tools such as JUnit, Cucumber for Java, and Jenkins
- Recognize the value proposition of driving software design and construction through tests
- Apply TDD principles and practices to real development scenarios
Prerequisites
Attendees should have a working knowledge of at least one programming language; familiarity with Java is helpful but not required.