Wadą jest trudność w diagnozowaniu subtelnych problemów implementacyjnych.
Testy siłowe
To działania przeprowadzane za pomocą narzędzi zautomatyzowanego losowego testowania (ang. ). Polegają na generacji przypadkowych danych wejściowych i obserwowaniu zachowania programu. Zaletą jest pełna automatyzacja procesu i możliwość ujawnienia bardzo złożonych błędów, np. wynikających z interakcji z systemem operacyjnym. Ich wadą jest niekompatybilność z bardziej skomplikowanymi protokołami komunikacyjnymi (co może prowadzić do odrzucenia wszelkich losowo wygenerowanych sekwencji na bardzo wczesnym etapie obróbki danych przez program).
Najlepsze efekty daje zwykle połączenie kilku spośród tych metod.
Formalne dowodzenie poprawności Dającą potencjalnie największe możliwości, ale współcześnie wciąż nieosiągalną metodą weryfikacji bezpieczeństwa programów jest formalne dowodzenie ich poprawności. W teorii przy szczegółowym opisie oczekiwanego zachowania aplikacji lub platformy oraz danym algorytmie jej działania istnieje potencjalna możliwość wykorzystania systemów automatycznego dowodzenia twierdzeń do zbadania, czy napisany kod spełnia oczekiwania autora.