Uno dei metodi piu diffusi è lo Unit Testing, che consiste nello scrivere parallelamente al codice, o addirittura prima, dei test che verificano la correttezza del codice; per java c'è JUnit, per C/C++ CppUnit

http://www.junit.org/index.htm
http://cppunit.sourceforge.net/cgi-bin/moin.cgi