Tarkvara kvaliteedijuhtimine

Tarkvara kvaliteedijuhtimine (inglise keeles software quality management) hõlmab tegevusi ja protsesse, mis võimaldavad tagada tarkvara kvaliteeti ning vähendada vigade arvu kõigis tarkvaraarenduse etappides. Tegevusteks võivad näiteks olla protsessi määratlemine ja rakendamine, auditeerimine ja koolitamine ning protsessideks projektijuhtimine, testimine ja tarkvaraarenduse metoodika.

Tarkvara kvaliteedi tagamiseks on mitmeid meetodeid ning kasutada võib ühte standardit või kombineerida erinevate standardite parimaid külgi. Enamasti jälgitakse ISO 9000 standardi või CMMI mudeli vastavuse tagamist. Olenemata kasutatud meetodist on eesmärgiks kõigi tarkvaraarendusprotsesside pidev täiustamine, et saada tarkvara, mis vastab esialgsetele spetsifikatsioonidele ja nõuetele.

Levinumad standardid ja mudelid 
 Lean software development
 Six Sigma
 Capability Maturity Model Integration (CMMI)
 ISO 9000
 ISO/IEC 15504 v.2.5 (SPICE)

Eesmärgid 
 Tagada lõpptoote nõutav kvaliteedi tase
 Juurutada kogu ettevõtet hõlmavat "kvaliteetset kultuuri", kus kõik vastutavad kvaliteedi eest
 Vähendada õppimiskõverat ja aidata järjepidevust olukordades, kui meeskonna liikmete positsioonid muudavad
 Dokumenteerida protsessi käigus tekkinud vead ning parandada protsessi, et edaspidi vältida vigade tekkimist

Tarkvara kvalideedijuhtimise alamosad 
Tarkvara kvaliteedijuhtimise võib jagada kolmeks alamprotsessiks. Sellist jagunemist toetab oma töödes näiteks arvutiteadlane Ian Sommerville.

Tarkvara kvaliteedikava 
Tarkvara kvaliteedikava (inglise keeles software quality plan) on iga projekti jaoks koostatud kava, mis defineerib standardid, eeskirjad ja tööriistad, mida kasutatakse kogu arendustsükli vältel. Lisaks sisaldab kvaliteedikava saavutatavaid kvaliteedieesmärke, eeldatavaid riske ja riskijuhtimist.

Tarkvara kvaliteeditagamine 
Tarkvara kvaliteeditagamine (inglise keeles software quality assurance) on kvaliteedijuhtimise osa, mis loob organisatsioonisisesed protsessid, standardid ja regulatsioonid, mida jägitakse tarkvaraarenduse elutsükli vältel.

Tarkvara kvaliteeditagamine vs. tarkvara kvaliteedikontroll 
Tarkvara kvaliteeditagamine ja tarkvara kvaliteedikontroll on tihedalt seotud tegevused, kuid tihti ei eristata ühte teisest. Kvaliteedi tagamine on ennetav tegevus, kuid kvaliteedikontroll keskendub parandusprotsessidele. Kvaliteeditagamise kõige olulisemaks aluseks on protsesside ja protseduuride rakendamine, mis on vajalikud tarkvara arendamiseks ja kliendi vajaduste kontrollimiseks. Kvaliteedikontroll teisalt tegeleb tegelike tegevustega, mis tagavad, et toodet arendatakse vastavalt määratletud kvaliteedistandardile.

Tarkvara kvaliteeditagamine vs. tarkvara testimine 
Lisaks segadusele kvaliteedikontrolli ja kvaliteeditagamise protsessidega ei eristata pahatihti ka testimist ja kvaliteeditagamist ning tarkvara testijat nimetatakse tarkvara kvaliteeditagamise spetsialistiks. Kuigi mõlema tegevuse eesmärk on sama, luua tippkvaliteediga tarkvara, siis testija ja tarkvara kvaliteeditagamise spetsialisti tööülesanded on erinevad.

Kvaliteeditagamise spetsialist töötab välja vajalikke protsesse, jälgib nende rakendamist ja täitmist tarkvaraarenduse elutsükli vältel. Kvaliteeditagamine on ennetav tegevus, mis keskendub järgmisele: defektide vältimine, protsesside loomine ja protsesside täitmise jälgimine. Tarkvara testija ülesanne on aga tuvastada tarkvara vigu ja defekte. Tarkvara testimine on osa kvaliteedikontrolli protsessist ja keskendub ainult tootega seotud tegevustele. Tarkvara testimine on kvaliteedikontrolli protsessi osa.

Tarkvara kvaliteedikontroll 
Tarkvara kvaliteedikontroll (inglise keeles software quality control) rakendab ja jälgib defineeritud standardite ja protsesside täitmist kõigis tarkvaraarenduse elutsüklites.

Viited