BDD vs TDD vs ATDD: Key Differences (Svenska)
Denna vägledning syftar till att beskriva olika testmetoder eller metoder som Behavioral Driven Development (BDD), Test-Driven Development (TDD) ), Acceptance Test-Driven Development (TDD). Det kommer också att hjälpa till att klargöra de viktigaste skillnaderna mellan dessa tekniker. I slutet av denna artikel förväntas man förstå hur varje metod fungerar, viktiga skillnader och deras specifika roller i utvecklingsprocessen.
Låt oss först börja med testdriven utveckling.
Vad är testdriven utveckling (TDD)?
Testdriven utveckling är en testmetodik eller en programmeringspraxis implementerad ur utvecklarens perspektiv. I den här tekniken börjar en QA-ingenjör att designa och skriva testfall för varje liten funktionalitet i en applikation. Denna teknik försöker svara på en enkel fråga – Är koden giltig? Huvudsyftet med denna teknik är att bara ändra eller skriva en ny kod när testet misslyckas. Därför resulterar det i mindre duplicering av testskript. Denna teknik är till stor del populär i agila utvecklingsekosystem. I ett TDD-tillvägagångssätt skrivs automatiserade testskript före funktionella kodbitar. TDD-metoden innefattar följande steg:
- Baserat på de krav som anges i dokumenten skriver en utvecklare ett automatiskt testfall
- Dessa tester utförs och i vissa fall , de misslyckas när de utvecklas innan utvecklingen av en verklig funktion
- Utvecklingsteamet omaktiverar sedan koden för att testet ska lyckas
Omfakturering hänvisar till processen att modifiera koden utan att ändra dess huvudsakliga funktionalitet eller beteende.
Fördelar med testdriven utveckling:
- Hjälper till att minska den tid som krävs för omarbetning
- Hjälper till att utforska fel eller fel mycket snabbt
- Hjälper till snabbare feedback
- Uppmuntrar utvecklingen av renare och bättre mönster
- Förbättrar produktiviteten hos programmeraren
- Tillåter att någon teammedlem börjar arbeta med koden i avsaknad av en specifik teammedlem. Detta uppmuntrar kunskapsdelning och samarbete
- Ger programmeraren självförtroende att enkelt ändra den stora arkitekturen i en applikation
- Resultat i skapandet av omfattande kod som är flexibel och lätt att underhålla
Låt oss nu förstå allt om beteendestyrd utveckling.
Vad är beteendriven utveckling (BDD)?
Affärsdriven utveckling (BDD) är en testmetod härledd från testdriven utveckling (TDD) -metoden. I BDD baseras tester huvudsakligen på systembeteende. Detta tillvägagångssätt definierar olika sätt att utveckla en funktion baserat på dess beteende. I de flesta fall används metoden Given-When-Then för att skriva testfall. Låt oss ta ett exempel för bättre förståelse:
- Med tanke på att användaren har angett giltiga inloggningsuppgifter
- När en användare klickar på inloggningsknappen
- Visa sedan det framgångsrika valideringsmeddelandet
Som visas ovan illustreras beteendet på ett mycket enkelt engelska språk, även känt som ett delat språk. Detta hjälper alla i teamet som ansvarar för utveckling att förstå funktionsbeteendet.
Till exempel kan man försöka köra ett enkelt webbläsartest baserat på en uppsättning instruktioner för att testa över flera enheter som visas i video.
Testa webbläsartestning på Real Device Cloud gratis
Viktiga fördelar med beteendestyrd Utvecklingsstrategi:
- Hjälper nå en bredare publik genom användning av icke-tekniskt språk
- Fokuserar på hur systemet ska bete sig ur kundens och utvecklarens perspektiv
- BDD är en kostnadseffektiv teknik
- Minskar ansträngningar som behövs för att verifiera eventuella defekter efter distribution
Bilden nedan visar en typisk BDD-operation:
Bildkälla: Tutorialspoint
Hur hjälper BDD till SDLC?
Felsökning av felen i de senare stadierna av utvecklingslivscykeln visar sig ofta vara mycket dyrt ive. I de flesta fall är tvetydigheten i att förstå kraven grundorsaken till detta. Man måste se till att alla utvecklingsinsatser förblir anpassade för att uppfylla förutbestämda krav. BDD tillåter utvecklare att göra ovanstående genom att:
- Tillåta att kraven definieras i en standardmetod med enkel engelska
- Tillhandahåller flera sätt att illustrera verkliga scenarier för förståelse krav
- Tillhandahåller en plattform som gör det möjligt för teknik- och icke-teknologiteam att samarbeta och förstå kraven
Vad är acceptantestdriven utveckling?
I Acceptance Test-Driven Development (ATDD) -teknik skrivs ett enda acceptansprov ur användarens perspektiv.Det fokuserar främst på att tillfredsställa systemets funktionella beteende. Denna teknik försöker svara på frågan – Fungerar koden som förväntat?
Denna teknik förbättrar samarbetet mellan utvecklare, användare och kvalitetssäkring med ett gemensamt fokus om att definiera acceptanskriterierna. Följande är några av de viktigaste metoderna i ATDD:
- Analysera och diskutera verkliga scenarier
- Bestämma acceptanskriterier för dessa scenarier
- Automatisera fall för godkännandeprov
- Fokusera på utvecklingen av dessa kravfall
Fördelar med ATDD
- Krav analyseras mycket tydligt utan oklarheter
- Uppmuntrar till samarbete mellan teammedlemmar
- Acceptstestet fungerar som en vägledning för hela utvecklingsprocessen
Viktiga skillnader: TDD vs BDD vs ATDD
Parametrar | TDD | BDD | ATDD |
Definition | TDD är en utvecklingsteknik som fokuserar mer på implementeringen av en funktion | BDD är en utvecklingsteknik som fokuserar på systemets beteende | ATDD är en teknik som liknar BDD som fokuserar mer på att fånga kraven |
Deltagare | Utvecklare | Utvecklare, kund, kvalitetssäkring | utvecklare, kunder, kvalitetsbedömningar |
Användt språk | Skrivet på ett språk som liknar det som används för funktionsutveckling (t.ex. Java, Python, etc) | Enkel engelska, (Gherkin) | Enkel engelska, Gherkin |
Huvudfokus | Enhetstester | Förståelsekrav | Skriva godkännandestester |
Verktyg som används | JDave, Gurka , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse | Gherkin, Dave, Gurka, JBehave, Spec Flow, BeanSpec, Concordian | TestNG, FitNesse, EasyB, Spectacular, Concordian, Thucydides |
Förstå hur dessa metoder fungerar kan hjälpa utvecklare och andra personer som är involverade i programvara utveckling ta reda på vilken strategi som fungerar bäst för att tjäna deras syfte. Beroende på vilken typ av projekt och vilka resultat det syftar till kan rätt metod (eller till och med en blandning av metoder) användas för att möta specifika krav på de mest effektiva sätten.