The practice of Test Driven Development (TDD) allows an agile development team to efficiently convert user defined requirements into a well-designed, fully tested working implementation that not only meets the business need, but will also be easy and safe to extend, maintain, and enhance over time. Rather than spending weeks or months on an extended “design phase,” agile teams use TDD to evolve and optimize their design and implementation over time to meet the team’s evolving understanding of the business requirements.
You will learn the basic skills and gain the hands-on experience required to implement TDD in your agile project. You’ll be introduced to TDD related skills and concepts in context while working to turn example business requirements into working code.
As a technical workshop, this course emphasizes hands-on coding and the use of widely adopted development tools and testing frameworks for the Java development language. This Test Driven Development training course can be modified to use real-life examples and situations from the students’ own experiences. It would also benefit a new Agile project team that attends as a group, providing a common foundation of knowledge and experience for everyone on the team.
- Sketching an implementation model from user requirements, emphasizing the assignment of responsibilities to classes, components, and sub-systems.
- The TDD Test-Code-Refactor cycle.
- Coding by intention, and triangulating to arrive at an optimal solution.
- Using unit tests as executable specifications that document the behavior of the code that they test.
- Detecting common design deficiencies or “code smells” and improving them through refactoring.
- Isolating units to be tested using test doubles and mocking frameworks.
- The relationship between user stories, confirmations, acceptance tests, integration tests, and unit tests.
- JDK (Java Development Kit version 1.5 or later, Eclipse IDE version 4.0 or later, JUnit version 4.X and JUnit plug-in for Eclipse, Mockito framework version 1.9 or later.