Otkrivanje i uklanjanje grešaka (eng. Debugging)

Kada se govori o korektnosti/ispravnosti programa, obično se razlikuju:

Sintaksna ispravnost programa podrazumeva da je program zapisan u skladu sa specifikacijom programskog jezika, tj. da su sve naredbe programa ispravne jezičke konstrukcije u odnosu na gramatiku programskog jezika. Tako npr,

If n > 0 Then n = n + 1 Else n = n - 1

je primer sintaksno neispravne konstrukcije u programskom jeziku VBA, dok je

		If n > 0 Then 
		  n = n + 1 
		Else 
		  n = n - 1
		End If

sintaksno ispravna naredba programskog jezika VBA.

Čak i kada je program sintaksno ispravan, to još uvek ne znači da on i radi ono za šta je napisan. U tom slučaju program sadrži greške logičke prirode, tj. programer je tokom pisanja programa pogrešno protumačio značenje (semantiku) pojedinih naredbi koje je napisao. Otkrivanje i ispravljanje semantičkih grešaka je daleko teže od otkrivanja i ispravljanja sintaksnih grešaka. Popularni engleski naziv za semantičku grešku u programu je bug ("buba"). Iako se poreklo tog naziva pripisuje anegdoti o pronađenom insektu kao uzroku kvara jednog od prvih elektronskih računara tokom 40-tih godina XX veka, termin bug, u značenju "kvar, nefunkcionisanje", se koristio u engleskom jeziku i pre pojave elektronskih računara, još u XIX veku za opis mehaničkih kvarova (Wikipedia/Software bug).

Značaj otkrivanja i ispravljanja semantičkih grešaka je vremenom doveo do razvoja posebnih softverskih alata čiji je to zadatak. Da bi se olakšao proces razvoja softvera, danas za razne programske jezike postoje integrisana razvojna okruženja (eng. Integrated Development Environment, IDE) koja u sebi objedinjuju alate za:

  1. unos i uređivanje teksta (naredbi) programa pomoću tastature (eng. text editor)
  2. prevođenje/intepretiranje programa
  3. otkrivanje i ispravljanje sintaksnih grešaka
  4. otkrivanje i ispravljanje semantičkih grešaka (eng. debugger)

Za programski jezik VBA postoji okruženje (Visual Basic Editor, VBE) koje sadrži ugrađen debugger. Jedan od osnovnih načina korišćenja debugger-a je: