Improving
Technical

Acceptance & Test-Driven Development (A-TDD)

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.

Full course description

Loading classes…

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.