Testare

De la Wiki.lug.ro
Versiunea din 12 august 2009 01:03, autor: Dragos.iorgulescu (Discuție | contribuții) (Ce inseamna "Testarea software / QA Engineering?")

Salt la: navigare, căutare

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

De ce avem nevoie de testare si cine o poate face?

Principii

Testarea si calitatea

Rolul testarii in cadrul dezvoltarii si a mentenantei

"Psihologia" testarii

Metode de testare

Metoda "White Box"

Metoda "Gray Box"

Metoda "Black Box"

Nivele de testare

Testarea componentei / Component testing

Testarea integrarii / Integration testing

Testarea unui sistem / System testing

Teste de acceptanta / Acceptance testing

Unelte