Hrošči in razhroščevanje

Programiranje je človeško opravilo, ljudje pa smo zmotljivi. Napakam, ki se prikradejo v naše programe, pravimo hrošči. Izraz izvira še iz časov, ko so bili računalniki veliki kot omare. Nekoč je v enega od njih prilezel dejanski hrošč, ki je povzročil pregrevanje vezja in s tem napačno delovanje.

Hrošč ni nujno posledica neprevidnosti. Lahko pride do tega, da preprosto pozabimo na nek poseben primer, kot se nam je zgodilo pri programu za računanje povprečne hitrosti hitrost2.py, ko nismo upoštevali (sicer neobičajne, a povsem smiselne) možnosti nočnega kolesarjenja:

Koliko km si prevozil(a)? 10
Vnesi uro začetka: 23
Vnesi minuto začetka: 50
Vnesi uro konca: 0
Vnesi minuto konca: 20
Vozil(a) si s povprečno hitrostjo -0.425531914894 km/h.

Razhroščevanja (odpravljanja napak) se najlažje lotimo z vstavljanjem vmesnih izpisov. Pri našem programu bi lahko izpisali vrednost spremenljivke porabaCasaVMin in bi hitro videli, da je nekaj narobe, saj bi bila negativna (glej program na desni, vrstica 12).

Vmesni izpisi pridejo prav tudi pri pogojnih stavkih:

if vseJeVRedu:
  print('Juhuhu, vse je v redu!')
  ...
else:
  print('Ojej, nekaj smrdi!')
  ...


Izvedi Počisti



Smiselno postavljeni vmesni izpisi so izjemno močno programersko orodje, včasih pa nam vendarle koristijo posebni programi za razhroščevanje, ki nam omogočajo izvajanje programa po korakih, spremljanje vrednosti spremenljivk med izvajanjem, pa še marsikaj.

Vaja