Documente Academic
Documente Profesional
Documente Cultură
Dinamic
Urma
Static
Date
Metoda aserţiunilor
intermitente
Evaluare
Iteraţie
Metoda execuţiei
Control
MO
MI MC MR
MII1 MII2 MII3 MCC1 MCC2 MCC3 MCC4 MRR1 MRR2 MRR3
SMC
RNC =
SMT
unde:
SMC – suma complexitǎţii modulelor înzestrate cu caracteristica corectitudine
SMT – suma complexitǎţii tuturor modulelor care alcǎtuiesc programul
Deci,
NM
∑α C
i =1
i i
RNC = NM
∑C
i =1
i
1, DA
αi =
0, NU
unde:
NM – reprezintǎ numǎrul total de module
Ci – complexitatea asociatǎ modului i
α i = 1 - înseamnǎ cǎ modul i este înzestrat cu caracteristica de corectitudine
α i = 0 - înseamnǎ cǎ modul i nu este înzestrat cu caracteristica de corectitudine
TESTAREA APLICAŢIILOR INFORMATICE
Testarea este una dintre etapele deosebit de importante din ciclul de dezvoltare a
aplicaţiilor pentru cǎ:
- aplicaţia opereazǎ independent de elaborator; elaboratorul o implementeazǎ
şi în cazul apariţiei de erori se declanşeazǎ modificǎri în baze de date,
eronate, se acceseazǎ eronat resurse, se traverseazǎ eronat fluxul de
prelucrare, utilizatorul nu are posibilitatea sǎ intervinǎ cel puţin sǎ stopeze
anomaliile în timp real, ceea ce îi creazǎ un nivel foarte ridicat de
insatisfacţie în raport cu modul anterior de soluţionare a problemelor sale,
mod neinformatizat sau slab informatizat;
- utilizatorul foloseşte direct aplicaţia în comparaţie cu operatorii specializaţi
care ştiu sǎ interpreteze coduri, mesaje, care ştiu când sǎ reia şi cum sǎ reia
anumiţi paşi ai rezolvǎrii problemei; utilizatorii în mod natural
interacţioneazǎ cu aplicaţia informaticǎ şi acceseazǎ fǎrǎ artificii strict
resursele pe care aplicaţia i le pune la dispoziţie;
- existǎ o separare exactǎ a rolului pe care-l au utilizatorii de ceea ce
efectueazǎ administratorii de aplicaţii şi de ceea ce oferǎ asistenţa
elaboratorului; o aplicaţie informaticǎ care include erori genereazǎ costuri de
depanare foarte mari la nivelul elaboratorului şi pierderi prin nefuncţionare,
la nivelul beneficiarului;
Testarea programelor software este acţiunea de a pune în practică unul sau mai
multe teste, unde un test este o operaţie tehnică care determină una sau mai multe
caracteristici ale unui element sau sistem software dat, în conformitate cu o procedură
specificată.
Totalitatea activităţilor de testare software sunt de obicei referite ca fazele sau
stagiile testării software.
O fază de testare software este un proces în care se garantează că unele aspecte
ale produsului, sistemului sau elementului software funcţionează corespunzător.
Numărul fazelor testării software întrebuinţate variază foarte mult în funcţie de
companii şi aplicaţii. Numărul fazelor conform [JONE97] variazǎ între 1 şi 16. Pentru
aplicaţiilor software mari, companiile folosesc în mod tipic un proces de 12 faze care
sunt unite în trei categorii:
- fazele testării generale includ testarea subrutinelor, testarea elementelor,
testarea noilor funcţii, testarea regresivă, integrarea şi testarea sistemului;
- fazele testării specializate constau în testarea calităţii sau solicitărilor, testarea
performanţei, testarea platformei şi testarea protecţiei;
- fazele testării prin implicarea utilizatorilor încorporează testarea utilităţii şi
testarea pe teren.
După ce programul software ajunge într-o fază operaţională, începe faza de
mentenanţă în care se fac îmbunătăţiri şi reparaţii asupra programului software. În
timpul acestei faze, unele sau toate fazele testării software sunt repetate. Multe din
aceste faze sunt comune şi foarte bine înţelese de industria de software comercial, dar
nu toate companiile utilizează acelaşi vocabular pentru a le descrie.
Fazele testării generale sunt fundamentale în testarea software şi au loc pentru
toate programele. Urmatoarele faze sunt considerate ca fiind fazele testării software
generale:
- testarea subrutinelor / unităţilor
- testarea noilor funcţiuni
- testarea regresiei
- testarea integrării
- testarea sistemului
În faza de testare a subrutinelor unităţilor se execută testarea subrutinelor, cea
mai de jos formă de testare, în timpul scrierii programului. Programatorii testează o
subrutină terminată pentru a vedea dacă ea îndeplineşte funcţia aşteptată.
Testarea unităţilor reprezintă testarea modulelor complete sau a programelor
mici care, în mod normal, au între 100 şi 1000 de linii de cod. Cu toate că testarea
unităţilor este adesea efectuată informal, este faza unde începe planificarea testului şi
construirea cazurilor de test.
Testarea noilor funcţiuni valideazǎ noile caracteristici care au fost adăugate la
pachetul software. Folosită adesea în conjuncţie cu testarea regresivă, testarea noilor
funcţiuni este utilizată în mod comun când aplicaţiile existente încep să fie actualizate şi
modificate.
Testarea regresivă este utilizată pentru a se asigura că funcţiile existente ale
unui produs software nu au fost alterate accidental prin adăugarea de noi caracteristici
software. În timp ce programul software se dezvoltă, testarea regresivă devine una
dintre cele mai importante şi întinse forme ale testării deoarece librăria cazurilor de test
disponibile de la lansarea anterioară continuă să crească.
Testarea integrării se concentrează pe testarea grupurilor de module, programe,
aplicaţii sau sisteme pe care programatorii le combină pentru a forma un sistem mai
mare. Ea se bazeazǎ pe testarea interoperabilităţii dintre elementele integrate în produsul
software.
Testarea sistemului implică testarea sistemului ca un întreg. Este executată de
dezvoltatorii de software şi de obicei este ultima formă de testare internă înainte ca
persoanele care cumpǎrǎ produsul să fie implicate în testarea câmpurilor, testarea beta.
Fazele testării specializate apar mai puţin frecvent decât fazele testării generale
şi sunt mult mai comune pentru programele software cu criterii foarte bine specificate.
Următoarele faze sunt considerate ca fiind fazele testarării software specializate:
- testarea stresului, capacităţii sau încărcării
- testarea supravieţuirii/ tratării erorilor
- testarea recuperării
- testarea securităţii
- testarea platformei
- testarea protecţiei virale
Testarea stresului, capacităţii sau încărcării apreciază abilitatea unei aplicaţii
sau unui sistem de a funcţiona aproape sau dincolo de limitele capacităţilor sau
cerinţelor specificate. Faza de testare a stresului, încărcării sau capacităţii este adesea
considerată sinonimă cu faza de testare a performanţei.
Testarea stresului încearcă să întrerupă sistemul prin supraîncărcarea lui cu
volume mari de date. Este de obicei realizată de dezvoltatorul de software după, sau în
conjuncţie cu, testarea integrării sau sistemului. Testarea stresului nu este realizată mai
devreme deoarece întreaga aplicaţie este de obicei necesară.
Testarea supravieţuirii / tratării erorilor evaluează abilitatea produsului
software de a prelucra corect tranzacţiile incorecte şi de a depăşi condiţiile de eroare
într-o manieră rezonabilă.
Testarea recuperării estimează abilitatea produsului software de a restarta
operaţiile după ce integritatea aplicaţiei a fost pierdută.
Testarea securităţii este utilizată pentru a evalua dacă un produs software
previne în mod corespunzător accesul nepotrivit la informaţie.
Testarea securităţii este de obicei realizată înainte şi după ce produsul a fost
lansat prin testare personală sau prin consultanţi extrem de specializaţi angajaţi de
utilizator [PERRY95].
Testarea performanţei este utilizată pentru a determina dacă o aplicaţie
împlineşte propriile scopuri de performanţă [JONE97]. În mod tipic faza de testare a
performanţei este executată de dezvoltatorul de software în timpul, sau în conjuncţie cu,
testarea sistemului. Evaluarea performanţelor sunt standarde pe care alte măsuri le
adreseazǎ şi sunt utilizate pentru a furniza analize competitive, informaţii pe care
personalul de la marketing şi vânzări le utilizeazǎ pentru a da consumatorilor măsuri ale
calităţii produsului software relativ la alte produse [WILS95].
Consumatorii utilizează marketingul evaluării performanţelor pentru a compara
performanţele înainte de a cumpăra, în timp ce proiectanţii şi arhitecţii de sisteme
utilizează evaluarea performanţelor tehnice pentru a caracteriza performanţa înainte de
fabricaţie[WILS95].
Testarea platformei, cunoscută şi sub numele de faza de testarea a
compatibilităţii, evaluează abilitatea programului software de a opera pe mai multe
platforme harware sau pe mai multe sisteme de operare sau în interconexiune cu mai
multe produse software [JONE97].
Majoritatea dezvoltatorilor de software comercial în mod specific dirijează
testarea protecţiei virale către asigurarea ca primele copii ale pachetelor software să nu
conţină virusuri [JONE97].
Fazele testării prin implicarea utilizatorilor
Pentru multe proiecte software, utilizatorii şi consultanţii lor sunt participanţi
activi la diferitele faze de-a lungul procesului de dezvoltare software, incluzând diferite
faze ale testării.
Utilizatorii participă în general la următoarele testări:
- testarea utilităţii
- testarea beta
- testarea alfa
- testarea acceptării
Testarea utilităţii, cunoscută şi ca testarea factorilor umani, este directată către
identificarea operaţiilor care sunt dificile sau incomode pentru utilizatori. Testarea
utilităţii este în general realizată înainte de testarea beta. Ea implică observarea
clienţilor actuali care utilizează produsul software sub situaţii controlate sau
instrumentate.
Testarea beta este un test extern ce implică cumpărătorii. Testarea beta se face
în mod uzual după testarea sistemului.
Testarea beta (externă) şi testarea utilităţii (internă) se fac concurent. Testarea
beta cuprinde înţelegeri speciale cu clienţii pentru a evita riscul proceselor dacă
produsul software are probleme serioase [JONE97].
Următoarele două activităţi de testare sunt asociate cu, sau au scopuri similare
cu, testarea pe teren.
Activitǎţile pentru testarea alfa sunt utilizate în mod propriu când sunt implicate
laboratoare specializate pentru a construi produse hardware/software complexe noi pe
care viitori clienţi le testeazǎ.
Cumpărătorii testează aceste produse sub condiţii controlate înainte de a avea
aceste sisteme software instalate pe propriile lor calculatoare.
Dezvoltatorii de software care construiesc sisteme de software complexe
utilizează în primul rând testarea în laborator.
În aceste cazuri testarea beta este imposibilă datorită constrângerilor de
hardware şi software.
Testarea acceptării este utilizatǎ pentru a determina dacă un produs satisface
criteriul de acceptare predefinit. Este o combinaţie de alte tipuri de testări pentru a
demonstra dacă produsul satisface cerinţele utilizatorului.
Testul acceptării cumpărătorului este în mod normal realizat pentru programele
software realizate prin contract şi pentru sistemele software foarte mari, dar el este
foarte rar utilizat în volumul ridicat ale produselor software comerciale.
Uneori testările alfa şi beta sunt considerate ca fiind parte ale testării acceptării
[JONE97], [KIT95].
Se citeşte
nume fişier
Tip
Se descrie
articol
Restricţii
Se citeşte nr. de
articole
Se genereazǎ
articol
Se scrie articol
în fişier
NU Se verificǎ dacǎ
s-au generat toate
DA
unde:
CTi – reprezintǎ costul testǎrii la iteraţia i
n – este numǎrul total de iteraţii
Eficienţa echipei de testare ef este datǎ de raportul:
1
ef =
n
unde n reprezintǎ lungimea procesului de testare ca numǎr de iteraţii.
Pentru fiecare echipǎ este necesar sǎ se înregistreze consumuri de performanţǎ
pentru a putea obţine în timp util baza de date solicitatǎ în procesul de estimare a
coeficienţilor pentru modelele testǎrii.