Aby uzyskać pełną odpowiedź na to pytanie, odrzuciłbym myśl o „niezawodności kodu”, a zamiast tego pomyślałem o „niezawodności projektu”, ponieważ kod jest tylko ostatnim wyrazem projektu.
Zacznij więc od wymagań, napisz je i sprawdź. Jeśli nie masz dokumentu wymagań, wskaż losowy wiersz kodu i zadaj sobie pytanie „dlaczego ten wiersz jest potrzebny?” Potrzeba dowolnego wiersza kodu powinna być ostatecznie zgodna z wymaganiami, nawet jeśli jest to tak proste / oczywiste, jak „zasilacz powinien wytwarzać napięcie 5 V DC, jeśli napięcie wejściowe wynosi 12–36 V DC”. Jednym ze sposobów myślenia na ten temat jest to, że jeśli tego wiersza kodu nie można prześledzić do wymogu, to skąd wiesz, że jest to właściwy kod lub że w ogóle jest potrzebny?
Następnie sprawdź swój projekt. Jest OK, jeśli jest całkowicie w kodzie (np. W komentarzach), ale to sprawia, że trudniej jest wiedzieć, czy kod robi to, co naprawdę ma na myśli. Na przykład w kodzie może znajdować się wiersz o treści output = 3 * setpoint / (4 - (current * 5));
Czy current == 4/5
prawidłowe dane wejściowe mogą spowodować awarię? Co należy zrobić w tym przypadku, aby zapobiec podziałowi przez zero? Czy unikasz operacji całkowicie, czy zamiast tego degradujesz wyjście? Dzięki ogólnej notatce w dokumencie projektowym dotyczącym obsługi takich przypadków krawędzi znacznie łatwiej jest zweryfikować projekt na wyższym poziomie. Tak więc teraz kontrola kodu jest łatwiejsza, ponieważ chodzi o sprawdzenie, czy kod poprawnie implementuje ten projekt.
Oprócz tego inspekcja kodu powinna sprawdzić typowe błędy, których nie może wykryć IDE (używasz IDE, prawda?), Takie jak „=”, gdy miałeś na myśli „==”, brak nawiasów klamrowych, które zmieniają znaczenie „jeśli „oświadczenia, średniki tam, gdzie nie powinny być itp.
Kiedy to piszę, przychodzi mi do głowy, że naprawdę trudno jest podsumować lata szkolenia / doświadczenia w zakresie jakości oprogramowania w jednym poście. Piszę kod dla urządzeń medycznych, a powyższe jest niezwykle uproszczonym podsumowaniem tego, jak do tego podchodzimy.