[ << ] [ < ] [ Up ] [ > ] [ >> ]         [Top] [Contents] [Index] [ ? ]

1 Introduction

Check is a unit testing framework for C. It was inspired by similar frameworks that currently exist for most programming languages; the most famous example being JUnit for Java. There is a list of unit test frameworks for multiple languages at http://www.xprogramming.com/software.htm. Unit testing has a long history as part of formal quality assurance methodologies, but has recently been associated with the lightweight methodology called Extreme Programming. In that methodology, the characteristic practice involves interspersing unit test writing with coding (“test a little, code a little”). While the incremental unit test/code approach is indispensable to Extreme Programming, it is also applicable, and perhaps indispensable, outside of that methodology.

The incremental test/code approach provides three main benefits to the developer:

  1. Because the unit tests use the interface to the unit being tested, they allow the developer to think about how the interface should be designed for usage early in the coding process.
  2. They help the developer think early about aberrant cases, and code accordingly.
  3. By providing a documented level of correctness, they allow the developer to refactor (see http://www.refactoring.com) aggressively.

That third reason is the one that turns people into unit testing addicts. There is nothing so satisfying as doing a wholesale replacement of an implementation, and having the unit tests reassure you at each step of that change that all is well. It is like the difference between exploring the wilderness with and without a good map and compass: without the proper gear, you are more likely to proceed cautiously and stick to the marked trails; with it, you can take the most direct path to where you want to go.

Look at the Check homepage for the latest information on Check: https://libcheck.github.io/check/.

The Check project page is at: https://github.com/libcheck/check.

[ << ] [ >> ]           [Top] [Contents] [Index] [ ? ]

This document was generated on August 8, 2020 using texi2html 5.0.