Tarkvaraviga
Tarkvaraviga on probleem arvutiprogrammi koodis, mis paneb selle halvasti tööle. Need võivad tekitada kasutajale ebamugavusi ja panna arvuti kokku kukkuma või külmutama. Enamikul arvutiprogrammidel on vigu. Programmi, millel on suur hulk vigu (või võib-olla üks või paar tõsist viga), nimetatakse vigaseks.
Enamik vigu on põhjustatud arendaja halvast programmeerimisest, kuid mõnikord võivad need olla põhjustatud ka kompilaatori probleemidest. Kui vigu leitakse, saadavad inimesed arendajale veateate, et rääkida neile veast ja lasta neil seda parandada.
Mõnikord ütlevad inimesed, et nende arvutis on viga, kui sellega on midagi valesti. Probleemi põhjuseks on tavaliselt arvutiviirus, mis on nende arvutit nakatanud ja muudab selle aeglaseks või teeb erinevaid asju.
Mõned vead on kahjutud, näiteks paljud videomängud lubavad objektidel valesti läbi seinte liikuda. Teised vead on tõsisemad, näiteks viga navigatsioonisüsteemis, mis põhjustab lennuki plahvatuse.
Vigade tüübid
Puhvri ülevool
Puhvri ülevool juhtub siis, kui programm kirjutab või loeb mälupiirkonda, millele ta ei tohiks ligi pääseda.
Aritmeetiline ülevool
Aritmeetiline ülevool juhtub siis, kui muutujas sisalduv arv suureneb üle suurima arvu, mida muutuja lubab. See põhjustab tavaliselt selle arvu nullini nullimist.
Lõputu tsükkel
Lõputu tsükkel tekib siis, kui programm siseneb tsüklisse (mitu korda korduv käskude seeria) ja sellest tsüklist ei ole väljapääsu. See võib põhjustada programmi seiskumise.
Ümberringlusvead
Kui ujukoma muutuja ei ole piisavalt täpne, võib sellesse salvestatud arv olla ebatäpne. See võib sõltuvalt programmi tüübist põhjustada mitmesuguseid probleeme, näiteks võib see põhjustada navigatsiooniprogrammi navigeerimist soovimatusse kohta või moonutatud heli helisalvestusprogrammis.
Jagamine nulliga
Jagamine nulliga on kehtetu matemaatiline operatsioon. Kui programm jagab täisarvu nulliga, kukub see kokku. Linuxis kuvatakse selle vea ilmnemisel teade "floating point exception", kuigi tegemist ei ole ujukomaarvudega. Ujukomaarvutus võimaldab mõnikord jagamist nulliga. Selle tulemuseks on tavaliselt eriline "ei ole arv" väärtus.
Lõikeprobleemid
Videomängudes tekivad kärpimisprobleemid, mida nimetatakse ka kokkupõrke tuvastamise probleemideks, kui objekt läbib takistust (näiteks seina, põrandat või lage), millest see ei olnud ette nähtud läbida. See on väga levinud viga, mida leidub paljudes videomängudes. See võib juhtuda näiteks Doom 2-s, kui purustatud koletis äratatakse üles arhivaali poolt. Clipping-probleeme võib sageli kasutada aja kokkuhoiu taktikana speedruns'is, näiteks Super Mario 64-s on võimalik vahele jätta lossi keerdtrepist üles kõndimine, hüpates läbi lae.
Turvahäired
Turvahäired on vead, mis võimaldavad sissetungijal kas pääseda arvutisse või põhjustada arvuti kokkuvarisemise. Arvuti kokkuvarisemise põhjustamist nimetatakse teenusetõkestusrünnakuks. Turvahäireid peetakse eriti oluliseks parandada, sest need võivad võimaldada sissetungijatel varastada olulist teavet, näiteks krediitkaardi numbreid või paroole. Turvahäirete näideteks on Heartbleed ja Shellshock.
Misbugs
Viga on viga, mida on kasutatud funktsioonina. Näiteks võib olla viga Android-telefonis, mis võimaldab kasutajatel saada root-juurdepääsu.
Riistvara vead
Mõned vead mõjutavad tarkvara asemel riistvara (arvuti füüsilisi osi). Näiteks käsu lock cmpxchg8b eax
käivitamine vanadel Pentium-protsessoritel põhjustab protsessori töö seiskumise kuni taaskäivitamiseni. Kuna riistvaravigad on füüsilised disainivigad, ei saa neid tarkvarauuendusega parandada, kuigi tarkvara uuendamisega võib olla võimalik viga vältida (varjata).
Küsimused ja vastused
K: Mis on tarkvaraviga?
V: Tarkvaraviga on probleem arvutiprogrammi koodis, mis põhjustab selle ebaõiget tööd.
K: Millised on tarkvaravea tagajärjed?
V: Tarkvaraviga võib põhjustada kasutajale ebamugavusi ja panna arvuti kokku kukkuma või külmutama.
K: Kas kõikides arvutiprogrammides on vigu?
V: Jah, enamikus arvutiprogrammides on vigu.
K: Mis on vigane programm?
V: Vigane programm on programm, millel on suur hulk vigu või võib-olla üks või paar tõsist viga.
K: Kes vastutab enamiku arvutiprogrammide vigade eest?
V: Enamik vigu on põhjustatud arendaja halvast programmeerimisest, kuid mõnikord võivad neid põhjustada ka kompilaatoriprobleemid.
K: Mida inimesed teevad, kui nad leiavad arvutiprogrammis vea?
V: Kui vigu leitakse, saadavad inimesed arendajale veateate, et rääkida neile veast ja lasta neil seda parandada.
K: Mida mõtlevad inimesed, kui nad ütlevad, et nende arvutis on viga?
V: Kui inimesed ütlevad, et nende arvutis on viga, siis tähendavad nad tavaliselt, et arvutis on midagi valesti, mille põhjuseks on tavaliselt arvutiviirus, mis on nakatanud nende arvuti ja muudab selle aeglaseks või teeb erinevaid asju.