Browse Courses

Test Driven Development and Refactoring

Email this Page    Print-Friendly Version

Summary:
This is a practical and hands on workshop that focuses on two core Agile practices; refactoring and test driven development (TDD). Agile software development methods require a high degree of skill in keeping code robust as it evolves incrementally through iterations and changes in response to feedback from stakeholders and users.TDD is an Agile practice to support continuous testing of development code using tools such as JUnit and XUnit, which are used to develop "self-testing" code for unit testing, and FitNesse, which is used for acceptance testing. By following the principle of writing the tests first, design and development are driven to cleaner architectures that meet the user expectations and keep code clean and easier to maintain.Refactoring is the practice of keeping the code base clean and robust by changing it without harming it - changing its structure without causing unexpected changes in its functionality. Refactoring works in conjunction with TDD in the Agile methods by allowing test results from the TDD process to drive code changes and, in turn uses TDD to ensure that refactorings are robust.

Duration:
3 Days/Lecture & Lab

Audience:
This course is designed for experienced OO programmers.

Topics:

  • Recognize poor code constructs
  • Improve designs in small safe steps
  • Use the xUnit framework (Junit, Nunit, or CppUnitLite)
  • Use "intention" to drive object interface design
  • Perform test -first programming of object clusters
  • Know how and when to use Mock objects and other testing patterns
  • Know how and when to refactor when growing systems test-first
  • Write executable requirements
  • Understand Unit and Acceptance Tests
  • Write Acceptance Tests using FitNesse
  • Keep the system running

Prerequisites:
Students should have experience writing C++ or Java code. Experience with testing concepts is useful but not necessary.




Last Update: May 23, 2013