Denisa Lupu, Java Developer
În programare, nu există proiecte perfecte, însă există tehnici ce pot ajuta în realizarea unor proiecte fiabile și mult mai puțin supuse erorilor. Principiile de Clean Code, tehnicile Behavior Driven Development și testarea automată reduc, însă, probabilitatea de a introduce erori și fac procesul de înțelegere și modificare a codului mult mai ușor. Utilizate împreună, duc la dezvoltarea de proiecte robuste și, ideal, bug-free.
Fiecare developer știe că aplicarea principiilor de Clean Code reduce costurile de dezvoltare și îmbunătățește calitatea produsului final. Partea dificilă vine din faptul că există foarte multe reguli de urmat în timpul proiectării de flow-uri complexe ceea ce poate copleși. În astfel de situații ar ajuta o scurtătură: "Pot să-l citesc?" (Can I read it?). Acesta nu este un principiu propriu-zis de Clean Code, ci o forumulă ajutătoare care înglobează esența mai multor reguli și principii. Atunci când codul conține orice lucru care necesită o explicație suplimentară, înseamnă că nu poate fi citit cu adevărat, prin urmare nu este human-friendly. Scopul final este obținerea unui cod cu care este ușor de lucrat și pe baza căruia se poate construi în continuare.
O altă parte esențială pentru îmbunătățirea codului este testarea, etapa în care se verifică dacă diferitele componente ale aplicației funcționează împreună așa cum trebuie pe baza unor criterii. E important de evitat situația în care testele se bazează exclusiv pe modul în care developer-ul înțelege business logic-ul. Această înțelegere ar trebui sa fie mereu una colaborativă cu reprentanți ai clientului (sau cine este responsabil de business logic). Ca și scrierea codului, scrierea testelor poate duce la același proces confuz, iar bug-urile precum și diverse impedimente pot rămâne nedescoperite până în faza de producție a produsului. Aici intervine utilizarea metodologiei de Behavior Driven Development (BDD).
BDD este o abordare de tip Agile în care o aplicație este proiectată în jurul comportamentului pe care utilizatorul se așteaptă să-l aibă în timpul interacțiunii cu ea. A avea scenarii bine exprimate, folosind logica "Given - When - Then", este un punct de plecare excelent pentru crearea scenariilor de testare automată. Acest lucru încurajează o strânsă colaborare între dezvoltatori, testeri și membrii non-tehnici ai echipei, ceea ce produce o înțelegere mai clară a comportamentului aplicației, precum și a criteriilor de acceptare necesare. În plus, acest lucru adaugă valoare integrării continue și verificării calității.
Aplicarea BDD și Clean Code în testarea automată cu Cucumber
Există multe posibilități de a automatiza testele unei aplicații și de a folosi tehnoca de BDD. Una dintre aceste solutții este și Cucumber, un framework de testare automată care are mare popularitate la momentul actual. Testele scrise folosind Cucumber sunt implementate într-o sintaxă simplă și declarativă care utilizează limbajul natural pentru a descrie comportamentul software-ului în termeni de scenarii și pași. Cu toate acestea, simpla definire a unui scenariu și instalarea Cucumber nu va face magia transformării unui text simplu în teste automate. Este necesară o abordare individuală pentru fiecare fragment de text din descrierea scenariului și interpretarea acestuia în metode sau funcții independente.
Prin utilizarea BDD și Cucumber, echipele pot identifica bug-uri sau inconsistențe logice în stadiile incipiente ale procesului de dezvoltare, ceea ce ajută la reducerea costurilor asociate cu remedierea defectelor de mai târziu în proiect. De asemenea, asigură că proiectul îndeplinește cerințele și așteptările clientului, rezultând într-un proiect dezvoltat cu succes. Chiar dacă partea mai spectaculoasă este realizată de framework-ul de testare, fără baza principiilor de Clean Code și fără utilizarea unui business logic clar definit, explicat într-un mod „human-friendly" (indiferent dacă este cod sau doar documentație), acest proces de automatizare a testelor nu ar fi posibil.