Google
 

Tuesday, March 27, 2007

A Good unit testing framework for C:Check

REF: http://check.sourceforge.net/

Check: A unit testing framework for C

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 (www.junit.org). There is a list of unit testing frameworks for multiple languages at 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 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.


Check can be dowloaded from here.
--
Happy day, happy life!

No comments: