Introduction to Test-Driven Development
Learn the Basic Skills to Implement TDD on Agile Projects—2 Days, 14 Hours
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 required to implement TDD in your agile project. Developers will participate with the instructor in a live example of turning a business requirement into well-designed working code, using a test driven approach. Rather than presenting TDD at a purely conceptual level, this introduction demonstrates hands-on coding and the use of widely adopted development tools and testing frameworks for the Java development language. This introduction will benefit a new Agile project team that attends as a group, providing a common foundation of knowledge and experience for everyone on the team.
At the completion of this course, students will understand:
- How TDD enables emergent, incremental design for an Agile team.
- The TDD Test-Code-Refactor cycle.
- Using unit tests as executable specifications that document the behavior of the code that they test.
- Isolating units to be tested using test doubles and mocking frameworks.
- How TDD fits into an Agile workflow and enables long term team productivity.
- Conceptual Overview
- TDD What and Why
- The Test-Code-Refactor Cycle
- TDD in an Agile Development Process
- Unit Test Mechanics
- Setting Up the Environment
- The Structure of a Unit Test Class
- Assertions and Matchers
- Handling Error Conditions
- Isolating Code with Test Doubles
- What are Fakes, Stubs, and Mocks
- When and Why to Use Doubles
- Basic Usage of the Mockito Framework
- Advanced Mocking Scenarios
- Intro to Emergent Design
- Identifying Common "Code Smells"
- Applying Object Oriented Design Principles
- Refactoring to Design Patterns
- A Basic TDD Episode
- Analyzing a Simple Requirement
- Writing a First Test by Intention
- Making the Test Pass
- Completing the Specification with Triangulation
- Refactoring to Improve the Design
- Live Exercise: Test Driving a Story (Coding Dojo Format)
- Our Example User Story
- Sketching an Approach
- Test Driving the First Confirmation
- Using Test Doubles
- Refactoring to Improve the Design
Participants should have a comfort level with technical terminology, and some knowledge of and/or experience in Agile development processes such as Scrum or XP.
ARTICLE: 7 Reasons to Add Agile to Your Management Toolbox by Eric P. Rudolf
In addition to improving product development results, did you know Agile principles and practices can also improve your effectiveness as a day-to-day manger, and the performance of your departments as a whole?
BOOK: Becoming Agile in an Imperfect World by Greg Smith and Ahmed Sidky
It's never easy to bring Agile into an existing organization with established people and practices. Learn practical techniques and strategies to move from your existing process to an Agile process—without starting from scratch!
FREE RECORDED WEBINAR: An Overview of Agile by Sonja Almlie
Gain knowledge about the agile approach, and how incorporating agile techniques and tools into projects can improve product delivery, team productivity, and stakeholder satisfaction.
BOOK: PM the Agile Way: Making it Work in the Enterprise by John C. Goodpasture
Written for experienced PMs, architects and systems analysts comfortable in traditional methods of PM, but required to learn agile for software projects. Also offers an understanding of making agile work in the enterprise.
For Corporate Pricing or to Schedule a Training Needs Assessment, Please Contact:
Ken Mulcahy • Onsite Training Specialist • (952) 846-4484 x410 • firstname.lastname@example.org
* Discounts Available for Federal, State and Local Government Agencies
Request More Information
|Audience:||Team Members, ScrumMasters, Engineers & Developers|
|Duration:||2 Days – 8:00 am to 4:00 pm|