Per una risposta completa a questa domanda, sopporterei l'idea di "affidabilità del codice" e penserei invece a "affidabilità del progetto", poiché il codice è solo l'espressione finale del progetto.
Quindi, inizia con i requisiti e scrivi e ispeziona quelli. Se non disponi di un documento sui requisiti, indica una riga di codice casuale e chiediti "perché è necessaria quella riga?" La necessità di qualsiasi riga di codice dovrebbe eventualmente essere riconducibile a un requisito, anche se è semplice / ovvio come "l'alimentatore deve emettere 5 V CC se l'ingresso è compreso tra 12 e 36 V CC". Un modo di pensare a questo è che se quella riga di codice non può essere ricondotta a un requisito, come fai a sapere che è il codice giusto o che è necessario?
Successivamente, verifica il tuo design. Va bene se è completamente nel codice (ad esempio, nei commenti), ma ciò rende più difficile sapere se il codice sta facendo ciò che realmente si intende. Ad esempio, il codice potrebbe avere una riga che legge output = 3 * setpoint / (4 - (current * 5));
È current == 4/5
un input valido che potrebbe causare un arresto anomalo? Cosa si dovrebbe fare in questo caso per evitare la divisione per zero? Eviti del tutto l'operazione o degrada invece l'output? Avere una nota generale nel documento di progettazione su come gestire tali casi limite rende molto più semplice verificare il progetto a un livello superiore. Quindi, ora l'ispezione del codice è più semplice perché si tratta di verificare se il codice implementa correttamente tale progetto.
Oltre a ciò, l'ispezione del codice dovrebbe verificare la presenza di errori comuni che il tuo IDE non rileva (stai usando un IDE, giusto?) Come '=' quando intendevi '==', parentesi graffe mancanti che cambiano il significato di 'if ", punti e virgola dove non dovrebbero essere, ecc.
Mentre scrivo, mi viene in mente che è davvero difficile riassumere anni di formazione / esperienza sulla qualità del software in un singolo post. Scrivo codice per dispositivi medici e quanto sopra è un sommario estremamente semplificato di come lo affrontiamo.