Ce este testarea software?
In zilele noastre, lumea a ajuns sa fie condusa de catre technologie. Regasim programe software aproape in orice dispozitiv cu care interactionam. In multe cazuri ne lasam viata pe mana unor programe software fie fara sa stim, fie sperand ca ele nu vor esua niciodata.
Pe masura ce numarul dizpozitivelor care se bazeaza pe diverse programe software creste, nevoia de testare software este din ce in ce mai crescuta si abilitatile pe care testerii software le detin au devenit din ce in ce mai cautate.
In ciclul de viata al unui produs de la design pana in productie, testarea este primul proces prin care se evalueaza calitatea software-ului construit.
Testarea software este un proces prin care se evalueaza criteriile functionale si nefunctionale ale uneii aplicatii cu scopul de a identifica defecte.
Este un proces de verificare si validare a unui produs software.
Care este scopul testarii software?
Scopul testarii software nu este sa gaseasca defecte asa cum multi cred. Scopul testarii este sa ne asiguram ca produsul dezvoltat este in conformitate cu cerintele utilizatorilor finali si ca este dezvoltat asa cum a fost specificat in documentele de design.
Astfel, prin testare ne asiguram ca produsul poate fi folosit asa cum este intentionat a fi folosit, ca respecta cerintele utilizatorilor si nu are defecte majore care sa pericliteze experienta utilizatorului final.
De ce avem nevoie de testare software?
Avem nevoie de testare software pentru ca aceasta minimizeaza riscul aparitiei defectelor in programele software.
Aceste defecte, pot cauza de la pierderi monetare foare mari pana la pierderi de vieti omenesti.
Cateva exemple de asfel de defecte:
- Din cauza unui defect software un avion Airbus A300 al companiei China Airlines s-a prabusit in anul 1994. Au murit 264 de oameni.
- Tot din cauza unui defect software, racheta Ariane5 a explodat la cateva zeci de secunde de la lansare. Racheta nu avea echipaj uman la bord, dar urma sa plaseze pe orbita doi sateliti. Costul pierderii rachetei si celor doi sateliti se ridica la peste 400 milioane de dolari.
- Starbucks a fost nevoit la un moment dat sa inchida peste 60% din localurile din USA si Canada din cauza unui defect la sistemul de plati.
Astfel de erori apar zilnic in procesul de dezvoltare al unui produs software. De aceea, companiile producatoare de software acorda o importanta la fel de mare testarii precum este acordata si procesului de dezvoltare.
Companii precum Google, nu mai fac de foarte mult timp diferente intre programatori si testeri. Pentru Google toti sunt ingineri software responsabili de calitatea produsului dezvoltat.
Cine poate face testare software?
Sunt multe voci care spun ca nu oricine poate face testare software. Pentru ca testerii au un anumit tip de gandire (mindset) care ii ajuta sa gaseasca probleme acolo unde un dezvoltator spre exemplu nu s-ar uita niciodata.
Aceasta afirmatie este partial adevarata: nu oricine are acest tip de gandire, pentru ca acesta se invata. Oricine poate fi tester daca are un mentor bun, daca ii place testarea si investeste timp si pasiune in a invata aceasta meserie. Sa fii tester fara a trece print-un program de invatare nu este posibil.
In general un tester bun isi dezvolta urmatoarele abilitati:
- Gandire critica.
- Capacitatea de analiza.
- Comunicare eficienta.
- Abilitati technice.
- Capacitatea de a intelege cerinte de bussines.
Toate aceste abilitati pot fi invatate si transpuse catre caracteristicile domeniului IT.
Testing is a skill. While this may come as a surprise to some people it is a simple fact..
Tipuri de testare software?
In practica testarea software este impartita in foarte multe tipuri. In functie de natura si scopul aplicatiei testate decidem ce fel de teste trebuie sa executam.Aceste tipuri de teste pot fi impartite in doua mari categorii: teste functionale si teste nefunctionale.
Cateva exemple din categoria testelor functionale sunt:
- Unit testing
- Integration testing
- System testing
- Sanity testing
- Smoke testing
- Interface testing
- Regression testing
- Acceptance testing
- Black box testing
- White box testing
Cateva exemple din categoria testelor nefunctionale sunt:
- Performance testing
- Load testing
- Volume testing
- Stress testing
- Security testing
- Compatibility testing
- Penetration testing
Viitorul testarii software?
O data cu revolutia social media a aparut un fenomen care da o putere extraordinar de mare consumatorilor. Puterea de a raspandi feedback-ul lor foarte rapid in grupuri foarte mari de oameni.
Acesta viralizare a feedbackului poate foarte simplu sa induca sucessul sau esecul unui produs. Din aceasta cauza companiile producatoare de software, sunt si vor fi si mai mult pe viitor atente la nevoile si parerile consumatorilor finali.
Un exemplu foarte bun in acest sens il reprezinta lansarea jocului Cyberpunk 2077. O lansare cu foarte multe defecte nerezolvate. In comunitatile de gaming aceste defecte au iscat un val masiv de nemultumiri, care apoi sau viralizat foarte rapid, astfel incat o parte din cei care cumparasera jocul au cerut returnarea banilor. Firma producatoare a fost nevoita sa ofere si reduceri masive din pretul initial al jocului in urma valurilor de nemultumiri.
Toate aceste actiuni reprezinta pierderi financiare si de imagine pentru companiile producatoare.De aceea, va exista pe viitor un focus si mai mare pe zona de testare, pentru ca testarea diminueaza riscul consumatorilor finali de a avea o experienta neplacuta cu produsul software.
Astfel testarea, indiferent ca este facuta manual sau automat, ajuta companiile sa livreze produsele cu nivelul de calitate adecvat, minimizand astfel eventuale pierderi financiare sau de imagine. Testarea software va continua sa reprezinte o plasa de siguranta inaintea lansarii produselor mult timp de acum inainte.
In testare exista o zicala: daca nu l-ai testat, nu stii daca functioneaza!
Happy testing!
PS: In curand vom incepe un nou Curs Practic de Testare Software. Poti afla mai multe despre acesta aici.