The practice of Test Driven Development (TDD) allows a disciplined 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.
In this hands-on workshop you will learn the basic skills required to implement TDD. 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. In particular this course would benefit a new agile project team that attends as a group, providing a common foundation of knowledge and experience for everyone on the team.
This course is primarily intended for hands-on developers. While relatively little prior experience in TDD or writing unit tests is assumed, participants should be equipped and prepared to engage in hands-on coding during the course.
• Learn the TDD Test-Code-Refactor cycle.
• Discover how to code by intention, and triangulating to arrive at an optimal solution.
• Streamline development by using unit tests as executable specifications that document the behavior of the code that they test.
• Learn how to detect common design deficiencies or “code smells” and improving them through refactoring.
• Learn techniques to isolate units to be tested using test doubles and mocking frameworks.
• Understand the relationship between user stories, confirmations, acceptance tests, integration tests, and unit tests.
• Conceptual Overview
• Unit Test Mechanics
• Isolating Code with Test Doubles
• Intro to Emergent Design
• A Basic TDD Episode
• Exercise 1: Test Driving a Story Part 1 (Code Along with the Instructor)
• Exercise 2: Test Driving a Story Part 2 (Code Along with the Instructor)
• Exercise 3: Test Driving a Story Part 3 (Code In Pairs)
• Unit, Integration, and Functional Tests
• How TDD fits into Disciplined Agile (DA)
Length: Three days – 21 hours of classroom time plus breaks.
Approach: Lecture plus hands-on coding sessions.
Prerequisites: Participants should be proficient with the Java programming language and its commonly used libraries and APIs, and at least somewhat familiar with the Eclipse IDE.
Class size: Ideally 10 to 15.
Classroom requirements: Each participant will need a workstation.
System requirements: 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.
© 2015 Scott Ambler + Associates