Debugowanie odnosi się do procesu tworzenia oprogramowania, w którym analitycy programów przeczesują kod komputerowy w poszukiwaniu „błędów” — źródła błędów, wad lub luk w zabezpieczeniach w wewnętrznych instrukcjach programu. Rozwój sprzętu przechodzi również przez debugowanie, aby zapewnić zgodność z aktualnymi standardami sprzętowymi i interoperacyjność między komponentami, które są zgodne z tymi samymi protokołami. Ponadto debugowanie gwarantuje, że sprzęt i oprogramowanie są wstecznie kompatybilne lub będą współistnieć z wcześniej istniejącymi standardami, które mogą być nadal używane.
Debugowanie oprogramowania odbywa się w dwóch fazach. Pierwsza faza jest znana jako „testowanie alfa” i jest przeprowadzana wewnętrznie przed upublicznieniem oprogramowania. Druga faza jest przeprowadzana w publicznym procesie znanym jako „testy beta”. Beta testerzy to dobrowolni entuzjaści komputerów, którzy korzystają z oprogramowania w wersji beta na własne ryzyko, pod warunkiem, że błędy lub problemy będą zgłaszane programistom.
Ponieważ błędy muszą zostać wyizolowane i zidentyfikowane, zanim będą mogły zostać załatane, pierwszym krokiem jest przetestowanie oprogramowania w różnych warunkach. Gdy pojawia się błąd, debuger odnotowuje dokładne warunki, w których błąd się pojawił, w tym bieżącą uruchomioną funkcję, typ i wersję systemu operacyjnego oraz inne komponenty oprogramowania lub sprzętu, które mogą być istotne. Publiczni testerzy wersji beta przesyłają szczegółowe raporty online, podając odpowiednie szczegóły, zazwyczaj wypełniając wstępnie zaprojektowany formularz.
Po zakończeniu obu faz debugowania program jest gotowy do wydania ogólnego jako wersja stabilna. Jednak debugowanie jest kontynuowane jako protokół konserwacji przez cały okres eksploatacji produktu, nasilając się wraz z dużymi aktualizacjami.
Sprzęt jest debugowany, zanim trafi na rynek i sam w sobie nie przechodzi testów beta w rzeczywistych warunkach, ponieważ byłoby to zbyt drogie i problematyczne z wielu dość oczywistych powodów. Zamiast tego większość producentów sprzętu udostępnia interfejs online, w którym użytkownicy mogą uzyskać pomoc techniczną lub zgłosić problemy ze sprzętem. W wielu przypadkach problemy te okazują się błędami użytkownika, ale proces ten służy również do ujawnienia błędów, które nie zostały wykryte w początkowej fazie debugowania. Debugery mogą wrócić do instrukcji zakodowanych w układach sterujących i wprowadzić zmiany, aby pozbyć się błędów sprzętowych. Producent może następnie udostępnić aktualizację oprogramowania układowego, którą użytkownicy mogą pobrać online, aby zaktualizować swój sprzęt.
Podczas gdy wewnętrzne debugowanie z pewnością może usunąć wiele błędów w oprogramowaniu i sprzęcie, nic nie zastąpi testowania w świecie rzeczywistym. Praktycznie niemożliwe jest, aby autor lub producent powtórzył każdy możliwy stan i system, w którym sprzęt lub oprogramowanie będą używane. Wielu doświadczonych użytkowników komputerów IBM-PC czeka z tego powodu przez okres 12-36 miesięcy przed migracją do nowego systemu operacyjnego, na przykład przy przejściu z Windows™ XP™ na Windows Vista™. Daje to społeczności czas na zidentyfikowanie wszelkich poważnych problemów związanych z bezpieczeństwem, błędów lub innych początkowych problemów, które mogą wymagać debugowania i łatania.