Tillbringa hur mycket tid som helst på att arbeta eller spela på datorer och snart kommer du att höra tre ord om: felsökning, testning och felsökning. Även om de två första är vanliga nog kan deras betydelser verka suddiga eller till och med synonyma. I praktiken är var och en av dessa åtgärder olika, även om de är relaterade.
Felsökning är slutanvändarens och kundsupportteknikerns elände och börjar när mjukvara eller hårdvara inte fungerar som förväntat, vilket ger ett oväntat eller på annat sätt otillfredsställande resultat. I många fall är användarfelet felet.
Det första steget i felsökning är att täcka grunderna. Är programvaran eller hårdvaran korrekt installerad? Är den korrekt konfigurerad? Har du läst manualen och följt alla instruktioner? Kanske har du ändrat något i ditt system som utlöste problemet? Har du använt den här produkten hela tiden, eller är det en nyinstallation?
Om det är en ny installation kan du nästan vara säker på att problemet ligger i installationsprocessen, särskilt när det gäller hårdvara. Hårdvara kräver en enhetsdrivrutin (mjukvarufil) som fungerar som en brygga eller gränssnitt mellan hårdvaran och operativsystemet. Om drivrutinen misslyckas kan hårdvaran inte kommunicera korrekt med andra systemkomponenter. Enhetsdrivrutiner kanske inte finns eller kan ha installerats i fel ordning i förhållande till enheten.
Om problemet ligger i hårdvara som fungerade perfekt fram till nu, kan korruption av drivrutinen vara orsaken. Om du installerar om drivrutinen kan problemet lösas. En uppdaterad drivrutin kan också göra susen. Andra gånger, om du sätter tillbaka en komponent i moderkortet genom att stänga av datorn, extrahera komponenten och sedan installera om den tar det hand om problemet.
Felsökning av hårdvara i Windows™-operativsystem är också tillgängligt via Enhetshanteraren och hjälpmenyerna. Ett gult utropstecken bredvid en komponent i Enhetshanteraren indikerar ett problem.
Programvara som börjar bete sig dåligt kan också vara skadad. Ominstallation kan ibland hjälpa, men om ett program började fungera efter att ny, orelaterade programvara installerades, kan det finnas en konflikt mellan de två. Brandväggar och antivirusprogram är ökända för att inte spela ihop snyggt, och det är förmodligen klokt att hålla sig till bara ett program i var och en av dessa kategorier om du inte är en avancerad användare.
Felsökning i allmänhet innebär vanligtvis att läsa manualer eller hjälpfiler, gå igenom grunderna för att eliminera användarfel som en potentiell orsak och använda en sökmotor för att undersöka hur andra har löst problemet. Om det är något du alltid kan räkna med som slutanvändare så är det att någon har gått i dina skor tidigare. Internetgemenskapen är väldigt bra på att ge hjälp, och i de flesta fall kan man hitta svar genom noggrann sökning.
Testning är föregångaren till felsökning. Testning är vanligtvis programmerares och avancerade användares styrka och sker när en produkt är ny eller håller på att uppdateras och måste genomgå sina steg för att eliminera potentiella problem. Testning identifierar ”buggar” eller brister så att de kan korrigeras i felsökningsprocessen, innan [nästa] officiella release av produkten. Dessa ”inofficiella” utgåvor kallas betaversioner (t.ex. 3.0b), och offentliga volontärer kallas betatestare.
Betatestning är en värdefull resurs för mjukvaruutvecklare på grund av de olika datorsystemen som deltar, i kombination med det stora antalet timmar och scenarier som programmet används under. Detta rensar bort oförutsedda problem på ett sätt som inte kan uppnås effektivt med enbart interna felsökningsverktyg. Betatestfasen ger författare en god uppfattning om hur beredskap en produkt är för det offentliga området.
Hårdvara är betatestad också, men eftersom det är ekonomiskt oöverkomligt att tillhandahålla gratis beta-hårdvara till allmänheten, görs hårdvarutestning och felsökning vanligtvis i egen regi. Betaprodukter kan dock premiärvisas och i vissa fall distribueras i begränsat antal till branschinsiders vid konferenser som COMDEX.
Betaprogramvara är specifikt tillgänglig för testning och anses inte vara en stabil utgåva. Betatestare installerar betaprogramvara på egen risk, och för att hjälpa mjukvaruutvecklare att identifiera källan till ett problem måste de tillhandahålla en sund mängd information när de rapporterar ett fel. Data som krävs varierar men inkluderar i allmänhet systemspecifikationer, betaversion och version, de exakta förhållandena under vilka buggen inträffade och innehållet i felmeddelandet.
Debugging är programmerares och utvecklares styrka, och innebär att man fixar själva koden i programvaran för att eliminera fel eller buggar. Utvecklare försöker replikera beta-rapporterade buggar på egna system i syfte att eliminera dem.
Även om det finns många typer av felsökningsverktyg, är ett enkelt exempel ett verktyg som låter programmeraren övervaka programkoden samtidigt som den manipulerar den för att utföra olika kommandon och rutiner. Ett grundläggande tillvägagångssätt är att förenkla koden så mycket som möjligt på den misstänkta oroliga platsen, samtidigt som man replikerar problemet och begränsar fokus till potentiella problemlinjer. I verkligheten är felsökning en komplex process som kräver olika tillvägagångssätt baserat på faktorer som komplexiteten och längden på själva mjukvarukoden och språket den är skriven med.
Felsökning kan vara en tröttsam uppgift, även om vissa språk är lättare att felsöka än andra. Java innehåller till exempel rutiner som hanterar undantagsfel. Ett undantagsfel uppstår när programmet stöter på en situation som måste åtgärdas innan programmet kan fortsätta på rätt sätt. I det här fallet initierar en inbyggd rutin en ”sökning” inom de olika lagren av programvarukod, och letar efter ett svar på problemet. Om en fix inte kan hittas uppstår ett allvarligt undantagsfel och programmet stängs av. Det resulterande felmeddelandet kan innehålla en minnesadress eller någon annan kryptisk data som inte hjälper användaren men som kan vara värdefull för felsökning. Välskrivna program bör inte ha fatala fel.
Äldre programmeringsspråk som C eller assembly är inte lika transparenta och hanterar inte fel så effektivt. Felsökningsprogram skrivna på dessa språk kan testa felsökarens färdigheter och tålamod.
Tack och lov för slutanvändaren har kommersiellt tillgänglig programvara redan felsökts på stora brister. På grund av just denna anledning faller de flesta problem som slutanvändaren stöter på inom ramen för felsökning och kan fixas med tidigare nämnda metoder. Vid de tillfällen som en slutanvändare stöter på en bugg kan genomgång av felsökning avslöja en lösning tills buggen fixas av utvecklaren.
När du ber om hjälp på ett webbforum eller en nyhetsgrupp, se till att göra dina läxor i förväg. Felsökning är tidskrävande och människor som frivilligt ställer upp med sin hjälp uppskattar någon som har ansträngt sig för att hitta svar. Att fråga om ett problem som har ställts och besvarats upprepade gånger kommer inte att vinna dig vänner och anses vara dålig nätetikett.