testareasoftware siasigurarea calitatii software si...•mai bun decatmodelulin cascadadin punctde...
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., FĂGĂRĂŞAN Ioana, PUPĂZĂ D., Analiza desistem în informatica industrială, Editura AGIR, Bucureşti,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
2005�KSHIRASAGAR 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 utilizat•Fazele si procesele sunt terminate pe rand•Bun pentru proiectele mici unde cerintelesunt bine intelese de la inceput
Dezavantaje:
•Modificarea cerintelor este foarte greu de gestionat•Nu 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 parţial de către utilizator permite precizareacerinţelor sau stabilirea soluţiilor 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 gestionat•Nu 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