Mis on tarkvaraviga?

Tarkvaraviga on mis tahes viga arvutiprogrammi loomiseks kasutatud koodis. Vead võivad olenevalt programmi tüübist ja konkreetsest veatüübist põhjustada väga erinevaid probleeme. Näiteks võivad mõned vead põhjustada programmide hangumise ja töötamise lõpetamise. Teised võivad põhjustada programmi jõudluses tõrkeid, mille tulemusena programm käitub ootamatult. Mõnikord võib tarkvaraviga põhjustada programmi täieliku väljalülitumise.

Enamik programmeerimiseksperte nõustub, et peaaegu võimatu on luua mis tahes suurusega programmi ilma tarkvaravea ilmnemiseta. Keerulisemate programmide puhul suureneb üldiselt vigade tekkimise võimalus. Seda seetõttu, et programmeerijatel võib olla raskem leida kõiki vigu programmides, kus kasutajad saavad teha palju erinevaid toiminguid.

Olemasolevate tarkvaraveaprobleemide leidmiseks teevad programmeerijad üldiselt kõik endast oleneva, et programme hoolikalt enne avalikkusele avaldamist testida. Mõnikord võivad nad isegi palgata spetsiaalseid töötajaid selleks, et tarkvara võimalikult ulatuslikult testida ja tulemustest programmeerijatele teada anda. Isegi kõigi nende kaitsemeetmetega ei avastata paljusid tarkvaravigu enne programmide väljalaskmist.

Mõnel juhul võivad arendajad leida vea, kuid otsustada, et see ei ole piisavalt tõsine, et õigustada tarkvara väljalaske edasilükkamist. Kui see juhtub, võib arendaja programmi välja anda ja seejärel välja töötada värskenduse, mis parandab allesjäänud vead. See on ka tavaline lähenemisviis pärast programmi väljaandmist avastatud vigade käsitlemiseks.

Mõnikord võib programm olla pidevas muutumises, kuna programmeerijad kipuvad aja jooksul lisama rohkem funktsioone. See protsess toob üldiselt iga versiooniga kaasa uusi tarkvaravea probleeme. Sellest võib saada lõputu tsükkel, kus programmeerijad lisavad tarkvarale pidevalt funktsioone ja parandavad vigu. Põhimõtteliselt ei pruugi programm kunagi lõppeda. Selle asemel võib see pidevalt areneda, kogedes samal ajal kasvuvalusid.

Arvutiprogrammi loomine hõlmab programmeerimiskeeltes kirjutatud koodi kasutamist. Arvuti kodeerimise olemus tähendab, et isegi väikesed kirjavead ja sarnased vead võivad kergesti põhjustada tarkvaraviga probleeme ning programmeerijatel on väga raske vältida sellisel viisil mõne probleemi tekitamist. Samuti võivad tekkida vead, kuna programmeerija teeb koodi loomisel loogikavea.