As a group, the class will start by specifying acceptance criteria for a given set of functionality. These will be translated in to 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.
Object-oriented programmers interested in learning more about agile development methods and best practices.
Participants will learn to:
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)
Don't see the class or size you need? Want another date or location?
Let us know. We can offer private training or even schedule another public class.
Have a large group?
Contact us about group discounts or private training.