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
-
Articles
(2012-01-11) -
New Article, "Succeeding With and Sustaining TDD"
(2012-01-11) -
New Agile in a Flash card/blog entry, "Test Abstraction Smells"
(2012-01-11) -
New Article, "Unit Tests Are FIRST"
(2012-01-11) -
Quotes From Our Students
(2011-12-19) -
New Blog Entry, "Test-Driving a Heap-Based Priority Queue"
(2011-11-09) -
Pragmatic Software Development Solutions
(2011-11-09)

