This three-day instructor-led course simulates true agile development by mapping user stories to acceptance tests to test-first unit tests through realistic examples and exercises.
Acceptance & Test-Driven Development (A-TDD) Course Details
As a group, the class will start by specifying acceptance criteria for a given set of functionality. These will be translated into acceptance tests that can be automated with tools such as FitNesse or Cucumber. These tests will of course fail at first, which will task the participants, in pairs, to define the system interface specifications in the form of unit tests. This will extract the development of the interface and all subsequent code and design until all unit tests and acceptance tests pass.
A-TDD Learning Outcomes
Extract acceptance criteria from a set of features
Use an acceptance testing tool
Use a unit testing tool
Structure tests with four distinct phases: Setup, Exercise, Verify, Teardown
Develop code using the TDD cycle: Red, Green, Refactor
Use a code coverage tool
Strike a comfortable balance between unit and acceptance testing
Identify the limitations of unit and acceptance testing
Differentiate between Test-Driven Development and Behavior-Driven Development
Design good unit tests that are independent and fast
Separate unit testing from integration testing
Use dummies, stubs, fakes, and mocks as appropriate to achieve test isolation and repeatability
Leverage TDD to build robust object designs
Detect suspicious code (smells)
Apply techniques for refactoring code
Recognize when and how to test existing code (legacy code, untested code)
Who Is the A-TDD Course For?
Object-oriented programmers interested in learning more about agile development methods and best practices.