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:

  1. Basert på kravene som er spesifisert i dokumentene, skriver en utvikler en automatisert testsak
  2. Disse testene blir utført, og i noen tilfeller , de mislykkes når de er utviklet før utviklingen av en faktisk funksjon
  3. 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?

Merk: Akseptstestdrevet utvikling ligner veldig på atferdsstyrt utvikling. Imidlertid er en nøkkelforskjell mellom dem: BDD fokuserer mer på funksjonen til funksjonen, mens ATDD fokuserer på å fange de nøyaktige kravene.

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.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *