--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML>
+ <HEAD>
+ <TITLE>Check: A unit test framework for C</TITLE>
+ </HEAD>
+ <BODY>
+ <H1>Check: A unit test framework for C</H1>
+
+ <P>Check is a unit test 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..</P>
+
+ <P>Check was inspired by similar frameworks that currently exist
+ for most programming languages; the most famous example being
+ JUnit for Java ( <A HREF="www.junit.com">www.junit.com</A>
+ ). There is a list of unit test frameworks for multiple languages
+ at
+ <A
+ HREF="http://www.xprogramming.com/software.htm">www.xprogramming.com/software.htm</A>
+ . 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.
+ <P>The incremental
+ test/code approach provides three main benefits to the developer:
+ <P>
+ <OL>
+ <LI>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.</LI>
+
+ <LI>They help the developer think early about aberrant cases,
+ and code accordingly.</LI>
+
+ <LI>By providing a documented level of correctness, they allow
+ the developer to refactor (see <A
+ HREF="http://www.refactoring.com">www.refactoring.com</A> )
+ aggressively.</LI>
+
+ </OL>
+
+ <P>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.<P>
+
+ <P>Look at the Check homepage for the latest
+ information on Check: <A
+ HREF="http://check.sourceforge.net">http://check.sourceforge.net</A>
+ </P>
+
+ <P>The Check project page is at <A
+ HREF="http://sourceforge.net/projects/check/">http://sourceforge.net/projects/check/</A>
+ </P>
+
+ <P>Check can be dowloaded from <A HREF="http://sourceforge.net/project/showfiles.php?group_id=28255&release_id=37982">here</A>.</P>
+
+ <P>A tutorial introduction to Check can be found <A
+ HREF="example.html">here</A>.</P>
+
+ <A href="http://sourceforge.net"> <IMG
+ src="http://sourceforge.net/sflogo.php?group_id=28255"
+ width="88" height="31" border="0" alt="SourceForge Logo"></A>
+</BODY>
+</HTML>