Hosted by:
Unit testing expertise at your fingertips!
Home | Discuss | Lists

course outline


High quality automated unit tests are one of the key development practices that enable incremental development and delivery of software. XUnit is the generic name given to the family of tools/frameworks used by developers when developing automated unit tests. JUnit, NUnit, MsTest and CppUnit are some of the better known members of the family.

This 2 or 3 day course provides the participants with a vocabulary of test smells and patterns with which to elevate their craft when writing test code. These smells give them a way to reason about the quality of their test code as well as a set of reusable test code design patterns that can be used to eliminate the smells. It also describes techniques for choosing the right set of tests and how to organize the test code including naming standards.

While the course is designed to be equally applicable to test-driven and test-after styles of development, the interplay between when the tests are written and how the system is designed for testability (and how this impacts one's test automation strategy) is highlighted to help participants to make an informed choice.


The participant should finish with a better understanding of why automated unit tests help us build better quality software with a lower life-cycle cost and how to design and code the tests to achieve this outcome in a consistent and predictable fashion.

Course Content

Testing for Developers with xUnit introduces basic testing and test automation techniques, including:

The 2-day course consists of 10 modules covering a broad range of topics concluding with testing indirect inputs and outputs. The 3 day course adds modules on Design-for-Testability, Testing Legacy Code and Test-Driven Development. A more detailed outline is available in http://outline.xunittraining.com. While the course is largely process agnostic, that is, it applies equally well to Test-Driven Development and Test-After Development, it does talk about the advantages of automating tests before the software is written and debugged.

Each module starts with a presentation on the topic followed by a hands-on exercise. Participants are strongly urged to work in pairs as this results in faster learning and less frustration. Each exercise is followed by a discussion about what was experienced during the exercise. Time is split roughly 50/50 between theory/presentation/discussion and hands-on test coding exercises. The exercises are currently available in Java, C# and C++. Additional languages could be added given sufficient demand.

For on-site delivery, the standard course can be customized to suit your specific needs. For example, it can augmented with additional modules on advanced topics such as Test Strategy, and Data-Driven Tests as described in Gerard's book, "xUnit Test Patterns-Refactoring Test Code" and with modules on using tools such as FIT, JBehave or Cucumber to do keyword and data-driven functional test automation.


Learning Objectives

Participants should leave the course with at least a basic understanding of:

Page generated at Wed Feb 09 16:39:23 +1100 2011

Copyright © 2003-2008 Gerard Meszaros all rights reserved

All Categories
Introductory Narratives
Web Site Instructions
Code Refactorings
Database Patterns
DfT Patterns
External Patterns
Fixture Setup Patterns
Fixture Teardown Patterns
Front Matter
Result Verification Patterns
Test Double Patterns
Test Organization
Test Refactorings
Test Smells
Test Strategy
Value Patterns
XUnit Basics
xUnit Members
All "Web Site Instructions"
About the Author
Book Outline Diagrams
Book Outline
ClearStream Consulting
course outline
Gerard Meszaros
Gerard's Papers, Classes and Tutorials
Gerard's Presentations
Larger picture of cover
XUnit Test Patterns