Testare Software

Download Testare Software

Post on 25-Dec-2015

17 views

Category:

Documents

3 download

Embed Size (px)

DESCRIPTION

Testare Software

TRANSCRIPT

  • Testarea si asigurarea calitatii

    Teste de sistem. Teste

    functionale

  • Cuprins

    De ce sa testam?

    Teste de sistem, clasificare si definitii

    Teste functionale

    Teste nefunctionale prezentare

    Crearea cazurilor de test

    Black box testing categorii de tehnici de

    testare

  • De ce testam?

    Ca sa gasim defecte!

    Pentru a reduce impactul defectelor aparute la client, pentru a nu afecta costurile si profiturile .

    Pentru a creste fiabilitatea sistemului. Pentru a creste fiabilitatea sistemului.

    Pentru a creste calitatea produsului.

    Pentru a ne asigura ca un produs este conform cu cererile clientilor.

    Cand sa ne oprim din testare? Am acoperit ceea ce ne stabilisem.

    Rata de gasire a defectelor a scazut sub o rata stabilita.

    Echipele implicate in proiect cad de acord ca produsul poate fi livrat.

    Managementul decide ca produsul sa fie livrat.

  • Glosar de termeni

    Conditie de testat = eveniment, atribut al unui modul sau sistem care poate fi verificat (de exemplu: structura, tranzactie, functionalitate)

    Date de test = date care afecteaza sau sunt afectate de executia unui modul specific

    Caz de testare (conform IEEE) = un set de valori de intrare, preconditii Caz de testare (conform IEEE) = un set de valori de intrare, preconditii de executie, rezultate asteptate si postconditii de executie, dezvoltate pentru un anume obiectiv sau conditie de testat, pentru a exercita o anumita cale a programului sau pentru a verifica corespondenta cu o cerinta.

    Specificatia cazului de testare (conform IEEE) = un document specificand un set de cazuri de testare pentru o conditie de test.

    Procedure de testare = un document ce specifica o secventa de actiuni pentru executia unei serii de cazuri de testare.

  • Teste de sistem. Clasificare

    Teste de baza

    Teste functionale

    Teste de interoperabilitateTeste de interoperabilitate

    Teste de performanta

    Teste de scalabilitate

    Teste de stress

    Teste de incarcare si stabilitate

    Teste de fiabilitate (reliability)

    Teste de regresie

    Teste de documentatie

    Teste nefunctionale

  • Teste de baza. Teste functionale

    Testele de baza se asigura ca sistemul poate

    fi instalat, configurat si adus intr-o stare

    functionala.functionala.

    Testele functionale ofera testare

    acoperitoare peste toate cerintele, precizate

    in documentul de specificatii ale sistemului.

    Scopul: testarea functionalitatii sistemului.

  • Teste functionale

    Bazate pe specificatii : folosesc scenarii (cazuri de testare) derivate din specificatiile functionale (cazuri de utilizare)specificatiile functionale (cazuri de utilizare)

    Sunt concentrate pe verificarea sistemului fata de specificatiile tehnice.

    Se pot efectua la orice nivel al testarii.

    Testarea securitatii este o parte a testarii functionale, legata de detectarea defectelor.

    Elemente ce vor fi testate: sisteme de comunicatie, logare, GUI, securitate, caracteristici tehnice, etc.

  • Teste nefunctionale. Teste de interoperabilitate

    Teste nefunctionale testeaza atributele unei componente sau ale unui sistem care nu sunt legate de functionalitate (de ex. Eficienta, mentenanta, portabilitate, fiabilitate etc.)

    Teste de interoperabilitate: combina diferite elemente ale Teste de interoperabilitate: combina diferite elemente ale sistemului intr-un singur mediu de testare, pentru a asigura functionarea lor corecta impreuna.

    Sunt create pentru a asigura ca sistemul poate fi interconectat cu alte sisteme si va continua sa functioneze corect.

    Doua tipuri de teste: de compatibility si de backward compatibility. Verifica functionarea versiunii actuale a sistemului in cadrul unei platforme mai vechi, precum si mentinerea vechilor functionalitati.

  • Teste de performanta

    Scop: masoara performantele reale ale sistemului, comparate cu cele teoretice. Metrica performantelor ce trebuie masurate variaza de la aplicatie la aplicatie.

    Exemplu: timpul de raspuns trebuie sa fie de mai putin de 1 secunda in 90% din cazuri la o aplicatie de genul Calculator Exemplu: timpul de raspuns trebuie sa fie de mai putin de 1 secunda in 90% din cazuri la o aplicatie de genul Calculator matematic simplu.

    Performanta poate fi masurata, urmarind: Timpul de raspuns

    Iesirile sistemului

    Utilizarea resurselor

    Daca masuratorile de performanta sunt nemultumitoare, atunci se iau masuri pentru imbunatatire (rescrierea codului, alocarea mai multor resurse, redesign de sistem ).

  • Teste de scalabilitate

    Scopul: verifica sistemul pentru a isi atinge limitele sale tehnologice. Un sistem poate functiona intr-un scenariu cu utilizare limitata, dar nu poate fi extins uneori.

    Timpul de rulare al unui sistem poate creste exponential, in Timpul de rulare al unui sistem poate creste exponential, in functie de cerinte si poate ceda dupa o anumita limita.

    O aplicatie este scalabila daca o crestere a incarcarii sistemului necesita doar resurse aditionale, fara modificari extensive ale aplicatiei.

    Limitele tehnologice sunt de obicei:

    Limitari de stocare a datelor

    Limitari de bandwidth

    Limitari de viteza - CPU

  • Teste de stress

    sau cum sa facem produsul sa cedeze?

    Scop: evaluarea si gasirea comportamentului unei componente software, la limita sau in afara limitelor sale specificate tehnic.

    Sistemul este in mod intentionat stresat, prin impingerea lui dincolo de limitele specificate. Testele includ asigurarea de resurse putine si limitele specificate. Testele includ asigurarea de resurse putine si testarea pentru incompatibilitati.

    Testele de stress se asigura ca sistemul se comporta acceptabil in cele mai rele conditii. Daca limitele sunt depasite si sistemul cedeaza, ar trebui sa intre un mecanism de revenire.

    In testele de stress, trebuie urmarita stricarea aplicatiei si expunerea defectelor ce pot aparea in conditii de stress. Coruperea datelor

    Buffer overflow

    Alocarea proasta a resurselor

    Deadlocks etc.

  • Teste de incarcare si stabilitate

    Scop: asigurarea stabilitatii sistemului pe o perioada lunga de timp cu incarcare completa (load).

    Un sistem poate functiona foarte bine cand este testat de cativa ingineri, care il folosesc in mod corect. Totusi, cand intervin un numar mai mare de utilizatori, care nu cunosc sistemul, si ingineri, care il folosesc in mod corect. Totusi, cand intervin un numar mai mare de utilizatori, care nu cunosc sistemul, si aplicatii care ruleaza luni fara repornire, se pot intalni diverse probleme: Sistemul incetineste

    Probleme de functionare

    Sistemul se opreste treptat

    Sistemul cedeaza complet.

    Acest tip de teste ne ajuta sa intelegem cum se va comporta sistemul in viata reala. Trebuie testate scenarii cat mai realiste.

  • Teste de fiabilitate

    Scop: masurarea capacitatii sistemului de a ramane operational pentru perioade lungi de timp.

    Fiabilitatea sistemului se exprima de obicei in Fiabilitatea sistemului se exprima de obicei in termeni de timp mediu pana la cedare mean time to failure (MTTF).

    Pe masura ce testam sistemul, observam erorile, incercam sa indepartam defectele si sa continuam testarea. Pe masura ce avanseaza testarea, se inregistreaza duratele de timp intre esecuri succesive.

  • Teste de regresie. Teste de documentatie

    Nu se creeaza teste noi la nivel de regresie. Se selecteaza teste dintre cele existente si sunt executate pentru a asigura ca nu este nimic defect in noua versiune a produsului software.

    Principala idee a testarii pentru regresie este verificarea faptului ca nici un defect nu a fost introdus in portiunea nemodificata a sistemului, un defect nu a fost introdus in portiunea nemodificata a sistemului, datorita schimbarilor aduse in alte parti ale sistemului. In timpul testarii sistemului, multe defecte sunt descoperite si codul este modificat pentru a repara aceste defecte.

    Testele de regresie se efectueaza cand produsul sau mediul sau au fost schimbate:

    Se pot executa la orice nivel de testare

    Pot fi automatizate (din motive de costuri si de program)

    Testele de documentatie

    Scop: verificarea acuratetii tehnice si a lizibilitatii manualelor de utilizare, inclusiv tutoriale si on-line help.

  • Procesul de dezvoltare a testelor

    Principalele puncte ale testarii functionale sunt:

    Identificarea variabilelor de intrare si de iesire ale

    programului si domeniile lor de date.programului si domeniile lor de date.

    Calcularea rezultatelor asteptate pentru anumite valori de

    intrare.

    Determinarea valorilor de intrare va face ca programul sa

    produca valorile de iesire asteptate.

    Primul pas consta in identificarea conditiilor de

    testare (constrangeri, limitari, interfete cu alte

    produse, reguli de comportament, starile produsului,

    etc.).

  • Procesul de dezvoltare a testelor

    A doilea pas este dezvoltarea cazurilor de testare.

    Cazurile de utilizare sunt folosite ca input. Pasii de urmarit pentru obtinerea cazurilor de testare:

    Identificarea cazurilor de utilizare. Identificarea cazurilor de utilizare.

    Pentru fiecare, se identifica unul sau mai multe cazuri de testare.

    Pentru fiecare caz de testare, se identifica conditiile de executie.

    Adaugarea valorilor datelor.

    Prioritatile cazurilor de testare ar trebui stabilite.

    Se mentine o matrice de urmarire traceability matrix.

  • Procesul de