Check is a unit testing framework for C. It features a simple interface
for defining unit tests, putting little in the way of the developer.
Tests are run in a separate address space, so Check can catch both
assertion failures and code errors that cause segmentation faults or
other signals. The output from unit tests can be used within source
code editors and IDEs..
Check was inspired by similar frameworks that currently exist for
most programming languages; the most famous example being JUnit for
Java ( http://www.junit.org/ - www.junit.org ). There is a
list of unit testing frameworks for multiple languages at http://www.xprogramming.com/software.htm - 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:
- 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.
- They help the developer think early about aberrant cases, and
code accordingly.
- By providing a documented level of correctness, they allow the
developer to refactor (see http://www.refactoring.com/ - 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.
|