**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
------

1. ↑  "Software Quality Assurance". Originaali arhiivikoopia seisuga 22.10.2017. Vaadatud 20.10.2017.
2. ↑  Kelemen, Zádor Dániel; Kusters, Rob; Trienekens Jos Identifying criteria for multimodel software process improvement solutions – based on a review of current problems and initiatives
3. ↑  Ian Sommerville (2004). *Software Engineering, 7th edition*. Lk Peatükk 27.
4. 1 2  "What is Software Quality Assurance?". Vaadatud 20.10.2017.