Чтобы получить полный ответ на этот вопрос, я бы подавил мысль о «надежности кода» и вместо этого подумал бы о «надежности дизайна», потому что код - это только окончательное выражение дизайна.
Итак, начните с требований и напишите и осмотрите их. Если у вас нет документа с требованиями, укажите случайную строку кода и спросите себя: «Зачем нужна эта строка?» Потребность в любой строке кода должна в конечном итоге быть прослеживаемой до требований, даже если это так просто / очевидно, как «источник питания должен выдавать 5 В постоянного тока, если входное напряжение находится в пределах 12-36 В постоянного тока». Один из способов думать об этом заключается в том, что если эту строку кода нельзя отследить до требования, то как вы узнаете, что это правильный код или он вообще нужен?
Далее проверьте свой дизайн. Это нормально, если он полностью находится в коде (например, в комментариях), но это затрудняет понимание того, выполняет ли код то, что на самом деле имеет в виду. Например, код может иметь строку, которая гласит: output = 3 * setpoint / (4 - (current * 5));
Является current == 4/5
ли допустимый ввод, который может вызвать сбой? Что нужно сделать в этом случае, чтобы предотвратить деление на ноль? Вы вообще избегаете операции или ухудшаете выход? Наличие общего примечания в вашем проектном документе о том, как обрабатывать такие крайние случаи, значительно упрощает проверку проекта на более высоком уровне. Итак, теперь проверка кода стала проще, потому что нужно проверить, правильно ли код реализует этот дизайн.
Наряду с этим, проверка кода должна проверять распространенные ошибки, которые ваша IDE не улавливает (вы используете IDE, верно?), Такие как '=', когда вы имели в виду '==', пропущенные фигурные скобки меняют значение 'if заявления, точки с запятой там, где их не должно быть, и т. д.
Когда я пишу это, мне приходит в голову, что действительно сложно обобщить годы обучения / опыта в области качества программного обеспечения в одном посте. Я пишу код для медицинских устройств, и вышеизложенное представляет собой чрезвычайно упрощенное изложение того, как мы к нему подходим.