Debuggaus

Debuggaus eli virheenjäljitys on ohjelmistotuotannon osa, jossa testauksessa löytyneen virheellisen toiminnan aiheuttanut virhe paikallistetaan. Virheenjäljitykseen voidaan käyttää apuna debuggeria. Termiä käytetään usein virheellisesti testauksesta puhuttaessa.

Virheenjäljitys on tiedon etsimistä, jossa haetaan vastauksia mitä ohjelma tekee tietyllä hetkellä, miten se on päätynyt tiettyyn tilanteeseen sekä miten kauan kestää suorittaa tietty operaatio tai joukko operaatioita.[1] Debuggauksen aikana voidaan tarvita esimerkiksi laitteiston simulaatiota tai prototyyppejä laitteistosta.[2] Sulautetun järjestelmän debuggaus voi erota merkittävästi pelkän laitteiston tai ohjelmiston debuggauksesta.[3]

Testauksessa havaitut ongelmakohdat raportoidaan virheinä, jolloin virheenjäljityksellä etsitään virheen aiheuttaja (vian syy). Tämän jälkeen voidaan tehdä päätös korjaamisesta, joka voi tapauksesta riippuen olla yksinkertaista tai vaatia suurempia muutoksia. Virheen aiheuttaja voi olla myös konfiguraatiovirhe, jolloin ohjelma ei välttämättä tarvitse lainkaan muutoksia.

Virheiden korjaaminen ja paikallistaminen (ohjelmisto)järjestelmistä on usein hankalaa ja aikaa vievää toimintaa. Monet virhetilanteet esiintyvät vain harvinaisissa erikoistilanteissa, joiden toistaminen tai matkiminen voi olla vaikeaa tai jopa mahdotonta ”laboratorio-olosuhteissa”. Useissa nykyisin käytettävissä moderneissa ohjelmointikielissä ja ajoympäristöissä ongelmaa on helpotettu mahdollistamalla vianetsintää helpottavien lisätietojen upottaminen varsinaisen ohjelmakoodin sekaan. Lisätiedot voidaan tarvittaessa tulostaa ajonaikaiseen lokiin tai näyttää erityisessä virheenjäljityssovelluksessa, joka mahdollistaa myös ajon hallitun keskeyttämisen, käsky kerrallaan askeltamisen ja erilaisten tilatietojen tarkastelun sekä muuttamisen.

Kaupallisessa ohjelmistotuotannossa virheiden havaitseminen ja korjaaminen pyritään suorittamaan mahdollisimman aikaisessa vaiheessa ennen ohjelmiston julkaisua. Testaus- ja julkaisuprosessi riippuu käytettävästä prosessimallista, mutta yleinen käytäntö on suorittaa riittävän kattava testaus ja korjaaminen ohjelmiston kehitysvaiheessa ja julkaista ohjelmistosta julkaisuehdokas (yleisesti käytetään termejä beeta-versio tai Release Candidate), jota suunnitellut loppukäyttäjät voivat testata. Kaikki havaitut virheet raportoidaan ja todetaan mahdollisuuksien mukaan joko ominaisuuksiksi tai virheiksi ja luokitellaan sen mukaisesti. Kun kaikki havaitut virheet on korjattu, ohjelmistosta tehdään varsinainen julkaisu. Jos julkaisun jälkeen havaitaan virheitä, ne korjataan normaaliin tapaan ja jossain vaiheessa ohjelmistosta julkaistaan päivitetty versio.

  1. Hardware-Assisted Debugging embedded.com. 24.9.1991. Viitattu 14.10.2022. (englanniksi)
  2. Debugging at the hardware/software interface embeddedcomputing.com. 1.6.2012. Viitattu 14.10.2022. (englanniksi)
  3. Debugging Techniques (PDF) web.engr.oregonstate.edu. Viitattu 14.10.2022. (englanniksi)

Developed by StudentB