Documente Academic
Documente Profesional
Documente Cultură
Popa Ștefania Ramona - Referat Inginerie Software
Popa Ștefania Ramona - Referat Inginerie Software
Cerinte
Dezvoltarea bazata pe testare impune dezvoltatorilor crearea de teste automate unitare care
definesc cerintele de cod (imediat), inainte de a scrie codul in sine. Testele contin afirmatii
care sunt fie adevarate fie false. Trecand cu bine testele este confirmat comportamentul
corect, prin urmare dezvoltatorii evolueaza si refactorizeaza codul. Dezvoltatorii folosesc
xUnit, pentru a crea si a rula automat seturi de cazuri de testare.
Aceasta valideaza faptul ca testarea functioneaza corect si ca noul test nu trece din greseala,
fara a solicita un cod nou. Acest pas, de asemenea, verifica si testul in sine, in varianta
negativa: se exclude posibilitatea ca noul test va trece mereu, si, prin urmare, sa fie lipsit de
valoare. Noul test ar trebui sa nu reuseasca, pentru motivul asteptat. Acest lucru sporeste
increderea ca testarea este eficienta,si va trece doar in cazuri voite.
Daca toate cazurile de testare trec acum, programatorul poate fi sigur ca acel cod indeplineste
toate cerintele de testare.Acesta este un bun punct de la care sa inceapa etapa finala a ciclului.
5. Cod de refactorizare
Acum, acest cod a fost curatat, in functie de necesitati. Prin re-rularea testelor, dezvoltatorul
poate fi sigur ca operatiunea nu este daunatoare functionalitatii existente. Conceptul de
eliminare a dublurii este un aspect important pentru orice software de proiectare.
In acest caz, se aplica de asemenea eliminarea oricarei suprapunere intre codul de testare si
codul de productie.
Repetarea
Pasii ar trebui sa fie intotdeauna mici, cu cat mai putini numerotati de la 1-10 in fiecare test.
In cazul in care noul cod nu satisface rapid un test nou, sau testul esueaza in mod neasteptat,
programatorul ar trebui sa anuleaze sau sa revina de preferinta pentru evitarea depanarii
excesive. Integrarea continua ajuta prin furnizarea de puncte de control reversibil. Atunci
cand se utilizeaza biblioteci externe, este important sa nu se faca cresteri, sau daca se fac,
acestea sa fie atat de mici incat sa eficientizeze testarea bibliotecii in sine, cu exceptia cazului
in care exista un motiv sa creada ca biblioteca este virusata sau nu este suficient de abilitata
pentru a servi nevoilor programului principal.
Dezvoltarea stil
Concentrandu-ne pe scrierea codului necesar trecerii testelor totul poate fi mai curat si mai
clar decat prin recompunerea unei alte metode.
In primul rand se compromit cazurile de testare. Ideea este de a se asigura ca testul chiar
functioneaza si poate detecta o eroare. Odata ce acest lucru este demonstrat, functionalitatea
de baza poate fi pusa in aplicare. Acest lucru a fost numit 'test-driven mantra de dezvoltare',
cunoscut sub numele de detector rosu / verde (in cazul in care nu reuseste - rosu si verde –
valabil).
Dezvoltarea condusa de teste repeta in mod constant cazuri de testare adaugand unele noi,
trecandu-le, si refactorizandu-le. Primirea rezultatelor asteptate testului la fiecare etapa
consolideaza increderea programatorului si creste productivitatea.
vizibilitate mai mare a membrilor clasei anexand si atribute. In NET Framework si cateva alte
limbaje de programare, clasele partiale pot fi folosite pentru a expune metodele private si
datele pentru accesarea testelor.
Bibliografie:
1. https://en.wikipedia.org/wiki/Test-driven_development
2. Beck, K. ‘Test-Driven Development by Example’, Addison Wesley, 2003
3. 'Extreme Programming', Computerworld (online), December 2001,
webpage: Computerworld-appdev-92
4. Newkirk, JW and Vorontsov, AA. Test-Driven Development in Microsoft .NET,
Microsoft Press, 2004.
5. Koskela, L. 'Test Driven: TDD and Acceptance TDD for Java Developers',
Manning Publications, 2007
6. Erdogmus, Hakan; Morisio, Torchiano. 'On the Effectiveness of Test-first
Approach to Programming'.
7. https://iit-iti.nrc-cnrc.gc.ca/publications/nrc-47445_e.html
8. Proffitt, Jacob. 'TDD Proven Effective! Or is
it?'. https://theruntime.com/blogs/jacob/archive/2008/01/22/tdd-proven-effective-or-
is-it.aspx