Testare
Acest articol este în curs de editare de către dragos.iorgulescu. Dacă doriți să interveniţi în procesul de editare, cereți mai înainte permisiunea autorului pe pagina sa de discuţii.
Introducere
Cauzele defectelor
Defectele sunt cauzate de erorile umane introduse in timpul dezvoltarii unui program. Ele se manifesta fie prin functionarea incorecta a aplicatiei la nivel logic, fie prin nefunctionarea sa sau printr-un comportament, sa ii spunem, deviant (erori, crash-uri, etc.). Oricare are fi natura unui defect, el poarta numele de "BUG" (ce NU este un acronim de la "Behaves Usually Good" :) ). Bug-urile apar datorita faptului ca oamenii ce realizeaza aplicatiile sunt, evident, oameni. Indiferent de nivelul de experienta al dezvotlatorilor, design-erilor, arhitectilor si a testerilor, erorile sunt ceva natural. Problema care se ridica este "cum procedam astfel incat produsele software sa contina cat mai putine erori probabile?". Voi incerca prin cele ce urmeaza sa aduc cat mai multe raspunsuri si solutii acestei probleme.
Sa incepem!
Ce inseamna "Testarea software / QA Engineering?"
Nimic altceva decat suma tuturor procedurilor, operatiilor si actiunilor menite sa asigure buna functionare a programelor. Prin "buna functionare" intelegem:
- Respectarea specificatiilor / cererilor clientului
- Implementarea corecta a cerintelor de functionare (requirements)
- Absenta erorilor de proiectare logica si algoritmica
- Siguranta datelor folosite in cadrul programului
- Viteza optima de rulare a aplicatiei
- Folosirea eficienta a resurselor disponibile
- Grad ridicat de usability (?)
In acceptiunea generala, testarea se caracterizeaza prin rularea testelor. Aceasta este, in schimb, doar partea vizibila din exterior. Pentru a asigura toate cele de mai sus, este nevoie de mult mai multe etape pana a ajunge in punctul executiei testelor. Din motive de eficienta, planurile de teste trebuie neaparat sa contina si o perioada de timp alocata planificarii testelor, design-ului test case-urilor, planificarii executiei si, bineinteles, analizei rezultatelor.
Procesul fundamental de testare este alcatuit din urmatoarele activitati principale:
- Planificare si control
- Verificarea misiunii de testare, definirea obiectivelor si specificarea activitatii de testare astfel incat aceasta sa atinga obiectivele si scopul misiunii
- Compararea progresului / evolutiei actual(e) cu planul initial si raportarea starii de fapt, inclusiv deviatiile de la plan. Pentru a controla eficient procesul de testare, acesta trebuie monitorizat pe toata durata proiectului.
- Analiza si Design
- Sectiunea in care obiectivele sunt transformate in test case-uri si conditii de testare tangibile
- Implementare si executie
- Sunt definite proceduri de testare si/sau scripturi prin aranjarea test case-urilor intr-o anumita ordine si includerea de informatii aditionale necesare executiei; se pregateste mediul de test si se executa testele
- Evaluarea rezultatelor si raportarea acestora
- Analiza rezultatelor executiei testelor si compararea acestora cu obiectivele initiale; evident, raportarea situatiei
- Finalizarea procesului de testare
- Adunarea de date stranse pe parcursul proiectului (cifre, numere, impresii ale membrilor echipei, etc.) in vederea analizei workflow-ului