Asigurarea calității software implică testarea proiectării și implementării software-ului de calculator și asigurarea faptului că acesta îndeplinește un standard minim de calitate. În centrul procesului de asigurare a calității se află testarea, care este metoda prin care fiecare pas al ciclului de dezvoltare este analizat pentru a găsi defecte, cum ar fi defecțiuni sau probleme de securitate. Cea mai cunoscută parte a procesului de asigurare a calității software este testarea software-ului și a codului; cu toate acestea, acoperă și alte aspecte ale ciclului de inginerie. Alte aspecte ale ingineriei software care sunt supuse analizei calității includ etapele de proiectare și implementare.
Conceptul general de asigurare a calității software-ului necesită ca acesta să înceapă din faza de planificare a software-ului. Software-ul prost planificat poate fi dificil sau imposibil de scris într-un mod care să îndeplinească așteptările organizației care l-a imaginat. Managementul calității în etapa de proiectare implică studierea ramificațiilor specificațiilor proiectului, sau a obiectivelor, precum și a planurilor organizației pentru atingerea obiectivelor acestora. Avantajul analizei calității în faza de proiectare este că găsește și elimină greșelile devreme, mai degrabă decât mai târziu în ciclul de dezvoltare, când problemele de proiectare sunt mult mai costisitoare de rezolvat.
Un inginer de testare software, cunoscut și ca analist al calității software, este persoana principală responsabilă pentru realizarea procesului de testare. Această persoană proiectează și execută planurile de testare care vor ajuta o organizație să își îmbunătățească calitatea software-ului. În mod ideal, un programator nu ar trebui să-și testeze niciodată propriul produs, ceea ce înseamnă că în cadrul unui proiect, un programator și un inginer de testare sunt doi oameni diferiți.
Planurile de testare sunt o parte critică a sistemului de asigurare a calității, în special faza de testare a software-ului. Scopul planurilor de testare este de a determina condițiile care marchează succesul sau eșecul software-ului. Un plan de testare tipic va include o listă cuprinzătoare de programe și subprograme sau proceduri care trebuie testate, precum și tehnicile implicate în testare. O altă funcție critică a unui plan de testare este determinarea care defectele sunt inacceptabile. Planurile de testare sunt de obicei concepute înainte ca codul software real al proiectului să fie dezvoltat.
Când inginerii de testare scriu programe pentru a implementa planuri de testare, acestea se numesc scripturi de testare. Scripturile de testare sunt o parte esențială a procesului de asigurare a calității software. Scopul lor este de a automatiza testarea codului existent al unui program pentru a găsi defecte. În plus, inginerii de testare folosesc de obicei instrumente de testare concepute comercial pentru a căuta probleme potențiale. Planurile de testare sunt implementate în timpul etapei de codificare a dezvoltării software.
Există o serie de pași importanți implicați în etapa reală de testare a procesului de asigurare a calității software. Acestea includ testarea unitară, care evaluează integritatea diferitelor secțiuni ale codului software, precum și injecțiile de erori, care sunt concepute pentru a investiga modul în care programele răspund la datele eronate. Pașii suplimentari includ testarea de încărcare sau testarea de stres, care vede cum funcționează un program în condiții de utilizare intensă și testarea de intruziune sau de securitate pentru a testa rezistența unui program la accesul neautorizat. Un proiect software este, de obicei, supus testării de utilizare, pentru a verifica dacă programul rezultat este ușor de utilizat pentru alții.
Specialiștii care se angajează în testarea codului software sunt, în general, separați în două grupuri, unul numit testeri cutie neagră și celălalt cunoscut sub numele de testeri cutie albă sau cutie de sticlă. Testarea cutiei negre este un proces mai superficial, care începe în etapa de codificare a software-ului și nu examinează niciun cod de computer subiacent. Acesta investighează gradul de utilizare al unui software, consistența cosmetică și apariția erorilor și a defecțiunilor.
Testarea cutiei albe este un proces care începe chiar de la începutul procesului de asigurare a calității software, în etapa de proiectare. Include predicția problemelor potențiale înainte ca codul să fie scris efectiv, precum și scrierea planurilor de testare și a scripturilor de testare avansate. Spre deosebire de testarea cutiei negre, testarea cutiei albe implică, de asemenea, studiul codului computerului subiacent.
Asigurarea calității se aplică și fazei de implementare a software-ului, care este atunci când software-ul este aproape de finalizare și este instalat pe sisteme informatice pentru evaluare. Această fază este adesea denumită testare alfa și are loc atunci când produsul aproape terminat este instalat și testat de personalul dezvoltatorului. Când software-ul este prezentat unor potențiali clienți din afara companiei, se numește testare beta. Dacă apar defecte după lansarea software-ului și trebuie dezvoltat un patch, se utilizează testarea de regresie pentru a se asigura că noi erori nu sunt create de actualizări.