Testarea în IT – Ce este și cui i se potrivește?

Salutare,

Eu sunt Emi, am absolvit facultatea de Cibernetică, Statistică și Informatică Economică, secția Cibernetică Economică, iar când eram copil mi se spunea “Strică tot”, motivul fiind reprezentat de zecile de jucării ce și-au găsit sfârșitul în mâinile mele. Dacă atunci “testam” jucăriile voluntar, între timp am ajuns să lucrez în domeniul testării software și sa construiesc pe baza abilităților dobândite inițial.

Articolul următor va fi structurat în 3 direcții diferite:

1. Ce este testarea?

2. Cum pot afla dacă o cariera de tester mi se potrivește? 

3. Testarea manuală vs Testarea automată

 1. Ce este testarea?

Termenul de testare se regăsește în multiple domenii de activitate și nu a apărut odată cu dezvoltarea software. Indiferent de industria despre care discutăm, testarea este folosită într-o formă mai mică sau mai mare, astfel încât produsul sau serviciul finit să aibă o calitate cât mai ridicată și să fie cât mai util pentru utilizatorul final. 

Dacă vorbim despre industria Auto, este foarte posibil să fi auzit de testele NCAP care stabilesc gradul de siguranță oferit de o mașină. Până a ajunge în schimb la testele NCAP, constructorii de mașini testează majoritatea elementelor ce ajung să compună mașinile, de la componentele fizice externe și până la software-ul utilizat în sistemele multimedia. Scopul final este acela de a ajunge la un rezultat cât mai calitativ pentru publicul țintă ales.  

Ducând discuția în zona IT, termenul de testare este folosit pentru a defini una dintre etapele ciclului de viață al dezvoltării software (Software Development Life Cycle – S.D.L.C.). Pentru o mai clară viziune asupra acestui concept folosit în dezvoltarea produselor software, putem lua în considerare această diagramă:

Practic, testerii se asigură că software-ul livrat este făcut în conformitate cu specificațiile agreate anterior de către client. Un exemplu de proces de dezvoltare a unui software foarte simplu este următorul:

  • Clientul cere un program care să afișeze dacă o persoana este majoră sau nu în funcție de data nașterii acesteia;
  • Project Managerul sau Business Analistul transformă cerința clientului într-o specificație tehnică: “Sistemul trebuie să afișeze “Persoana este majoră” dacă are vârsta mai mare sau egală cu 18 sau “Persoana nu este majoră” dacă aceasta are vârsta mai mică strict decât 18. Vârsta persoanei este calculată în funcție de data curentă. Data de naștere trebuie să aibă formatul “zi/lună/an”;
  • Programatorul implementează soluția;
  • Testerul verifică prin diverse scenarii limită faptul că sistemul funcționează conform cu specificațiile clientului. O parte dintre testele pe care acesta ar putea să le facă sunt următoarele: 

• introducerea în sistem a unor date de naștere în formate invalide (lună/zi/an, litere, caractere speciale, etc.);

• introducerea în sistem a unei date de naștere care să implice faptul că persoana în cauză are 17 ani și 364 de zile în funcție de data curentă;

• introducerea în sistem a unei date de naștere care să implice faptul că persoana în cauză are 18 ani și 0 zile în funcție de data curentă;

• introducerea în sistem a unei date de naștere care sa implice faptul ca persoana în cauză are 19 ani în funcție de data curenta.

  • Odată finalizată testarea și validat sistemul, acesta este lansat în producție spre a fi folosit de către client.

2. Cum pot afla dacă o carieră de tester mi se potrivește?

Termenul de tester este de multe ori în industrie folosit sub una dintre următoarele denumiri: Software Testing Engineer, Quality Assurance Engineer sau simplul QA. În funcție de companie, exista posibilitatea ca responsabilitățile acestora să difere ușor, dar există o serie de caracteristici pe care toți oamenii care lucrează în domeniul testării ar trebui să le dețină:

• Gândirea analitică

• Atenția la detalii

• Gândirea de tip “out of the box”

• Curiozitatea

• Creativitate

Orice altă abilitate tehnica sau de tip “soft skill” poate fi dobandita pe parcurs în acest domeniu. Atât timp cât baza există, oricine se poate orienta către o carieră în testare, cel mai important aspect fiind acela de a face lucrurile cu pasiune și de a munci cât mai mult în direcția aceasta. Nu poți să devii tester peste noapte, dar poate fi o cariera de luat în considerare pentru situațiile în care îți dorești sa lucrezi în IT, dar nu vrei să faci programare. 

Pentru cei dintre voi care vor să-și verifice abilitățile de tester, o să vă las o provocare. Accesând următorul link (http://testingchallenges.thetestingmap.org/index.php) o să descoperiți o serie de 10 provocări pentru testeri. Vă provoc să găsiți cât mai multe scenarii de testare pentru prima dintre acestea. 

Scopul primului challenge este acela de a testa faptul că text box-ul “First Name” funcționează corect și nu are niciun fel de defect care ar putea afecta utilizatorul final care îl va folosi pentru a-și completa prenumele. 

Pentru a avea o provocare și mai mare va spun și că eu am reușit sa descopăr după 1 an de testare 15 scenarii din 18 în aproximativ 20 de minute, ultimele 3 fiind peste nivelul meu de atunci. Dacă reușiți să treceți de 9 scenarii din 18 într-un timp relativ scurt, puteți oricând lua în calcul o cariera în domeniul testării. 😀 

3. Testare Manuală vs Testare Automată

Există 2 tipuri generale de testare: manuală și automată. Ținând cont de funcționalitățile software care necesită testare și de câte ori trebuie rulate testele respective, soluția potrivită poate fi oricare dintre cele 2.

Testarea manuală este potrivită mai ales pentru sistemele care nu necesită teste repetitive și care implică, în general, modificări complexe și cu impact ridicat. Firmele care vând un produs software customizabil pentru fiecare client în parte folosesc, de cele mai multe ori, testarea manuală pentru a verifica modificările față de produsul de bază. 

Testarea automată este potrivită mai ales pentru sistemele software care implică acțiuni simple și repetitive, acțiuni bine definite și care funcționează după un set clar de reguli. În general, testarea automată este folosită pentru testele de performanță realizate pe diverse sisteme software și pentru testarea unor funcționalități care, cu toate că nu suferă modificări directe, pot fi impactate indirect de către anumite update-uri făcute la nivelul codului. 

Un exemplu în acest sens poate fi reprezentat de orice aplicație bancară. În momentul în care o bancă implementează o nouă funcționalitate în cadrul aplicației sale, aproape toate celelalte funcționalități trebuie testate, astfel încât testerii să se asigure că nu există breșe de securitate sau probleme cauzate de corelațiile dintre noua funcționalitate și restul aplicației. În contextul în care aplicațiile bancare evoluează constant, este mult mai facil să automatizezi o serie de teste pentru întreaga aplicație, teste care să ruleze de fiecare dată când se fac update-uri asupra aplicației și care să atenționeze proiectanții dacă sunt probleme. 

Este important de menționat că față de testarea manuală, testarea automată implică și cunoștințe de programare, întrucât majoritatea aplicațiilor care ajută la realizarea de teste automate se vor folosi într-o forma sau alta de concepte din programare. 

Este important de reținut că tipurile de testare nu se exclud reciproc, ele coexistând de cele mai multe ori în cadrul unei firme. Există cazuri pentru care se pretează testarea manuală și există cazuri în care testarea automată este mai eficientă. 

Concluzii și TL;DR:

Testarea înseamnă verificarea corespondenței dintre specificațiile aplicației și implementarea efectivă a acesteia.

Orice persoană pasionată de domeniul IT poate deveni tester atât timp cât are o gândire analitică, știe să privească o situație din mai multe perspective și are un gram de creativitate. 

Testarea manuală și testarea automată coexistă de cele mai multe ori și se pretează mai mult sau mai puțin în funcție de repetabilitatea testelor ce urmează a fi executate. 

Dacă ai întrebări legate de domeniul testării, dă-mi un add pe LinkedIn (https://www.linkedin.com/in/emil-berbece-572762111/) și o să-ți răspund în cel mai scurt timp. 

Până atunci, te las cu un slogan folosit destul de des printre testeri “Trust, but verify”.

Distribuie articolul pe: