BDD vs TDD vs ATDD: Key Differences (Norsk)
Denne veiledningen har som mål å beskrive forskjellige testmetoder eller praksis som Behavioral Driven Development (BDD), Test-Driven Development (TDD) ), Acceptance Test-Driven Development (TDD). Det vil også bidra til å avklare de viktigste forskjellene mellom disse teknikkene. Mot slutten av denne artikkelen forventes det at man forstår hvordan hver metode fungerer, viktige forskjeller og deres spesielle roller i utviklingsprosessen.
La oss først starte med testdrevet utvikling.
Hva er testdrevet utvikling (TDD)?
Testdrevet utvikling er en testmetodikk eller en programmeringspraksis implementert fra et utviklers perspektiv. I denne teknikken begynner en QA-ingeniør å designe og skrive testsaker for alle små funksjoner i en applikasjon. Denne teknikken prøver å svare på et enkelt spørsmål – Er koden gyldig? Hovedintensjonen med denne teknikken er å endre eller skrive en ny kode bare når testen mislykkes. Derfor resulterer det i mindre duplisering av testskript. Denne teknikken er i stor grad populær i smidige utviklingsøkosystemer. I en TDD-tilnærming blir automatiserte testskripter skrevet før funksjonelle kodestykker. TDD-metoden involverer følgende trinn:
- Basert på kravene som er spesifisert i dokumentene, skriver en utvikler en automatisert testsak
- Disse testene blir utført, og i noen tilfeller , de mislykkes når de er utviklet før utviklingen av en faktisk funksjon
- Utviklingsteamet re-faktorerer deretter koden for at testen skal bestå
Re-factoring refererer til prosessen med å endre koden uten å endre dens viktigste funksjonalitet eller atferd.
Fordeler med testdrevet utvikling:
- Hjelper med å redusere tiden som kreves for omarbeiding
- Hjelper med å utforske feil eller feil veldig raskt
- Hjelper med å få raskere tilbakemelding
- Oppmuntrer til utvikling av renere og bedre design
- Forbedrer produktiviteten til programmereren
- Tillater ethvert teammedlem å begynne å jobbe med koden i fravær av et bestemt teammedlem. Dette oppmuntrer til kunnskapsdeling og samarbeid
- Gir programmereren tillit til å endre den store arkitekturen i et program enkelt
- Resultater i opprettelsen av omfattende kode som er fleksibel og enkel å vedlikeholde
La oss nå forstå alt om atferdsstyrt utvikling.
Hva er atferdsstyrt utvikling (BDD)?
Forretningsstyrt utvikling (BDD) er en testtilnærming avledet fra Test-Driven Development (TDD) -metoden. I BDD er tester hovedsakelig basert på systematferd. Denne tilnærmingen definerer ulike måter å utvikle en funksjon basert på dens oppførsel. I de fleste tilfeller brukes metoden Given-When-Then til å skrive testsaker. La oss ta et eksempel for bedre forståelse:
- Gitt at brukeren har angitt gyldige påloggingsinformasjoner
- Når en bruker klikker på påloggingsknappen
- Så vis den vellykkede valideringsmeldingen
Som vist ovenfor, er atferden illustrert på et veldig enkelt engelsk språk, også kjent som et delt språk. Dette hjelper alle i teamet som er ansvarlig for utvikling for å forstå funksjonens atferd.
For eksempel kan man prøve å kjøre en enkel tverrleser-test basert på instruksjonssett for å teste på tvers av flere enheter som vist i video.
Prøv nettlesertesting på Real Device Cloud gratis
Viktige fordeler med atferdsdrevet Utviklingstilnærming:
- Hjelper å nå et bredere publikum ved bruk av ikke-teknisk språk
- Fokuserer på hvordan systemet skal oppføre seg ut fra kundens og utviklerens perspektiv
- BDD er en kostnadseffektiv teknikk
- Reduserer innsatsen som er nødvendig for å verifisere eventuelle defekter etter distribusjonen
Bildet nedenfor viser en typisk BDD-operasjon:
Bildekilde: Tutorialspoint
Hvordan hjelper BDD i SDLC?
Feilsøking av feilene i de siste stadiene av utviklingslivssyklusen viser seg ofte å være veldig kostbar ive. I de fleste tilfeller er tvetydighet i å forstå kravene årsaken til dette. Man må sørge for at all utviklingsarbeid holder seg i tråd med å oppfylle forhåndsbestemte krav. BDD tillater utviklere å gjøre det ovennevnte ved å:
- Tillate at kravene defineres i en standardtilnærming ved hjelp av enkel engelsk
- Tilbyr flere måter å illustrere virkelige scenarier for forståelse krav
- Å tilby en plattform som gjør det mulig for tekniske og ikke-tekniske team å samarbeide og forstå kravene
Hva er Acceptance Test-Driven development?
I Acceptance Test-Driven Development (ATDD) teknikk, skrives en enkelt aksept test fra brukerens perspektiv.Det fokuserer hovedsakelig på å tilfredsstille systemets funksjonelle atferd. Denne teknikken prøver å svare på spørsmålet – Fungerer koden som forventet?
Denne teknikken forbedrer samarbeidet mellom utviklere, brukere og kvalitetssikringsselskaper med et felles fokus om å definere akseptkriteriene. Følgende er noen av de viktigste praksisene i ATDD:
- Analysering og diskusjon av virkelige scenarier
- Avgjør akseptkriteriene for disse scenariene
- Automatisering av aksepttesttilfellene
- Fokus på utvikling av disse kravsakene
Fordelene med ATDD
- Krav analyseres veldig tydelig uten enhver tvetydighet
- Oppmuntrer til samarbeid mellom teammedlemmer
- Akseptprøven fungerer som en veiledning for hele utviklingsprosessen
Nøkkelforskjeller: TDD vs BDD vs ATDD
Parametere | TDD | BDD | ATDD |
Definisjon | TDD er en utviklingsteknikk som fokuserer mer på implementering av en funksjon | BDD er en utviklingsteknikk som fokuserer på systemets atferd | ATDD er en teknikk som ligner BDD som mer fokuserer på å fange kravene |
Deltakere | Utvikler | Utviklere, kunder, kvalitetssikringsselskaper | utviklere, kunder, kvalitetssikringsselskaper |
Språk brukt | Skrevet på et språk som ligner det som brukes til funksjonsutvikling (f.eks. Java, Python, etc) | Enkel engelsk, (Gherkin) | Enkel engelsk, Gherkin |
Hovedfokus | Enhetstester | Forståelse av krav | Skrivetakseprøver |
Verktøy brukt | JDave, Agurk , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse | Gherkin, Dave, Agurk, JBehave, Spec Flow, BeanSpec, Concordian | TestNG, FitNesse, EasyB, Spectacular, Concordian, Thucydides |
Å forstå hvordan disse metodene fungerer kan hjelpe utviklere og andre personer som er involvert i programvare utvikling finne ut hvilken strategi som fungerer best for å tjene deres formål. Avhengig av typen prosjekt og resultatene det har som mål å oppnå, kan den riktige metoden (eller til og med en blanding av metoder) distribueres for å oppfylle spesifikke krav på de mest effektive måtene.