BDD vs TDD vs ATDD: Diferențe cheie
Acest ghid are ca scop descrierea diferitelor metode sau practici de testare, cum ar fi Dezvoltarea condusă de comportament (BDD), Dezvoltarea testată (TDD) ), Acceptance Test-Driven Development (TDD). De asemenea, va ajuta la clarificarea diferențelor cheie dintre aceste tehnici. Până la sfârșitul acestui articol, este de așteptat să înțelegem cum funcționează fiecare metodă, diferențele cheie și rolurile lor particulare în procesul de dezvoltare.
În primul rând, să începem cu dezvoltarea testată.
Ce este Test-Driven Development (TDD)?
Test-Driven Development este o metodologie de testare sau o practică de programare implementată din perspectiva dezvoltatorului. În această tehnică, un inginer QA începe să proiecteze și să scrie cazuri de testare pentru fiecare funcționalitate mică a unei aplicații. Această tehnică încearcă să răspundă la o întrebare simplă – Codul este valid? Principala intenție a acestei tehnici este de a modifica sau scrie un cod nou numai atunci când testul eșuează. Prin urmare, rezultă o dublare mai mică a scripturilor de testare. Această tehnică este în mare măsură populară în ecosistemele de dezvoltare agile. Într-o abordare TDD, scripturile de test automat sunt scrise înainte de bucăți funcționale de cod. Metodologia TDD implică următorii pași:
- Pe baza cerințelor specificate în documente, un dezvoltator scrie un caz de test automat
- Aceste teste sunt executate și, în unele cazuri, , eșuează pe măsură ce sunt dezvoltate înainte de dezvoltarea unei caracteristici reale
- Echipa de dezvoltare re-factorizează apoi codul pentru ca testul să treacă cu succes
Re-factoring se referă la procesul de modificare a codului fără a modifica funcționalitatea sau comportamentul său principal.
Beneficiile dezvoltării bazate pe teste:
- Ajută la reducerea timpului necesar pentru relucrare
- Ajută la explorarea foarte rapidă a erorilor sau erorilor
- Ajută la obținerea unui feedback mai rapid
- Încurajează dezvoltarea unor designuri mai curate și mai bune
- Îmbunătățește productivitatea programatorului
- Permite oricărui membru al echipei să înceapă să lucreze la cod în absența unui membru specific al echipei. Acest lucru încurajează partajarea cunoștințelor și colaborarea.
- Oferă încredere programatorului să schimbe cu ușurință arhitectura mare a unei aplicații. >
Acum, să înțelegem totul despre dezvoltarea bazată pe comportament.
Ce este dezvoltarea bazată pe comportament (BDD)?
Dezvoltarea bazată pe afaceri (BDD) este o abordare de testare derivată din metodologia Test-Driven Development (TDD). În BDD, testele se bazează în principal pe comportamentul sistemelor. Această abordare definește diferite moduri de a dezvolta o caracteristică pe baza comportamentului acesteia. În majoritatea cazurilor, abordarea Date-Când-Atunci este utilizată pentru scrierea cazurilor de testare. Să luăm un exemplu pentru o mai bună înțelegere:
- Având în vedere că utilizatorul a introdus acreditări de autentificare valide
- Când un utilizator face clic pe butonul de autentificare
- Apoi afișează mesajul de validare de succes
După cum se arată mai sus, comportamentul este ilustrat într-o limbă engleză foarte simplă, cunoscută și sub numele de limbă partajată. Acest lucru îi ajută pe toți cei din echipa responsabilă de dezvoltare să înțeleagă comportamentul caracteristicilor.
De exemplu, se poate încerca să rulați un test ușor de navigare încrucișată pe baza setului de instrucțiuni pentru a testa pe mai multe dispozitive, după cum se arată în videoclip.
Încercați gratuit testarea browserului pe dispozitivul real Cloud
Beneficiile cheie ale comportamentului condus de comportament Abordare de dezvoltare:
- Ajută la atingerea unui public mai larg prin utilizarea limbajului non-tehnic
- Se concentrează asupra modului în care sistemul ar trebui să se comporte din perspectiva clientului și a dezvoltatorului
- BDD este o tehnică rentabilă
- Reduce eforturile necesare pentru a verifica orice defecte post-implementare
Imaginea de mai jos descrie o operație tipică BDD:
Sursa imaginii: Tutorialspoint
Cum ajută BDD în SDLC?
Depanarea erorilor din ultimele etape ale ciclului de viață al dezvoltării se dovedește adesea foarte costisitoare am. În majoritatea cazurilor, ambiguitatea în înțelegerea cerințelor este cauza principală a acestui fapt. Trebuie să ne asigurăm că toate eforturile de dezvoltare rămân aliniate la îndeplinirea cerințelor prestabilite. BDD permite dezvoltatorilor să facă cele de mai sus:
- Permițând definirea cerințelor într-o abordare standard utilizând limba engleză simplă
- Oferind mai multe moduri de a ilustra scenarii din lumea reală pentru înțelegere cerințe
- Furnizarea unei platforme care să permită echipelor tehnologice și non-tehnologice să colaboreze și să înțeleagă cerințele
Ce este dezvoltarea testului de acceptare?
În tehnica ATDD (Acceptance Test-Driven Development), se scrie un singur test de acceptare din perspectiva utilizatorului.Se concentrează în principal pe satisfacerea comportamentului funcțional al sistemului. Această tehnică încearcă să răspundă la întrebare – Codul funcționează așa cum era de așteptat?
Această tehnică îmbunătățește colaborarea între dezvoltatori, utilizatori și QA-uri cu un accent comun privind definirea criteriilor de acceptare. Următoarele sunt câteva dintre practicile cheie din ATDD:
- Analizarea și discutarea scenariilor din lumea reală
- Decizia criteriilor de acceptare pentru aceste scenarii
- Automatizarea cazurilor de test de acceptare
- Concentrarea pe dezvoltarea acelor cazuri de cerințe
Beneficiile ATDD
- Cerințele sunt analizate foarte clar fără orice ambiguitate
- Încurajează colaborarea între membrii echipei transversale
- Testul de acceptare servește drept ghid pentru întregul proces de dezvoltare
Diferențe cheie: TDD vs BDD vs ATDD
Parametri | TDD | BDD | ATDD |
Definiție | TDD este o tehnică de dezvoltare care se concentrează mai mult pe implementarea unei caracteristici | BDD este o tehnică de dezvoltare care se concentrează pe comportamentul sistemului | ATDD este o tehnică similară cu BDD care se concentrează mai mult pe captarea cerințelor |
Participanți | Dezvoltator | Dezvoltatori, clienți, QAs | Dezvoltatori, clienți, QAs |
Limbă utilizată | Scrisă într-o limbă similară cu cea utilizată pentru dezvoltarea caracteristicilor (de ex. Java, Python etc.) | Engleză simplă, (Gherkin) | Engleză simplă, Gherkin |
Focus principal | Teste unitare | Cerințe de înțelegere | Teste de acceptare a scrierii |
Instrumente utilizate | JDave, Castravete , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse | Gherkin, Dave, Castravete, JBehave, Spec Flow, BeanSpec, Concordian | TestNG, FitNesse, EasyB, Spectacular, Concordian, Tucidide |
Înțelegerea modului în care funcționează aceste metode poate ajuta dezvoltatorii și alte persoane implicate în software dezvoltarea își dau seama care strategie funcționează cel mai bine pentru a le servi scopului. În funcție de tipul de proiect și de rezultatele pe care își propune să le obțină, metoda potrivită (sau chiar o combinație de metode) poate fi implementată pentru a îndeplini cerințele specifice în cele mai eficiente moduri.