testarea software si asigurarea calitatii - curs1

Upload: mihaela

Post on 18-Oct-2015

75 views

Category:

Documents


0 download

DESCRIPTION

....

TRANSCRIPT

  • Testarea software si asigurareacalitatiicalitatii

    Curs 1

    Ciclul de viata al produselor informatice. Modele

    Activitati de verificare si validare pe parcursul ciclului de viata. Tipuri de teste

  • Obiective

    Prezentarea conceptelor generale de testare aproduselor informatice si asigurarea calitatiiacestora

    2 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Prezentarea tehnicilor de proiectare,dezvoltare si executie a testelor, precum sielaborarea documentatiei suport de testare siraportare a rezultatelor

  • Necesitate

    Importanta calitatii produselor informatice rezidadin mai multe aspecte, printre care: Erorile din programele produselor informatice pot fi

    fatale in anumite domenii in care vietile oamenilordepind de buna functionare a acestora

    Erorile pot provoca pierderi financiare, materiale sau

    3 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Erorile pot provoca pierderi financiare, materiale saude alta natura

    Daca in domeniul produselor hardware costurile au otendinta generala de scadere, in domeniul dezvoltariiproduselor software, desi productivitatea a crescutsubstantial, nu se inregistreaza inca o scadere acosturilor

  • Bibliografie

    ILIESCU S.St., FGRAN Ioana, PUPZ D., Analiza desistem n informatica industrial, Editura AGIR, Bucureti,ISBN 973-720-091-8, 2006;

    B. Blanchard, W. Fabrycky, Systems Engineering andAnalysis, 4th Edition, Prentice Hall, ISBN 0131869779,2005

    4 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    2005KSHIRASAGAR N., PRIYADARSHI T., Software Testing and

    Quality Assurance: Theory and Practice, 2008 Willy, ISBN978-0-471-78911-6;

    Jeff Tian, Software Quality Engineering Testing, QualityAssurance and Quantifiable Improvement, ISBN 0-471-71345-7, Wiley-Interscience 2005

  • Ciclul de viata al produselor informatice

    Ingineria a fost dintotdeauna preocupata de folosireaeconomica a resurselor limitate in vederea satisfaceriiutilizatorului.

    Fundamental pentru ingineria sistemelor informaticeeste intelegerea procesului ciclului de viata al unui

    5 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    este intelegerea procesului ciclului de viata al unuisistem/produs.

    Ciclul de viata incepe prin identificarea unei nevoi sieste extins prin proiectarea conceptuala si preliminara,proiectarea de detaliu si dezvoltare, productie si/sauconstructie, utilizarea produsului si se termina curetragerea produsului de pe piata.

  • Ciclul de viata al produselor informatice

    Analiza

    cerintelor si

    definirea temei

    de proiectare

    Proiectarea

    de ansamblu/

    conceptuala/

    preliminara

    Proiectarea

    de detaliu

    Elabolare

    programe/

    Impleme

    ntare

    Integrare

    si testare

    Punerea in

    functiune/experi

    mentare si

    acceptare sistem

    Exploatare si

    intretinere

    Aparitia

    cererii

    Realizare

    produsScoatere

    din exploatare

    6 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Ciclul de viata al unui produs: perioada de timp intre momentul aparitiei cererii prin care se solicita realizarea unui produs si momentul scoaterii lui din exploatare.

    Ciclul de realizare al unui produs: partea din ciclul de viata al unui produs in cadrul careia se realizeaza respectivul produs.

  • Ciclul de viata al produselor informatice

    Produs informatic: denumire generica prin care se refera sistemul informatic, o

    aplicatie informatica sau produsul program.

    Aplicatie informatica: utilizarea calculatorului in rezolvarea unui grup omogen de

    probleme ale unui utilizator individual printre care distingem:

    - aplicatii de gestiune; - aplicatii stiintifice; - aplicatii de birotica.

    Produs program: sistem complet si documentat de programe, livrabil unui grup de

    utilizatori care reprezinta:

    - implementarea uneia sau mai multor aplicatii informatice la utilizatorii din grup;

    7 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    - implementarea uneia sau mai multor aplicatii informatice la utilizatorii din grup;

    - suportul de realizare si exploatare a produselor program aplicative de uz general sau

    dedicat.

    Sistem informatic: ansamblu constituit din urmatoarele tipuri de elemente:

    - echipamente, care pot fi: unul sau mai multe calculatoare, memorii, periferice;

    - software compus din: soft de baza, soft de gestionare a bazelor de date, soft de

    aplicatie;

    - personal de exploatare, utilizatori de specialitate pentru intretinere;

    - organizarea activitatilor de pregatire a mediului de achizitiea datelor, de supraveghere

    a exploatarii si intretinerii sistemului.

  • Ciclul de viata al produselor informatice

    Sistem informatic: ansamblu constituit din urmatoarele tipuri de elemente:

    - echipamente, care pot fi: unul sau mai multe calculatoare, memorii, periferice;

    - software compus din: soft de baza, soft de gestionare a bazelor de date, soft de

    aplicatie;

    - personal de exploatare, utilizatori de specialitate pentru intretinere;

    - organizarea activitatilor de pregatire a mediului de achizitiea datelor, de supraveghere

    a exploatarii si intretinerii sistemului.

    8 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    ORGWARE MANWARE

    Programe de aplicatii

    Software

    Hardware

    Baze de date

    Managementul informatiei

    Componentele sistemului informatic [J. Schwarze, Einfuhrung in die Wirtschaftsinformatik, 1997]

  • Ciclul de viata al produselor informaticeETAPA OBIECTIVE DOCUMENTATIE

    Elaborarea

    temei de

    realizare

    - analiza si identificarea cerintelor utilizatorilor;

    - justificarea necesitatii si oportunitatii realizarii

    produselor informatice;

    - specificarea cerintelor globale cu privire la

    produsului informatic;

    -stabilirea cadrului tehnologic de realizare si de

    control al calitatii;

    * tema de realizare

    Proiectarea - analiza si specificarea cerintelor hard si *specificatia de

    9 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Proiectarea

    preliminara

    - analiza si specificarea cerintelor hard si

    software;

    - proiectarea functionala a produsului;

    - planificarea testarii.

    *specificatia de

    definire a produsului

    program

    Proiectarea de

    detaliu

    - proiectare tehnica: structura fizica a produsului

    program si definirea programelor, proiectare

    tehnica a interfetelor si a bazelor de date,

    procedurile de executie, fluxul de control;

    - specificare cerinte si restrictii tehnice de

    realizare;

    - testare.

    * specificatia de

    realizare a produsului

    program (proiect

    tehnic);

    * specificatia de

    testare.

  • Ciclul de viata al produselor informaticeETAPA OBIECTIVE DOCUMENTATIE

    Elaborare

    programe

    - proiectare, elaborare si testare

    programe;

    - elaborare documentatia de intretinere

    (programe, date);

    - testare.

    * specificatii de realizare

    programe;

    * specificatii de testare;

    * raport de testare si listinguri

    martor;

    * documentatia de intretinere.

    Integrare si

    testare

    - integrarea si testarea progresiva a

    componentelor software ale produsului

    * documentatia de utilizare-

    exploatare (forma preliminara);

    10 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    testare componentelor software ale produsului

    program.

    exploatare (forma preliminara);

    * biblioteci cu componentele

    software (in format executabil);

    * specificatii de testare;

    * programa si metodica de

    omologare.

  • Ciclul de viata al produselor informaticeETAPA OBIECTIVE DOCUMENTATIE

    Experimentare - activitati pregatitoare in vederea

    experimentarii: instruirea personalului,

    masuri organizatorice si tehnice;

    - instalarea produsului la utilizator;

    - aducerea documentatiei la conditiile

    corecte de utilizare.

    * documentatia de intretinere si

    cea de utilizare-exploatare (in

    forma definitiva);

    * biblioteci cu componente

    software.

    Exploatare si

    intretinere

    functionarea sistem la parametri

    proiectati;

    registrele de exploatare

    11 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    intretinere proiectati;

    intretinerea sistemului;

    actualizare documentatie.

  • Ciclul de viata al produselor informatice

    Cerintele de testare, evaluare si validare a sistemelor se stabilesc, in

    general, in etapa initiala de proiectare conceptuala, de ansamblu, din

    ciclul de viata al unui produs/sistem, de preferat in paralel cu definirea

    cerintelor globale ale sistemului.

    Din acest moment, testarea si evaluarea se desfasoara pe toata

    durata dezvoltarii produsului constand din testarea si evaluarea

    componentelor individual, din testarea numeroaselor elemente ale

    12 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    componentelor individual, din testarea numeroaselor elemente ale

    sistemului si a subsistemelor importante, cat si din testarea sistemul ca

    entitate de sine statatoare.

    Scopul este de a avea o abordare progresiva care sa se preteze unei

    implementari continue pe toata durata dezvoltarii sistemului.

    Urmatorul pas este validarea. Validarea, ca si concept, se refera la

    pasii si metodele necesare pentru a asigura faptul ca performatele

    sistemul final corespund cu cerintele initiale formulate de client.

  • Ciclul de viata al produselor informatice

    Abordare structurata a notiunilor de testare, evaluare si validare are drept scop

    configurarea finala a sitemului dezvoltat astfel incat acesta sa respecte cerinte si

    specificatiile initiale ale clientului.

    Pentru a indeplini acest obiectiv se vor detalia urmatoarele aspecte:

    determinarea criteriilor de testare, evaluare si validare a sistemelor;

    13 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    determinarea criteriilor de testare, evaluare si validare a sistemelor;

    descrierea categoriilor de teste si evaluari implicate;

    planificarea testarilor si evaluarilor in cadrul duratei de dezvoltare a

    sistemului;

    pregatirea sistemului pentru testare si evaluare;

    efectuarea testelor, culegerea datelor de test, pregatirea raportului de

    evaluare;

    modificarea parametrilor sistemului in functie de concluziile raportului de

    evaluare.

  • Variatiile ciclului de viata

    Ciclul de viata poate diferii in functie de:

    experienta, abilitatile si cunostintele membrilor echipei dedezvoltare

    14 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    dezvoltare

    gradul de cunoastere a sistemului obiect

    domeniul aplicatiei

    schimbarile mediului exterior sistemului

    schimbarile din interiorul sistemului

    dimensiunea proiectului

  • Variatiile ciclului de viata

    Modelul in cascada cu reactie:

    Propus de Royce in 1970 (5-7 etape)

    Avantaje:

    15 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Avantaje:

    Simplu si usor de utilizatFazele si procesele sunt terminate pe randBun pentru proiectele mici unde cerintelesunt bine intelese de la inceput

    Dezavantaje:

    Modificarea cerintelor este foarte greu de gestionatNu se pot produce prototipuri decat foarte tarziu

  • Variatiile ciclului de realizare

    Modelul in cascada cu reactie si suprapuneri

    Elaborare tema

    de realizare

    Control

    Proiectare I

    Control

    (produs informatic)

    Proiectare III Proiectare II Proiectare II

    16 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Control

    (componente)

    Control

    Control

    Elaborare program

    Integrare si testare

    Control Control

    Control Control

    Control

    Control

    Integrare si testare

    Integrare si testare

    Componente 1 Componente 2

    componente 1 componente 2

    Componente 3

    Componente 1+2+3

    Componente 1+2

    Realizare programe Realizare programe

    realizare integrala

  • Variatiile ciclului de realizare

    Avantaje:

    - posibilitatea unei planificari si urmariri riguroase a activitatilor care vor

    fi executate pe parcursul procesului de realizare;

    - integrarea usoara a componentelor PI datorita unei proiectari

    riguroase a interfetelor si a produsului propriu-zis.

    Dezavantaje:

    17 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Dezavantaje:

    - utilizatorul nu poate evalua concret ce facilitati ofera noul produs

    informatic decat dupa ce acesta este realizat si testat; ca urmare, si

    performantele si calitatile noului produs nu pot fi determinate decat in

    fazele de testare.

    - intrucit utilizatorul nu poate formula de la inceput toate cerintele,

    efortul de intretinere a produsului informatic este foarte mare.

    - daca costurile de realizare a produselor informatice nu sunt mari, cele

    de intretinere sunt importante datorita dificultatilor in depistarea erorilor

  • Variatiile ciclului de realizare

    Modelul in cascada cu reactie si prototipuri

    Elaborare tema

    de realizare

    Proiectare

    Control

    Elaborare programeElaborare programe(prototip partial)

    Control

    18 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Control

    Testare

    (prototip partial)

    Control

    Control

    Elaborare programe

    Integrare si testare

    "abandonare"

    realizarea produselorinformatice prinstrategie clasica

    prototip partial

    "convertire"

  • Variatiile ciclului de realizare

    Avantaje:

    posibilitatea realizarii unui produs performant ce urmareste fidel cerinteleutilizatorului prin realizarea si testarea de prototipuri partiale exploatarea prototipului parial de ctre utilizator permite precizareacerinelor sau stabilirea soluiilor reale i complete pentru produsul informaticfinal

    Dezavantaje:

    19 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Dezavantaje: cost ridicat si durata lunga a ciclului de realizare

  • Variatiile ciclului de realizare

    Modelul in V

    20 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

  • Variatiile ciclului de realizare

    Modelul in V

    Avantaje:

    Mai bun decat modelul in cascada din punct de vede al testarii si asigurarii calitatiideoarece planul de testare este facut inca de la inceput

    21 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Dezavantaje:

    Modificarea cerintelor este foarte greu de gestionatNu se pot produce prototipuri timpurii

  • Tipuri de teste. Teste unitare

    O unitate este cea mai mica parte testabila a unei aplicatii:

    functie/procedura intr-un limbaj de programare

    Testarea este efectuata de programatorul care o

    implementeaza, pe baza specificatiei

    In cursul testarii, unitatea este tratata ca o entitate In cursul testarii, unitatea este tratata ca o entitate

    independenta, care nu necesita prezenta altor componente

    ale programului

    Necesita implementarea de module stub(ciot) si a unui

    modul driver

    22 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

  • Tipuri de teste. Teste unitare

    Modulul stub este o secventa de cod care simuleaza comportamentul

    unei componente neimplementate inca

    Modul driver este o secventa de cod care conduce integrarea astfel

    incat unitatea testata poate primi datele de la componentele

    neimplementate inca, sau pot fi preluate dintr-un fisierneimplementate inca, sau pot fi preluate dintr-un fisier

    23 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

    Modul driver

    Modul stub Modul stub

    Modul testat / unitate testata

  • Tipuri de teste. Teste de integrare

    Sunt dedicate verificarii interactiunilor dintre module,

    grupuri de module, subsisteme, pana la nivel de sistem.

    Exista mai multe metode de realizare a testelor de

    integrare.

    Este necesara implementarea de module "ciot" si module Este necesara implementarea de module "ciot" si module

    "driver".

    Numarul de module "driver" si de module "ciot" necesare

    in testele de integrare depinde de ordinea in care sunt

    integrate modulele.

    Testele de integrare necesita, de asemenea, instrumente

    de gestiune a versiunilor si a configuratiilor.

    24 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

  • Tipuri de teste. Teste de integrare

    Metoda "big-bang"

    Sunt integrate intr-un program executabil toate modulele existente la un

    moment dat.

    Modulele "driver " si "ciot" necesare sunt de asemenea integrate.

    Metoda este periculoasa caci toate erorile apar in acelasi timp si

    localizarea lor este dificila.localizarea lor este dificila.

    Integrare progresiva

    In fiecare pas se adauga ansamblului de module integrate numai un singur

    modul.

    Erorile care apar la un test provin din ultimul modul integrat.

    2 metode:

    Integrare ascendenta

    Integrare descendenta

    25 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

  • Tipuri de teste. Teste de sistem

    Sunt teste ale sistemului de programe si echipamente complet.

    Sistemul este instalat si apoi testat in mediul sau real de functionare.

    Sunt teste de conformitate cu specificatia cerintelor software :

    teste functionale, prin care se verifica satisfacerea cerintelor

    functionale

    teste prin care se verifica satisfacerea cerintelor ne-functionale :

    de performanta,

    de fiabilitate,

    de securitate, etc.

    Adesea, testele de sistem ocupa cel mai mult timp din intreaga

    perioada de testare.

    26 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

  • Tipuri de teste. Teste de acceptare

    Sunt teste de conformitate cu produsul solicitat, conform contractului

    cu clientul (->Specificatia cerintelor utilizatorilor).

    Aceste teste sunt uneori conduse de utilizator.

    Pentru unele produse software, testarea de acceptare are loc in doua

    etape:etape:

    1.Testarea alfa: se efectueaza folosindu-se specificatia cerintelor

    utilizator

    2.Testarea beta: programul este distribuit unor utilizatori selectionati,

    realizandu-se astfel testarea lui in conditii reale de utilizare.

    27 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

  • Tipuri de teste. Teste regresive

    Teste executate dupa corectarea erorilor, pentru a se

    verifica daca in cursul corectarii nu au fost introduse alte

    erori.

    Aceste teste sunt efectuate de regula in timpul intretinerii.

    Pentru usurarea lor este necesar sa se arhiveze toate Pentru usurarea lor este necesar sa se arhiveze toate

    testele efectuate in timpul dezvoltarii programului, ceea ce

    permite, in plus, verificarea automata a rezultatelor testelor

    regresive

    28 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN

  • Testarea, vTestarea, verificarea si validarea erificarea si validarea produselorproduselor

    Efectuate pe tot parcursul ciclului de viata

    Obiectivul: de a reduce erorile software la un nivel acceptabil

    Cauza/sursa erorilor:

    Cele mai multe sunt cauzate de deficiente in specificatii

    Urmeaza cele rezultate in urma erorilor de proiectare

    Relativ putine (sub 15%) sunt erori directe de programere

    Efortul necesar: 30-90% din efortul total al proiectului, in functie de

    complexitatea si gradul de risc al functionarii necorespunzatoare a

    software-ului.

    Organizarea activitatilor de verificare si validare este inclusa in

    activitatile de management ale proiectului software si specificate in

    Planul de Verificare si Validare

    29 Testarea software si asigurarea calitatii - curs1Conf.dr.ing. Ioana FAGARASAN