Sunteți pe pagina 1din 5

Lucrarea practic nr.

3
TEMA: Metode de testare a programelor. Metoda cutiei negre de testare a
programelor
SCOPUL LUCRR!!:
1. Formarea deprinderilor de testare a funcionalitilor unui produs.
2. Formarea abilitilor de partiionare n clase de echivalen a datelor de intrare.
3. Utilizarea tabelelor de decizie pentru a crea cazuri de test.
"O#!U"! TEORET!CE
$. Metode de testare
Aciunea de testare a unui program se deosebete de celelalte faze prin care acesta trece
!specificare" proiectare" programare# prin caracterul su n aparen $demolator$. %ntr&adevr" n timp ce
alte faze au o esen constructiv" testarea are n aparen un caracter mai degrab distructiv" deoarece
scopul acestei aciuni este de a pune n evidena proasta funcionare a produsului obinut. 'in punct de
vedere psihologic programatorul trebuie s adopte n aceasta etap o atitudine $dumnoas$ fa de
creaia sa i s&i e(pun defectele.
)sena procesului este fr ndoial tot constructiv" scopul su fiind de a pune n operare real un
produs la parametrii prevzui. *rin testare se nelege de fapt e(ecutarea programului cu intenia
declarat de a descoperi cel puin o eroare. )a se bazeaz pe imaginarea unor eantioane (test cases) de
date de intrare care s conduc la depistarea erorilor ntr&un timp c+t mai scurt i cu efort c+t mai mic" n
cele ce urmeaz" prin test se nelege chiar aceast mulime finit de eantioane.
O%ser&a'ie. ,umrul eantioanelor dintr&un test influeneaz relevana testului" dar nu este un
element determinant. )senial este calitatea datelor alese-de pild" n cazul instruciunilor
i( x . y t)en
m / 0 x else
m / 0 y-
*riteln !1cea mai mare valoare dintre x si y este m#
testul cu 3 eantioane
x 0 2" y 0 1- x 0 1" y 0 2- x 0 1" y 0 1
este neconcludent n timp ce testul cu un eantion x 0 2" y 0 1 este concludent.
%n ultimele decenii au aprut o mare varietate de metode de elaborare a unor astfel de eantioane
care pun la dispoziia programatorului ci de abordare sistematic a activitii de testare" ce asigur o
probabilitate ridicat de descoperire a erorilor. Aceste metode se bazeaz mai mult sau mai puin pe una
din urmtoarele strategii/
1# testare funcional sau metoda cutiei negre : cunosc+nd funciile pe care trebuie s le
ndeplineasc programul" eantioanele sunt astfel concepute nc+t s se asigure c fiecare funcie este pe
deplin realizat-
2# testare structural sau metoda cutiei transparente : cunosc+nd structura !instruciunile#
algoritmului" eantioanele sunt astfel concepute nc+t s se asigure c sunt testate convingtor toate prile
programului.
+. Metoda cutiei negre. Clase de ec)i&alen' a datelor de intrare
%n aceast strategie" testele sunt elaborate pe baza specificaiei programului. *rogramul este vzut
ca o cutie neagr a crei comportare este determinat prin prelucrarea unor date de intrare i observarea
rezultatelor obinute.
*roblema central este de a concepe date de intrare prin prelucrarea crora defectele algoritmului
s fie puse n eviden prin observarea rezultatelor. 3tabilirea acestora depinde n mare msur de
1
ndem+narea i e(periena celui care face testarea" dar e(ist i idei cu aplicabilitate mai general care pot
s ghideze aciunea de selectare a eantioanelor de test.
)ste util s ne imaginm domeniul datelor de intrare ca fiind partiionat n clase de echivalen.
Aceste clase de echivalen ar trebui s fie astfel determinate nc+t pentru datele din aceeai clas
programul testat s se comporte la fel. 'ac aceast condiie este ndeplinit" atunci testul const n
e(ecutarea programului utiliz+nd un set de date ce conine cte un eantion din fiecare clas.
Un aspect care nu trebuie negli4at n definirea claselor de echivalen este considerarea valorilor
netipice ale domeniului datelor de intrare" numite deseori valori $de la marginea$ domeniului.
5estul realizat cu setul de date propus este concludent dac pe unele eantioane nu se obin
rezultate corecte. 3e impune deci analiza cauzelor care provoac funcionarea necorespunztoare i
eliminarea acestora. Aceast aciune se numete depanare a programului i este consecina unui test
concludent.
%n situaia ideal ar trebui ca rezultatele testelor s fie aceleai" indiferent de eantionul ales dintr&o
clas de echivalen. *rin aceast calitate se legitimeaz faptul c eantionul este reprezentativ pentru
clasa din care face parte. 6n realitate criteriile de definire a claselor de echivalen i fineea partiiei
obinute influeneaz reprezentativitatea eantioanelor. 7binerea unei partiii corespunztoare este un
proces euristic care se desfoar gradual" diri4at i de rezultatele testelor anterioare.
+.$. Criterii de de(inire a testelor
Fie P un program dat. Alegerea eantioanelor ce vor face parte dintr&un test este guvernat de un
ansamblu de condiii stabilite de cel ce face testarea. Acest ansamblu se numete criteriu de alctuire a
testelor i definete o mulime !finit sau infinit# de teste. %n anumite situaii este convenabil s asimilm
un criteriu cu mulimea pe care o definete. 'e pild" n cazul unei partiii a datelor de intrare n clasele de
echivalen c
1
" . . .c
n
se poate lua drept criteriu produsul cartezian C 0 c
1
( ... ( c
n
- acesta se numete
criteriu indus de partiie. Un criteriu C !mulime de teste# se numete compatiil dac testele din C sunt
sau toate concludente sau toate neconcludente. %n cazul unui criteriu compatibil este deci suficient
considerarea unui singur test. 'in pcate" nu e(ist un algoritm general pentru a stabili dac un criteriu
este sau nu compatibil !problema compatibilitii criteriilor este nedecidail! ca i alte probleme
importante precum terminarea programelor" echivalena lor" corectitudinea etc.#.
Un criteriu C este mai tare !mai fin# dec+t alt criteriu " dac pentru orice test !mulime de
eantioane# # C e(ist un test $ " astfel c $ #- cu alte cuvinte" orice test din C poate fi adaptat"
prin eliminarea unor eantioane" astfel nc+t s satisfac criteriul ". 3e observ c dac o partiie c
1
" . . ."
c
n
este o rafinare a partiiei d
1
" . . ." d
m
atunci criteriul c
1
(. . .( c
n
este mai tare dec+t d
1
( . . .( d
m
. 8riteriul
C este mai un dec+t " dac este mai fin dec+t " i e(ist un test $ " neconcludent i un test # C
concludent cu proprietatea $ #- cu alte cuvinte" testul $ devine concludent prin adugarea de
eantioane noi" cerute de criteriul C.
E,emplu.
Fie urmtorul program 5urbo *ascal/
var (" 9 / string-
egal / boolean-
i / integer-
begin
:rite!; ( 0;#- readln!(#-
:rite!1 9 0;#- readln!9#-
egal /0 !length!(# 0 length!9##-
i( egal t)en
(or i /0 1 to length!(# do
egal /0 !(<i= 0 9<i=# -
i( egal t)en :riteln!;( si 9 sunt identice;#
else :riteln!;( si 9 sunt distincte;#
end.
3copul programului este de a verifica dac irurile ( i 9 sunt identice. 3 se elaboreze un test
utiliz+nd clase de echivalen i s se depaneze programul.
2
TESTARE: 8riteriile de organizare a claselor de echivalen pot fi/ lungimi egale sau diferite-
iruri identice sau diferite- lungime minim !l# sau oarecare- iruri distincte care sf+resc cu acelai
caracter. >ezult ? clase de echivalen i se poate considera urmtorul test/
1. ( 0 ; a; - 9 0 ; a; -
2. ( 0 ;abc;- 9 0 ;abc;-
3. ( 0 ;a;- 9 0 ;b;-
@. ( 0 ; ab; - 9 0 ; ac; -
A. ( 0 ;ab;- 9 0 ;cb;- B
?. ( 0 ;ab;- 9 0 ;abc;"
5estul este concludent !pe eantionul A nu se obin rezultate corecte#. 8riteriul indus este
compatibil. 3e depaneaz schimb+nd instruciunea
egal /0 !( <i= 0 9<i= # prin egal /0 egal and !(<i= 0 9<i= #
3. Testarea &alorilor de la limite
8lasa de echivalen de testare este cea mai principala tehnic de test design. )a a4ut testerilor s
aleag un subset din posibile cazuri de test menin+nd totodat acoperirea logic. 5estarea clasei de
echivalen are si alt avanta4. )a ne conduce la testarea valorilor de la limite" a doua tehnic de test
design prezentat.
*aii pentru utilizarea testrii valorilor de la limite sunt simpli. %n primul r+nd" se identific clasele
de echivalen. %n al doilea r+nd" se identific limitele fiecrei clase de echivalen. %n al treilea r+nd" se
creeaz cazurile de test pentru fiece valoare aleg+nd un punct pe limit" un punct apropiat mai 4os de
limit" i un punct apropiat mai sus de limit. $Cai 4os$ i $mai sus$ sunt termeni relativi i depind de
valoarea unitilor de date. 'ac limita este 1? i unitatea este $integer$ atunci punctul $de 4os$ este 1A i
punctul $de sus$ este 1D. 'ac limita este EA.22 i unitatea este $dolari i ceni U3$ atunci punctul de 4os
este E@.FF i cel de sus este EA.21. *e de alt parte" dac valoarea este EA i unitatea este $dolari U3$
atunci punctul de 4os este E@ i cel de sus este E?.
7bservai c un punct apropiat mai sus de limit poate fi n alt clas de echivalen. ,&are nici&un
sens de dublat testul. Analogic poate fi adevrat i punctul apropiat mai 4os de limit.
'esigur" se poate de creat cazurile de test adugtoare mai departe de limitele !n cadru claselor de
echivalen# dac avei resursele.
5estarea valorilor de la limite poate reduce semnificativ numrul de cazuri de test ce trebuie create
i e(ecutate. )ste cel mai potrivit sistemului n care ma4oritatea datelor de intrare iau valori n cadrul unor
iruri sau seturi.
5estarea valorilor de la limite este la fel aplicabil la testarea unitilor" de integrare" a sistemului"
i la nivelurile testrii de acceptare. 5ot ce se cere sunt datele de intrare ce pot fi mprite i limitele ce
pot fi identificate bazate pe cerinele sistemului.
-. Testarea ta%elelor de deci.ie
5abelele de decizie sunt instrumentele e(celente pentru capturarea anumitor tipuri de cerine
sistemului i pentru documentarea design&ului sistemului intern. )le sunt folosite pentru nscrierea
regulilor comple(e din business ce sunt implementate de sistem. 'e asemenea" ele pot servi ca ghid
pentru crearea cazurilor de test.
5abelele de decizie sunt instrumentele vitale n cutia personal de instrumente. 'in pcate" muli
analiti " designeri" programatori" i testeri nu sunt obinuii cu aceast tehnic.
5abelele de decizie prezint reguli comple(e din business bazate pe un set de condiii. Form
general este/
5abel @&1/ Forma general a unui tabel de decizie.
Regula $ Regula + / Regula p
Condi'ii
8ondiia &1
3
5abel @&1/ Forma general a unui tabel de decizie.
Regula $ Regula + / Regula p
8ondiia &2
G
8ondiia & m
Ac'iune
Aciune&1
Aciune&2
G
Aciune & n
8ondiiile 1 & m sunt condiii variate de intrare. Aciunile 1 H n sunt aciuni ce ar trebui s fie luate
n dependen de diferite combinaii a condiiilor de intrare. Fiece regul definete o combinaie unic a
condiiilor ce rezult n e(ecutarea !IardereaJ# aciunilor asociate cu regula ceea. 7bservai c aciunile
nu depind de ordinea n care condiiile sunt evaluate" dar numai de valorile lor. !5oate valorile se
consider a fi disponibile simultan.# 'e asemenea" aciunile nu depind de condiiile specificate" sau de
orice condiii de intrare precedent sau starea sistemului.
5abelele de decizie pot specifica mai mult de o aciune pentru fiecare regul. 'in nou" aceste
reguli pot fi unice sau pot fi mprite.
5abel @&2/ Un tabel de decizie cu aciuni multiple.
Regula $ Regula + Regula 3 Regula -
Condi'ii
8ondiie&1
'a 'a ,u ,u
8ondiie&2 'a ,u 'a ,u
Ac'iuni
Aciune&1
)(ecut K )(ecut L )(ecut K )(ecut M
Aciune&2 )(ecut A )(ecut N )(ecut N )(ecut N
%n aceast situaie" alegerea cazurilor de test este simpl & fiecare regul !coloana vertical# devine
un caz de test. 8ondiiile specific date de intrare i aciunile specific rezultatele ateptate.
%n timp ce e(emplele precedente folosesc simple condiii binare" condiii pot fi mult mai
comple(e.
5abel @&3/ Un tabel de decizie cu condiii ce nu sunt binare.
Regula $ Regula + Regula 3 Regula -
Condi'ii
8ondiie&1
2H1 1H12 12H122 122H1222
8ondiie&2 OA A ? or D .D
Ac'iuni
Aciune&1
)(ecut K )(ecut L )(ecut K )(ecut M
Aciune&2 )(ecut A )(ecut N )(ecut N )(ecut N
@
%n aceast situaie alegerea cazului de test este puin mai comple( & fiecare regul !coloana
vertical# devine un caz de test unde valorile alese trebuie sa satisfac condiiile. Aleg+nd valorile
corespunztoare noi trebuie s crem urmtoarele cazuri de test/
5abel @&@/ )(emplu de caz de test.
!0 Ca. de Test Condi'ie1$ Condi'ie1+ Re.ultatul A2teptat
581 2 3 )(ecut K P )(ecut A
582 A A )(ecut L P )(ecut N
583 A2 D )(ecut K P )(ecut N
58@ A22 12 )(ecut M P )(ecut N
'ac sistemul sub test are reguli comple(e de business" i dac analitii sau designerii nu au
documentat aceste reguli n aceast form" ar trebui s acumuleze aceast informaie i s&o reprezinte n
form de tabel de decizie. Cotivul este simplu. 8omportamentul sistemului dat este reprezentat n aceast
form complet i compact i cazurile de test pot fi create direct din tabelul de decizie.
%n testare" se creeaz cel puin un caz de test pentru fiecare regul. 'ac condiiile regulii sunt
binare" un singur test pentru fiecare combinaie este suficient. *e de alt parte" dac o condiie este un ir
de valori se consider testarea at+t pe limita de sus c+t i pe cea de 4os. %n acest caz noi unim ideea
5estrii Qalorii de la Rimite cu 5estarea 5abelelor de 'ecizii.
5estarea tabelelor de decizii poate fi folosit oric+nd sistemul cere implementarea regulilor
comple(e din business" c+nd aceste %eguli pot fi reprezentate ca o combinaie de condiii i c+nd aceste
condiii au aciuni discrete asociate cu ele.
SARC!"A 0E 3A4:
1. 'e determinat criteriile de organizare a claselor de echivalen i a tabelelor de decizie.
2. 'e alctuit un test concludent conform acestor criterii inclusiv testarea valorilor de la limite.
3. 'e evideniat cazurile de test pe care se obin rezultate eronate.
@. 'e clasificat i de comentat erorile gsite.
A. 3crierea unui raport despre ndeplinirea lucrrii cu concluziile respective.
5"TRE3R! 0E CO"TROL:
1. 8are sunt cele mai cunoscute tehnici NlacS&No( de testareT
2. 5rebuie de testat programul cu intrri ilegaleT
3. 8e este depanarea unui programT
A

S-ar putea să vă placă și