P2.0 (Printing) - 10 May 2012

Second Printing. For a complete list of updates and fixes, please see errata.

P1.0 (Printing) - 07 April 2011

  • First Printing

B11.0 - 09 March 2011

  • Final beta, post-production. Now to typeset and then the printer.

B10.0 - 10 January 2011

  • Final, pre-production beta.

B9.0 - 29 October 2010

New in this release:

  • Added Section 6.2, Why Not Write Tests After the Code?
  • Added Section 6.3, We’ll Have to Maintain the Tests.
  • Added Section 6.4, Unit Tests Don’t Find All the Bugs.
  • Fixed various errata and review comments for: Chapter 6 and Chapter 7

B8.0 - 20 October 2010

New in this release:

  • Added Chapter 14, Test Patterns and Antipatterns.
  • Added Chapter 15, Closing Thoughts.
  • Numerous changes to Chapter 10, The Mock Object, including more code.
  • Unity-fixture additions:
    • Added command line switch support for Unity.
    • Added build/MakefileWorker.mk. This decouples Unity from CppUTest, and making Unity-compatible makefiles is easier now.
    • Some refactoring and reorganizing.
  • Updated CppUTest in code base. Makefiles changed for the improved CppUTest makefile.
  • Fixed various errata.

B7.0 - 09 September 2010

  • Added Chapter 13, Adding Tests to Legacy Code. This chapter gives some guiding ideas on how to add tests to a legacy code base so it can be refactored safely.
  • Unity-fixture additions
  • Added build/MakefileWorker.mk. This makes making unity compatible makefiles easier and decoupled Unity from the CppUTest makefile.

B6.0 - 11 August 2010

New in this release:

  • Added Chapter 12, Refactoring. Refactoring is a critical skill for anyone doing Test Driven Development.
  • Added Section 1.1, Why Do We Need TDD?.
  • Updated CppUTest in code base.
  • Fixed various errata.

B5.0 - 16 July 2010

The following chapters have changed to use a C-Only test harness (Unity), and there are other significant changes:

  • Chapter 2, Test Driving Tools and Conventions
  • Chapter 3, Starting a C Module
  • Chapter 4, Testing Your Way to Done

There are three new appendices:

  • Appendix D, Unity Quick Reference
  • Appendix E, CppUTest Quick Reference
  • Appendix F, Code Examples

B4.0 - 03 June 2010

  • The SOLID design principles, used widely to keep Object Oriented Designs clean and flexible, can be applied to C to help keep it clean and flexible. Chapter 11, SOLID Testable Designs in C, describes SOLID and shows how to apply these principles in C.
  • CppUTest is now part of the code download, ready for a fast start.
  • Changes to Appendix B.

B3.0 - 06 May 2010

In Chapter 10, The Mock Object, we get right next to the silicon to demonstrate how a device driver can be tested right from the manufacturer’s spec. The complex interactions of the driver with the device provide a good opportunity to pull a self-verifying Mock Object out of the test-driven developer’s tool kit.

B2.0 - 19 April 2010

Beta 2.0 includes the new Chapter 9, Runtime Bound Test Doubles. See how and why function pointers are used for binding test doubles at runtime, giving you more flexibility for intercepting calls from the code under test.

B1.0 - 31 March 2010

  • First beta