Test-Driven Development Workshop

Convert User Requirements Into a Working Implementation—3 Days, 21 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 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. The 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.

Read More

At the completion of this course, students will understand:

  1. Sketching an implementation model from user requirements, emphasizing the assignment of responsibilities to classes, components, and sub-systems.
  2. The TDD Test-Code-Refactor cycle.
  3. Coding by intention, and triangulating to arrive at an optimal solution.
  4. Using unit tests as executable specifications that document the behavior of the code that they test.
  5. Detecting common design deficiencies or “code smells” and improving them through refactoring.
  6. Isolating units to be tested using test doubles and mocking frameworks.
  7. The relationship between user stories, confirmations, acceptance tests, and unit tests.
  • TDD Fundamentals
    • TDD What and Why
    • The Test-Code-Refactor Cycle
    • TDD in an Agile Development Process
  • A Basic TDD Episode
    • A Simple Requirement
    • Writing a First Test by Intention
    • Making the Test Pass
    • Completing the Specification with Triangulation
    • Refactoring to Improve the Design
  • Exercise 1: Test Driving a Story—Part 1 (Code Along with the Instructor)
    • Our Example User Story
    • Sketching an Approach
    • Test Driving the First Confirmation
    • Test Doubles (Mocks, Fakes, and Stubs)
    • Common Refactorings
  • Exercise 2: Test Driving a Story—Part 2 (Code Along with the Instructor)
    • More Confirmations
    • Managing Test and Mock Code
    • Design Principals an Patterns
    • Managing and Hiding Complexity
    • More Refactorings
  • Exercise 3: Test Driving a Story—Part 3 (Code In Pairs)
    • More Confirmations
    • Extending the Solution Safely
    • Clarifying Conversations with the Product Owner
    • Independent Solution Review
  • Unit, Integration, and Functional Tests
    • Leveraging Unit Test Code for Integration Testing
    • The Relationship Between Confirmations, Functional Tests, and Unit Tests
    • Key Collaborations Between Developers, QA, and Product Owner
  • TDD in an Agile Process
    • Automatic Unit Testing During Builds
    • Unit Testing Version Control, and Continuous Integration
    • Defect Elimination Using TDD

Participants should be familiar with the Java programming language and its commonly used libraries and APIs, and at least somewhat familiar with the Eclipse IDE.

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?

Read More

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!

Read More

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.

Read More

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.

Read More

For Corporate Pricing or to Schedule a Training Needs Assessment, Please Contact:

Ken Mulcahy • Onsite Training Specialist • (952) 846-4484 x410kmulcahy@rmcls.com

* Discounts Available for Federal, State and Local Government Agencies

Request More Information

Type: Agile Practices
Audience: Engineers & Developers
Duration: 3 Days – 8:00 am to 4:00 pm
Hours: 21
More Information