Provedite bilo koju količinu vremena radeći ili igrajući se na računalima i uskoro ćete čuti tri riječi o: rješavanju problema, testiranju i otklanjanju pogrešaka. Iako su prva dva dovoljno uobičajena, njihova značenja mogu se činiti zamagljenima ili čak sinonimima. U praksi je svaka od ovih radnji drugačija, iako povezana.
Rješavanje problema je propast za krajnjeg korisnika i tehničara korisničke podrške, a počinje kada softver ili hardver ne rade kako se očekivalo, dajući neočekivani ili na neki drugi način nezadovoljavajući rezultat. U mnogim slučajevima je greška korisnika.
Prvi korak u rješavanju problema je pokriti osnove. Je li softver ili hardver ispravno instaliran? Je li ispravno konfiguriran? Jeste li pročitali priručnik i slijedili sve upute? Možda ste promijenili nešto u svom sustavu što je izazvalo problem? Jeste li koristili ovaj proizvod cijelo vrijeme ili se radi o novoj instalaciji?
Ako se radi o novoj instalaciji, gotovo možete biti sigurni da problem leži u procesu instalacije, osobito u slučaju hardvera. Za hardver je potreban upravljački program uređaja (softverska datoteka) koji djeluje kao most ili sučelje između hardvera i operativnog sustava. Ako upravljački program uređaja ne uspije, hardver ne može pravilno komunicirati s drugim komponentama sustava. Upravljački programi možda nisu prisutni ili su instalirani pogrešnim redoslijedom u odnosu na uređaj.
Ako problem leži u hardveru koji je do sada radio savršeno dobro, uzrok bi mogao biti oštećenje upravljačkog programa uređaja. Ponovno instaliranje upravljačkog programa moglo bi riješiti problem. Ažurirani upravljački program također bi mogao učiniti trik. Drugi put, ponovno postavljanje komponente na matičnu ploču isključivanjem računala, vađenjem komponente i ponovnom instalacijom rješava problem.
Rješavanje problema s hardverom u operacijskim sustavima Windows™ također je dostupno putem izbornika Upravitelj uređaja i Pomoć. Žuti uskličnik pored komponente u Upravitelju uređaja označava problem.
Softver koji se počne loše ponašati također može biti oštećen. Ponovna instalacija ponekad može pomoći, ali ako je program počeo raditi nakon što je instaliran novi, nepovezani softver, može doći do sukoba između njih. Vatrozidovi i antivirusni programi poznati su po tome što se ne igraju lijepo zajedno, a vjerojatno je pametno držati se samo jednog programa u svakoj od ovih kategorija osim ako niste napredni korisnik.
Općenito, rješavanje problema obično uključuje čitanje priručnika ili datoteka pomoći, prelazak na osnove kako bi se uklonila korisnička pogreška kao potencijalni uzrok i korištenje tražilice za istraživanje kako su drugi riješili problem. Ako postoji jedna stvar na koju uvijek možete računati kao krajnji korisnik, to je da je netko već bio u vašoj koži. Internetska zajednica je vrlo dobra u pružanju pomoći, a odgovori se u većini slučajeva mogu pronaći marljivim pretraživanjem.
Testiranje je prethodnica otklanjanju pogrešaka. Testiranje je obično jača strana programera i naprednih korisnika, a događa se kada je proizvod nov ili se ažurira i treba ga proći kroz svoje korake kako bi se uklonili potencijalni problemi. Testiranjem se identificiraju “bugovi” ili nesavršenosti tako da se mogu ispraviti u procesu otklanjanja pogrešaka, prije [sljedećeg] službenog izdanja proizvoda. Ova “neslužbena” izdanja poznata su kao beta izdanja (npr. 3.0b), a javni volonteri poznati su kao beta testeri.
Beta testiranje je vrijedan resurs za programere softvera zbog različitih računalnih sustava koji sudjeluju, u kombinaciji s velikim brojem sati i scenarija pod kojima se program koristi. To otklanja nepredviđene probleme na način koji se ne može učinkovito postići korištenjem samo kućnih alata za ispravljanje pogrešaka. Faza beta testiranja daje autorima dobru ideju o spremnosti proizvoda za javnu domenu.
Hardver je također beta testiran, ali budući da je financijski nedovoljno davati besplatni beta hardver javnosti, testiranje i otklanjanje pogrešaka hardvera obično se obavljaju kod kuće. Beta proizvodi bi, međutim, mogli biti premijerno predstavljeni i u nekim slučajevima distribuirani u ograničenom broju insajderima iz industrije na konferencijama kao što je COMDEX.
Beta softver posebno je dostupan za testiranje i ne smatra se stabilnim izdanjem. Beta testeri instaliraju beta softver na vlastitu odgovornost, a kako bi pomogli programerima softvera da identificiraju izvor problema, moraju dostaviti zdravu količinu informacija kada prijavljuju bug. Potrebni podaci variraju, ali općenito uključuju specifikacije sustava, beta verziju i izvedbu, točne uvjete pod kojima se bug dogodio i sadržaj poruke o pogrešci.
Otklanjanje pogrešaka glavna je strana programera i programera i uključuje popravljanje samog koda softvera kako bi se uklonile pogreške ili bugovi. Programeri pokušavaju replicirati beta prijavljene greške na kućnim sustavima u svrhu njihovog uklanjanja.
Iako postoji mnogo vrsta alata za otklanjanje pogrešaka, jednostavan primjer je alat koji programeru omogućuje praćenje programskog koda dok njime manipulira za izvršavanje različitih naredbi i rutina. Jedan od osnovnih pristupa je pojednostavljenje koda što je više moguće na sumnjivom problemskom mjestu, dok se problem još uvijek replicira, sužavajući fokus na potencijalne probleme. U stvarnosti, otklanjanje pogrešaka je složen proces koji zahtijeva različite pristupe temeljene na čimbenicima kao što su složenost i duljina samog softverskog koda te jezik kojim je napisan.
Otklanjanje pogrešaka može biti zamoran zadatak, iako je neke jezike lakše otkloniti od drugih. Java, na primjer, uključuje rutine koje obrađuju pogreške iznimke. Pogreška iznimke nastaje kada program naiđe na situaciju koja se mora riješiti prije nego što program može ispravno nastaviti. U ovom slučaju ugrađena rutina pokreće “pretragu” unutar različitih slojeva softverskog koda, tražeći odgovor na problem. Ako se popravak ne može pronaći, pojavljuje se fatalna pogreška iznimke i program se gasi. Rezultirajuća poruka o pogrešci može uključivati memorijsku adresu ili neke druge zagonetne podatke koji neće pomoći korisniku, ali bi mogli biti vrijedni za otklanjanje pogrešaka. Dobro napisani programi ne bi trebali imati fatalne pogreške.
Stariji programski jezici poput C ili asemblera nisu tako transparentni i ne rješavaju pogreške tako učinkovito. Programi za otklanjanje pogrešaka napisani na ovim jezicima mogu testirati vještine i strpljenje alata za ispravljanje pogrešaka.
Srećom za krajnjeg korisnika, komercijalno dostupan softver već je otklonio velike nedostatke. Upravo iz tog razloga, većina problema s kojima se susreće krajnji korisnik spada u djelokrug rješavanja problema i mogu se riješiti prethodno navedenim sredstvima. U onim slučajevima kada krajnji korisnik naiđe na bug, rješavanje problema može otkriti rješenje sve dok programer ne popravi grešku.
Kada tražite pomoć na web-forumu ili novinskoj grupi, svakako unaprijed napravite domaću zadaću. Rješavanje problema oduzima mnogo vremena, a ljudi koji dobrovoljno prikažu njihovu pomoć cijene nekoga tko se potrudio pronaći odgovore. Raspitivanje o problemu na koji se više puta postavljao i na koji je odgovoreno neće vam pridobiti prijatelje i smatra se lošim etiketom.