Programinės įrangos kokybės užtikrinimas apima kompiuterių programinės įrangos projektavimo ir diegimo testavimą ir užtikrinimą, kad ji atitiktų minimalų kokybės standartą. Kokybės užtikrinimo proceso esmė yra testavimas – metodas, kuriuo analizuojamas kiekvienas kūrimo ciklo žingsnis, siekiant nustatyti defektus, tokius kaip gedimai ar saugumo problemos. Dažniausiai žinoma programinės įrangos kokybės užtikrinimo proceso dalis yra programinės įrangos ir kodo testavimas; tačiau ji apima ir kitus inžinerinio ciklo aspektus. Kiti programinės įrangos inžinerijos aspektai, kuriems taikoma kokybės analizė, apima projektavimo ir įgyvendinimo etapus.
Bendra programinės įrangos kokybės užtikrinimo koncepcija reikalauja, kad ji prasidėtų programinės įrangos planavimo etape. Blogai suplanuotą programinę įrangą gali būti sunku arba neįmanoma parašyti taip, kad ji atitiktų organizacijos, kuri ją numatė, lūkesčius. Kokybės valdymas projektavimo etape apima projekto specifikacijų arba tikslų pasekmių tyrimą, taip pat organizacijos planus, kaip pasiekti savo tikslus. Kokybės analizės pranašumas projektavimo etape yra tas, kad ji nustato ir pašalina klaidas anksti, o ne vėliau kūrimo cikle, kai projektavimo problemų sprendimas yra daug brangesnis.
Programinės įrangos testavimo inžinierius, taip pat žinomas kaip programinės įrangos kokybės analitikas, yra pagrindinis asmuo, atsakingas už testavimo procesą. Šis asmuo kuria ir vykdo bandymų planus, kurie padės organizacijai pagerinti savo programinės įrangos kokybę. Idealiu atveju programuotojas niekada neturėtų išbandyti savo gaminio, o tai reiškia, kad projekte programuotojas ir bandymų inžinierius yra du skirtingi žmonės.
Bandymų planai yra svarbi kokybės užtikrinimo sistemos dalis, ypač programinės įrangos testavimo etape. Bandymo planų tikslas – nustatyti sąlygas, kurios žymi programinės įrangos sėkmę arba nesėkmę. Į tipinį bandymo planą bus įtrauktas išsamus programų ir paprogramių arba procedūrų, kurias būtina išbandyti, sąrašas, taip pat su testavimu susiję metodai. Kita svarbi bandymo plano funkcija – nustatyti, kurie defektai yra nepriimtini. Bandymo planai paprastai sudaromi prieš sukuriant tikrąjį projekto programinės įrangos kodą.
Kai bandymų inžinieriai rašo programas bandymų planams įgyvendinti, jos vadinamos testavimo scenarijais. Bandymo scenarijai yra esminė programinės įrangos kokybės užtikrinimo proceso dalis. Jų tikslas – automatizuoti esamo programos kodo testavimą, siekiant surasti defektus. Be to, bandymų inžinieriai paprastai naudoja komercinius testavimo įrankius, kad ieškotų galimų problemų. Testavimo planai įgyvendinami programinės įrangos kūrimo kodavimo etape.
Faktiniame programinės įrangos kokybės užtikrinimo proceso testavimo etape reikia atlikti keletą svarbių žingsnių. Tai apima vienetų testavimą, kurio metu įvertinamas įvairių programinės įrangos kodo dalių vientisumas, taip pat gedimų injekcijos, skirtos ištirti, kaip programos reaguoja į klaidingus duomenis. Papildomi veiksmai apima apkrovos testavimą arba testavimą nepalankiausiomis sąlygomis, kurie parodo, kaip programa veikia intensyviai naudojant, ir įsibrovimo arba saugos testavimą, siekiant patikrinti programos atsparumą neteisėtai prieigai. Programinės įrangos projektas taip pat paprastai išbandomas tinkamumo naudoti, siekiant patikrinti, ar gauta programa lengva naudotis kitiems.
Specialistai, kurie užsiima programinės įrangos kodo testavimu, paprastai skirstomi į dvi grupes: viena vadinama juodosios dėžės testuotojais, o kita – baltos dėžės arba stiklinės dėžės testuotojais. Juodosios dėžės testavimas yra paviršutiniškesnis procesas, kuris prasideda programinės įrangos kodavimo etape ir nenagrinėja jokio pagrindinio kompiuterio kodo. Jis tiria programinės įrangos tinkamumą naudoti, kosmetinį nuoseklumą ir klaidų bei gedimų atsiradimą.
Baltosios dėžės testavimas – tai procesas, kuris prasideda pačioje programinės įrangos kokybės užtikrinimo proceso pradžioje, projektavimo etape. Tai apima galimų problemų numatymą prieš iš tikrųjų parašant kodą, taip pat testavimo planų ir pažangių bandymų scenarijų rašymą. Skirtingai nuo juodosios dėžės testavimo, baltosios dėžės testavimas taip pat apima pagrindinio kompiuterio kodo tyrimą.
Kokybės užtikrinimas taip pat taikomas programinės įrangos diegimo fazei, kai programinė įranga yra beveik baigta ir įdiegiama kompiuterinėse sistemose vertinimui. Šis etapas dažnai vadinamas alfa testavimu ir įvyksta, kai kūrėjo darbuotojai įdiegia ir išbando beveik gatavą produktą. Kai programinė įranga pristatoma potencialiems klientams už įmonės ribų, tai vadinama beta testavimu. Jei išleidus programinę įrangą atsiranda defektų ir reikia sukurti pataisą, naudojamas regresinis testavimas, siekiant užtikrinti, kad naujinimai nesukeltų naujų klaidų.