Documente Academic
Documente Profesional
Documente Cultură
RAPORT
A verificat:
asist. univ. C. Rusu
Chisinau 2020
Scopul lucrării:
Obținerea deprinderilor de proiectare a cazurilor de testare. Familiarizare cu algoritmul
McCave și tehnica White-Box.
Obiectivele lucrării:
Înțelegerea noțiunii de caz de testare;
Înțelegerea metodologiei de dezvoltare a aplicației:
dezvoltarea condusă de cod;
dezvoltarea bazată pe cod.
Formarea competențelor de partiționare în criterii de acoperire;
Utilizarea graficului fluxului de date.
Mersul lucrării:
Cu cât este mai complexă structura codului, cu atât este mai dificil de înțeles, e mai probabil
să conțină defecte, va fi mai dificil de actualizat, va dura mai mult timp realizarea lui, și va fi mai
dificil de reutilizat.
Numărul complex ciclomatic al lui McCabe (CCN) măsoară numărul de căi liniare
independente prin graful programului.
C=E−N +2∗P, unde
E – numărul de muchii al grafului;
N – numărul de noduri;
P – numărul de noduri care conțin puncte de ieșire din graful de control.
Codul:
std::vector<int> getUnique(std::vector<int> v) {
std::vector<int> currVector;
int crit;
for(std::vector<int>::iterator it = currVector.begin(); it !=
currVector.end(); it++)
if((*it) == v[i]) {
crit = 1;
break;
}
if(crit == 0)
currVector.push_back(v[i]);
}
return currVector;
}
Conform grafului din figura 1, putem evalua următoarele valori ale parametrilor de
complexitate ciclomatică.
E = 15 (muchii).
N = 12 (noduri).
P = 1 (puncte de ieșire din program)
Prin urmare, complexitatea ciclomatică pentru graful de control de mai sus este 5, care este
un număr acceptabil. În mod similar, utilizând aceeași formulă, putem calcula complexitatea
ciclomatică pentru orice cod sursă, și, pe baza rezultatului, putem determina riscurile și costul de
întreținere asociat. Poate fi foarte util pentru bugetul general al proiectelor.
Pentru calcularea complexității ciclomatice a unei funcții sau bucle, ne putem conduce și
după următorul tabel:
Începem cu valoarea 1, C + for (+1) + for (+1) +If (+1) +If (+1) = 5. Drept rezultat obținem
complexitatea ciclomatică C = 5
TC1 0, 1, 3, 4, 6, 0, 1, 3, 4, 6, 2 0, 1, 3, 4, 6, 2
3, 2, 1
TC2 1, 1, 1, 1, 1, 1 1 1
TC3 1, 2, 3, 4, 5 1, 2, 3, 4, 5 1, 2, 3, 4, 5
TC4 v is empty Vector is empty Vector is empty
Concluzii:
În timpul elaborării acestei lucrări de laborator am studiat complexitatea ciclomatică a lui
McCabe. Acestea este o metrică simplă și intuitivă care ne permite să obținem rezultate fiabile la
nivelul funcției. În testele de mai sus nu există multe aspecte de testat, desigur, cu creșterea
complexității crește direct proporțional și nivelul de teste pentru testare. Aceasta este ideală
pentru testarea programelor ce conțin metode standarte C/C++ însă, în limbajele de nivel înalt nu
face deloc față.