Debugging hänvisar till en process i mjukvaruutveckling där programanalytiker söker igenom datorkod och letar efter ”buggar” – källan till fel, brister eller säkerhetshål i de interna programinstruktionerna. Hårdvaruutveckling går också genom felsökning för att säkerställa kompatibilitet med nuvarande hårdvarustandarder och interoperabilitet mellan komponenter som följer samma protokoll. Dessutom garanterar felsökning att hårdvara och mjukvara är bakåtkompatibel, eller kommer att samexistera med redan existerande standarder som fortfarande kan användas.
Programvarufelsökning sker i två faser. Den första fasen är känd som ”alfa-testning” och utförs internt innan programvaran offentliggörs. Den andra fasen genomförs genom en offentlig process som kallas ”beta-testning.” Betatestare är frivilliga datorentusiaster som använder betaprogramvara på egen risk under överenskommelse om att fel eller problem kommer att rapporteras till utvecklare.
Eftersom buggar måste isoleras och identifieras innan de kan korrigeras, är det första steget att testa programvaran under olika förhållanden. När en bugg avslöjar sig själv, noterar debuggern de exakta förhållandena under vilka buggen uppstod, inklusive den aktuella funktionen, operativsystemstyp och version och andra program- eller hårdvarukomponenter som kan vara relevanta. Offentliga betatestare skickar in detaljerade rapporter online med relevanta detaljer i enlighet därmed, vanligtvis genom att fylla i ett fördesignat formulär.
När båda felsökningsfaserna är klara är programvaran redo för en allmän utgåva som en stabil version. Men felsökningen fortsätter som ett underhållsprotokoll under produktens livslängd, vilket intensifieras med stora uppgraderingar.
Hårdvara felsöks innan den når marknaden och genomgår inte betatestning i verkligheten i sig, eftersom detta skulle vara för dyrt och problematiskt av ett antal ganska uppenbara skäl. Istället tillhandahåller de flesta hårdvarutillverkare ett onlinegränssnitt där användare kan få teknisk support eller rapportera problem med hårdvaran. I många fall visar sig dessa problem vara användarfel, men processen tjänar också till att avslöja buggar som inte fångades upp i den inledande felsökningsfasen. Debuggers kan gå tillbaka till instruktionerna som är kodade i de styrande chipsen och göra ändringar för att befria hårdvaran från buggarna. Tillverkaren kan sedan tillhandahålla en firmware-uppgradering som användare kan ladda ner online för att uppdatera sin hårdvara.
Även om intern felsökning säkerligen kan befria mjukvara och hårdvara från många buggar, ersätter ingenting verkliga tester. Det är praktiskt taget omöjligt för en författare eller tillverkare att replikera alla tänkbara villkor och system under vilka hårdvaran eller mjukvaran kommer att användas. Många erfarna IBM-PC-användare väntar i en period på 12-36 månader innan de migrerar till ett nytt operativsystem av denna anledning, till exempel att byta från Windows™ XP™ till Windows Vista™. Detta ger gemenskapen tid att identifiera eventuella större säkerhetsproblem, buggar eller andra initiala problem som kan kräva felsökning och korrigering.