Vad är TDD och ATDD?

I den här artikeln lyfter vi fram likheterna och skillnaderna mellan två populära testmetoder som är allmänt kända som TDD och ATDD.

TDD står för testdriven utveckling, medan ATDD står för acceptanstestdriven utveckling. Att förstå hur dessa två testmetoder fungerar är avgörande för testproffs och det här inlägget kommer att vara en grundkurs som hjälper dig att komma igång med din upptäckt av båda. Du kommer att förstå TDD vs ATDD.

Vad är testdriven utveckling (TDD)?

TDD är ett system för att utveckla mjukvara som följer Extreme Programming (XP)-principerna, men som med tiden har utvecklats som en oberoende teknik för mjukvaruutveckling.

I TDD utförs enhetstestning direkt på källkoden.

För det första skriver testaren ett automatiserat testfall som definierar den önskade funktion som systemet helst ska utföra, men utformar medvetet testfallet på ett sådant sätt att det inte kan uppfyllas av systemet i dess nuvarande skick.

För det andra antecknar utvecklaren anledningarna till varför systemet inte uppfyllde testet och skriver ut den kod som behövs för att omarbeta systemet och göra det möjligt för det att klara testet i det andra försöket. Denna process sammanfattas i figuren nedan.

testdriven utveckling

TDD-processen fortsätter på detta sätt och går i sicksack mellan misslyckande och framgång, så att varje iteration pressar systemet till sina gränser och sedan hjälper det att övervinna dem genom den återkoppling som genereras.

TDDD är ett experiment i frivilligt misslyckande och det krävs en hel del mod för att sätta sig in i denna kontra-intuitiva teknik. Men när du väl gör det kommer du att belönas med en enkel men mycket effektiv metod för att bekämpa rädslan för att misslyckas under testning samtidigt som du förbättrar ditt arbete.

Vad är Acceptance Test-Driven Development (ATDD)?

ATDD är en samarbetsmetod för testning som tvingar alla personer som är involverade i skapandet av ny mjukvara (t.ex.t.ex. testare, utvecklare och användare) att tillsammans definiera de acceptanskriterier som systemet måste uppfylla i de tidiga utvecklingsfaserna.

Punkten med detta steg är att se till att alla dessa intressenter är överens om projektets huvudmål, särskilt när det gäller den funktionalitet som slutanvändaren kan förvänta sig. Under den här fasen av ATDD kan tekniker som användarpersonas och user stories vara till stor hjälp.

När acceptanstesterna slutligen körs på systemet noteras fel och utvecklarna refaktoriserar sedan felaktiga komponenter genom att skriva den kod som behövs för att uppfylla acceptanskriterierna vid nästa försök.

Den här processen utförs iterativt, vanligen i slutet av varje sprint, tills den slutgiltiga produkten är klar för driftsättning. Grafiken nedan förklarar detta.

acceptanstestdriven utveckling

ATDD ger teamet en tydligare vision av hur slutprodukten kommer att fungera, vilket gör att alla kan hålla sig fokuserade på de långsiktiga målen i stället för att gå vilse i enskilda rader av kod.

Sammanfattningsvis

Nu har du ett bra grepp om de grundläggande skillnaderna mellan TDD och ATDD. Dessa två testmetoder är nära besläktade, men ATDD inkluderar även acceptanstestning i processen och lägger större vikt vid teamsamarbete än TDD.

Båda tillvägagångssätten passar bra in i agila principer eftersom båda uppmuntrar till insamling av återkoppling för att bygga vidare på dina tidigare misstag. När du kontinuerligt refaktoriserar systemet och tar itu med de problem du stötte på i det föregående försöket hjälper dessa metoder dig att utveckla en mer värdefull slutprodukt på ett inkrementellt sätt.

Gå med i 60 000+ prenumeranter

För de senaste bloggarna, branschuppdateringar och exklusiva tips.

*Din e-post är säker hos oss, vi hatar också skräppost

.

Leave a Reply