Bevor die Suche nach Fehlern beginnt, ist es sinnvoll erst einmal Werkzeuge der statischen Codeanalyse einzusetzen. Also noch vor den Unit Tests. Damit verschwinden viele Fehlermöglichkeiten, noch bevor überhaupt ein Fehler auftritt. Tools dazu z.B. für C sind: Secure Programming Lint, QAC oder Polyspace, Weitere Werkzeuge zur statischen Codeanalyse in der Wikipedia.
Links dazu:
http://splint.org
https://de.wikipedia.org/wiki/Statische_Code-Analyse