BDD vs TDD vs ATDD: Key Differences
Denne vejledning har til formål at beskrive forskellige testmetoder eller fremgangsmåder som Behavioral Driven Development (BDD), Test-Driven Development (TDD ), Acceptance Test-Driven Development (TDD). Det hjælper også med at afklare de vigtigste forskelle mellem disse teknikker. I slutningen af denne artikel forventes det, at man forstår, hvordan hver metode fungerer, nøgleforskelle og deres særlige roller i udviklingsprocessen.
Lad os først starte med testdrevet udvikling.
Hvad er testdrevet udvikling (TDD)?
Testdrevet udvikling er en testmetode eller en programmeringspraksis implementeret ud fra en udviklers perspektiv. I denne teknik begynder en QA-ingeniør at designe og skrive testcases for hver lille funktionalitet i en applikation. Denne teknik forsøger at besvare et simpelt spørgsmål – Er koden gyldig? Hovedintentionen med denne teknik er kun at ændre eller skrive en ny kode, når testen mislykkes. Derfor resulterer det i mindre duplikering af testskripter. Denne teknik er stort set populær i agile udviklingsøkosystemer. I en TDD-tilgang skrives automatiske testskripter før funktionelle kodestykker. TDD-metoden involverer følgende trin:
- Baseret på de krav, der er specificeret i dokumenterne, skriver en udvikler en automatiseret testtilfælde
- Disse tests udføres, og i nogle tilfælde , de mislykkes, da de er udviklet før udviklingen af en faktisk funktion
- Udviklingsteamet re-faktorerer derefter koden, så testen kan bestå
Re-factoring henviser til processen med at ændre koden uden at ændre dens vigtigste funktionalitet eller adfærd.
Fordele ved testdrevet udvikling:
- Hjælper med at reducere den tid, der kræves til omarbejdning
- Hjælper med at udforske fejl eller fejl meget hurtigt
- Hjælper med at få hurtigere feedback
- Tilskynder til udvikling af renere og bedre designs
- Forbedrer programmørens produktivitet
- Tillader ethvert teammedlem at begynde at arbejde på koden i fravær af et specifikt teammedlem. Dette tilskynder til videndeling og samarbejde
- Giver programmøren tillid til at ændre den store arkitektur i en applikation let
- Resultater i oprettelsen af omfattende kode, der er fleksibel og nem at vedligeholde
Lad os nu forstå alt om Behavioral-Driven Development.
Hvad er Behavioral-Driven Development (BDD)?
Business-Driven Development (BDD) er en testmetode, der er afledt af metoden Test-Driven Development (TDD). I BDD er test hovedsageligt baseret på systemadfærd. Denne tilgang definerer forskellige måder at udvikle en funktion baseret på dens adfærd. I de fleste tilfælde bruges metoden Given-When-Then til at skrive testsager. Lad os tage et eksempel for bedre forståelse:
- Da brugeren har indtastet gyldige loginoplysninger
- Når en bruger klikker på login-knappen
- Vis derefter den vellykkede valideringsmeddelelse
Som vist ovenfor er adfærden illustreret på et meget simpelt engelsk sprog, også kendt som et delt sprog. Dette hjælper alle i teamet, der er ansvarlig for udviklingen, med at forstå funktionsadfærden.
For eksempel kan man prøve at køre en nem cross-browser test baseret på sæt af instruktioner til at teste på tværs af flere enheder som vist i video.
Prøv browsertestning på Real Device Cloud gratis
Nøglefordele ved adfærdsmæssigt styret Udviklingsmetode:
- Hjælper med at nå et bredere publikum ved brug af ikke-teknisk sprog
- Fokuserer på, hvordan systemet skal opføre sig ud fra kundens og udviklerens perspektiv
- BDD er en omkostningseffektiv teknik
- Reducerer den nødvendige indsats for at verificere eventuelle defekter efter implementeringen
Billedet nedenfor viser en typisk BDD-operation:
Billedkilde: Tutorialspoint
Hvordan hjælper BDD med SDLC?
Fejlretning af fejlene i de sidste faser af udviklingslivscyklussen viser sig ofte at være meget bekostelig ive. I de fleste tilfælde er tvetydighed i forståelsen af kravene årsagen til dette. Man skal sikre, at alle udviklingsbestræbelser forbliver tilpasset til at opfylde forudbestemte krav. BDD giver udviklere mulighed for at gøre ovenstående ved:
- Tillader, at kravene defineres i en standard tilgang ved hjælp af enkel engelsk
- Tilvejebringelse af flere måder at illustrere virkelige scenarier for forståelse krav
- Tilvejebringelse af en platform, der gør det muligt for tech- og ikke-tech-teams at samarbejde og forstå kravene
Hvad er Acceptance Test-Driven development?
I Acceptance Test-Driven Development (ATDD) teknik skrives en enkelt accept test fra brugerens perspektiv.Det fokuserer primært på at tilfredsstille systemets funktionelle opførsel. Denne teknik forsøger at besvare spørgsmålet – Virker koden som forventet?
Denne teknik forbedrer samarbejdet mellem udviklere, brugere og kvalitetssikring med et fælles fokus om definition af acceptkriterier. Følgende er nogle af de vigtigste fremgangsmåder i ATDD:
- Analyse og diskussion af virkelige scenarier
- Beslutning om acceptkriterier for disse scenarier
- Automatisering af accepttestsagerne
- Fokus på udviklingen af disse kravsager
Fordele ved ATDD
- Krav analyseres meget tydeligt uden enhver tvetydighed
- Tilskynder til samarbejde blandt teammedlemmer
- Acceptanstesten fungerer som en guide til hele udviklingsprocessen
Nøgleforskelle: TDD vs BDD vs ATDD
Parametre | TDD | BDD | ATDD |
Definition | TDD er en udviklingsteknik, der mere fokuserer på implementeringen af en funktion | BDD er en udviklingsteknik, der fokuserer på systemets adfærd | ATDD er en teknik, der ligner BDD, der fokuserer mere på at indfange kravene |
Deltagere | Udvikler | Udviklere, kunder, kvalitetssikringssystemer | udviklere, kunder, kvalitetssikringsselskaber |
Brugt sprog | Skrevet på et sprog svarende til det sprog, der bruges til funktionsudvikling (f.eks. Java, Python osv.) | Enkel engelsk, (agurk) | Enkel engelsk, agurk |
Hovedfokus | Enhedstest | Forståelse af krav | Skrivning af accepttest |
Brugte værktøjer | JDave, agurk , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse | Gherkin, Dave, Agurk, JBehave, Spec Flow, BeanSpec, Concordian | TestNG, FitNesse, EasyB, Spectacular, Concordian, Thucydides |
At forstå, hvordan disse metoder fungerer, kan hjælpe udviklere og andre personer, der er involveret i software udvikling finde ud af, hvilken strategi der fungerer bedst til at tjene deres formål. Afhængigt af projekttypen og de resultater, det sigter mod at opnå, kan den rigtige metode (eller endda en blanding af metoder) implementeres for at imødekomme specifikke krav på de mest effektive måder.