Test-Driven Development and Refactoring (3 days)
Audience: programmers. Teaches you the agile practices of TDD and refactoring. Our most popular course! Learn TDD in Java, C#, C++, Ruby, or Python.
- Class size: 10 students minimum, up to 20 maximum
- Prerequisites: at least six months relevant programming experience
Test-driven development (TDD) is an essential programmer skill that allows developers to sustain a high-quality code base. Agile shops everywhere are learning the value of TDD in a fast-paced iterative development environment. But TDD isn't limited to agile shops--you'll find many benefits to using TDD in any environment.
In our most popular course, you'll obtain a solid foundation for doing test-driven development (TDD). You'll also learn the value of continual refactoring, a practice core to TDD and essential to sustaining your investment in your software. Lecture is brief, as we instead emphasize lots of hands-on coding exercises and demonstrations. You'll learn why we consider TDD a design technique, and how to increase the value of the tests you build.
We are usually able to provide exercises using your unit testing tool of choice, whether it be JUnit 3.x, JUnit 4.x, TestNG, RSpec, Test::Unit, CppUnit, CppUnit Lite, Tut, CppUTest, NUnit, or something else.
Topics Covered
Overview of Test-Driven Development xUnit (tool) overview Basic TDD technique - demo and exercises TDD and design Basic "mock" technique - demo and exercise What's the next test? - group exercise Uncle Bob's TPP (overview) Test smells - exercise Refactoring and design Refactoring drivers Code smells Simple design Classic design principles Basic refactoring - demo and exercise Additional catalog refactorings Macro refactoring - demo and exercise Backing into tests Additional mock topics - demos, exercises Mock organization (including self shunt) Mock injection (factory, override) Challenges with mocking When to use and not use Writing tests for legacy code - exercises Acceptance Tests (ATs) and TDD Sustaining TDD
Pricing / Details
Site Search
Latest Changes
-
New blog entry, "Collaborative(Dare I Say Pair?) Writing"
(2012-05-03) -
New blog entry, "Bad Code Examples Promote Bad Habits"
(2012-05-03) -
New blog entry, "TDD for C++ Programmers"
(2012-05-03) -
Articles
(2012-04-27) -
New Agile in a Flash card/blog entry, "Is Your Unit Test Isolated?"
(2012-04-25) -
New blog entry, "Legacy Quadrants for Increasing Confidence Coverage"
(2012-04-04) -
Quotes From Our Students
(2012-04-02)

