tdd vs bdd analyze differences with examples
Deze tutorial legt de verschillen tussen TDD en BDD uit met voorbeelden:
TDD of Test Driven Development en BDD of Behavior Driven Development zijn de twee technieken voor softwareontwikkeling.
Voordat we dieper ingaan op het verschil tussen deze twee, moeten we eerst begrijpen wat ze afzonderlijk betekenen en hoe worden ze gebruikt?
Laten we beginnen!!
hoe grep commando te gebruiken in unix
Wat je leert:
Wat is TDD?
TDD staat voor Test Driven Development. Bij deze softwareontwikkelingstechniek maken we eerst de testcases en schrijven we vervolgens de code die ten grondslag ligt aan die testcases. Hoewel TDD een ontwikkelingstechniek is, kan deze ook worden gebruikt voor de ontwikkeling van automatiseringstests.
De teams die TDD implementeren, hebben meer tijd nodig voor de ontwikkeling, maar ze vinden meestal heel weinig defecten. TDD resulteert in een verbeterde kwaliteit van de code en de code die meer herbruikbaar en flexibel is.
TDD helpt ook bij het bereiken van high test dekking van ongeveer 90-100%. Het meest uitdagende voor ontwikkelaars die TDD volgen, is om hun testcases te schrijven voordat ze de code schrijven.
Voorgesteld lezen => Ultieme gids voor het schrijven van uitstekende testcases
Proces van TDD
De TDD-methodologie volgt een zeer eenvoudig proces van 6 stappen:
1) Schrijf een testcase: Schrijf op basis van de vereisten een geautomatiseerde testcase.
2) Voer alle testcases uit: Voer deze geautomatiseerde testcases uit op de momenteel ontwikkelde code.
3) Ontwikkel de code voor die testgevallen: Als de testcase mislukt, schrijf dan de code om die testcase te laten werken zoals verwacht.
4) Voer testcases opnieuw uit: Draai de testcases opnieuw en controleer of alle tot dusver ontwikkelde testcases zijn geïmplementeerd.
5) Refactoreer uw code: Dit is een optionele stap. Het is echter belangrijk om uw code te refactoren om deze leesbaarder en herbruikbaarder te maken.
6) Herhaal de stappen 1-5 voor nieuwe testgevallen: Herhaal de cyclus voor de andere testgevallen totdat alle testgevallen zijn geïmplementeerd.
Voorbeeld van een testcase-implementatie in TDD
Laten we aannemen dat we een inlogfunctionaliteit moeten ontwikkelen voor een applicatie met gebruikersnaam- en wachtwoordvelden en een verzendknop.
Stap 1: Maak een testcase.
Stap 2: Voer deze testcase uit en we krijgen een foutmelding die zegt dat de aanmeldingspagina niet is gedefinieerd en dat er geen methoden zijn met de namen enterUserName, enterPassword en submit.
Stap 3: Ontwikkel de code voor die testcase. Laten we de onderliggende code schrijven die de gebruikersnaam en het wachtwoord invoert en een startpagina-object krijgen als ze correct zijn.
Stap 4: Voer de testcase opnieuw uit en we krijgen een instantie van de startpagina.
Stap5: Laten we de code refactoren om de juiste foutmeldingen te geven als de if-voorwaarden in de verzendmethode niet waar zijn.
Stap6: Laten we nu een nieuwe testcase schrijven met een lege gebruikersnaam en wachtwoord.
Als u nu deze testcase probeert uit te voeren, zal het mislukken. Herhaal stap 1 tot en met 5 voor deze testcase en voeg vervolgens de functionaliteit toe om lege gebruikersnaam- en wachtwoordreeksen af te handelen.
Wat is BDD?
BDD staat voor Behavior Driven Development. BDD is een uitbreiding op TDD waarbij we in plaats van de testcases te schrijven, beginnen met het schrijven van gedrag. Later ontwikkelen we de code die nodig is voor onze applicatie om het gedrag uit te voeren.
Het scenario dat in de BDD-benadering is gedefinieerd, maakt het gemakkelijk voor de ontwikkelaars, testers en zakelijke gebruikers om samen te werken.
BDD wordt als een best practice beschouwd als het gaat om geautomatiseerd testen omdat het zich richt op het gedrag van de applicatie en niet op het nadenken over de implementatie van de code.
Het gedrag van de applicatie staat centraal in BDD en het dwingt de ontwikkelaars en testers om in de schoenen van de klant te stappen.
Proces van BDD
Het proces dat betrokken is bij de BDD-methodologie bestaat ook uit 6 stappen en lijkt sterk op dat van TDD.
1) Schrijf het gedrag van de applicatie: Het gedrag van een applicatie wordt in eenvoudige Engelse taal geschreven door de producteigenaar of de bedrijfsanalisten of QA's.
2) Schrijf de geautomatiseerde scripts: Deze eenvoudige Engels-achtige taal wordt vervolgens omgezet in programmeertests.
3) Implementeer de functionele code: De functionele code die aan het gedrag ten grondslag ligt, wordt vervolgens geïmplementeerd.
4) Controleer of het gedrag succesvol is: Voer het gedrag uit en kijk of het succesvol is. Als dit lukt, ga dan verder met het volgende gedrag, of los anders de fouten in de functionele code op om het toepassingsgedrag te bereiken.
5) Refactoreer of organiseer code: Herstructureer of organiseer uw code om deze leesbaarder en herbruikbaarder te maken.
6) Herhaal de stappen 1-5 voor nieuw gedrag: Herhaal de stappen om meer gedrag in uw toepassing te implementeren.
Lees ook => Hoe testers betrokken zijn bij TDD-, BDD- en ATDD-technieken
Voorbeeld van gedragsimplementatie in BDD
Laten we aannemen dat we een inlogfunctionaliteit moeten ontwikkelen voor een applicatie met gebruikersnaam- en wachtwoordvelden en een verzendknop.
Stap 1: Schrijf het gedrag van de applicatie voor het invoeren van de gebruikersnaam en het wachtwoord.
Stap 2: Schrijf het geautomatiseerde testscript voor dit gedrag, zoals hieronder wordt weergegeven.
Stap 3: Implementeer de functionele code (dit is vergelijkbaar met de functionele code in TDD voorbeeldstap 3).
Stap 4: Voer dit gedrag uit en kijk of het succesvol is. Als het lukt, ga dan naar stap 5, anders foutopsporing in de functionele implementatie en voer het vervolgens opnieuw uit.
Stap5: Het refactoren van de implementatie is een optionele stap en in dit geval kunnen we de code in de verzendmethode refactoren om de foutmeldingen af te drukken, zoals getoond in stap 5 voor het TDD-voorbeeld.
Stap6: Schrijf een ander gedrag op en volg stap 1 tot en met 5 voor dit nieuwe gedrag.
We kunnen een nieuw gedrag schrijven om te controleren of we een foutmelding krijgen voor het niet invoeren van de gebruikersnaam, zoals hieronder weergegeven:
TDD versus BDD - Belangrijkste verschillen
TDD | BDD |
---|---|
Wellicht een betere aanpak voor projecten waarbij API en tools van derden zijn betrokken. | Misschien een betere aanpak voor projecten die worden aangestuurd door gebruikersacties. Voor bijvoorbeeld: e-commerce website, applicatiesysteem, etc. |
Staat voor Test Driven Development. | Staat voor Gedragsgestuurde Ontwikkeling. |
Het proces begint met het schrijven van een testcase. | Het proces begint met het schrijven van een scenario volgens het verwachte gedrag. |
TDD richt zich op hoe de functionaliteit wordt geïmplementeerd. | BDD richt zich op het gedrag van een applicatie voor de eindgebruiker. |
Testcases zijn geschreven in een programmeertaal. | Scenario's zijn beter leesbaar in vergelijking met TDD omdat ze in eenvoudig Engels formaat zijn geschreven. |
Veranderingen in de manier waarop de applicatie werkt, hebben veel invloed op de testcases in TDD. | BDD-scenario's worden niet veel beïnvloed door de wijzigingen in de functionaliteit. |
Samenwerking is alleen vereist tussen de ontwikkelaars. | Samenwerking is vereist tussen alle belanghebbenden. |
Enkele van de tools die TDD ondersteunen zijn: JUnit, TestNG, NUnit, etc. | Enkele van de tools die BDD ondersteunen zijn SpecFlow, Cucumber, MSpec, etc. |
Tests in TDD kunnen alleen worden begrepen door mensen met programmeerkennis, | Tests in BDD kunnen door iedereen worden begrepen, ook degenen zonder programmeerkennis. |
TDD verkleint de kans op bugs in uw tests. | Bugs in tests zijn moeilijk op te sporen in vergelijking met TDD. |
Gevolgtrekking
Kiezen tussen TDD versus BDD kan erg lastig zijn. Sommigen zullen misschien beweren dat BDD beter is voor het vinden van bugs, terwijl anderen misschien gewoon zeggen dat TDD een hogere codedekking biedt.
Geen van beide methoden is beter dan de andere. Het hangt af van de persoon en het projectteam om te beslissen welke methodologie moet worden gebruikt.
beste mp3-muziekdownload voor Android
We hopen dat dit artikel uw twijfels over TDD versus BDD heeft weggenomen !!
Aanbevolen literatuur
- 180+ voorbeeldtestcases voor het testen van webapplicaties (voorbeeldchecklist)
- Hoe handmatige testcases in automatiseringsscripts te vertalen? - Een stapsgewijze handleiding met voorbeeld
- Testcases Interviewvragen: Schrijf testcases op basis van scenario
- Hoe de testers worden betrokken bij TDD-, BDD- en ATDD-technieken
- Testdekking bij softwaretests (tips om de testdekking te maximaliseren)
- 8 Best Behavior Driven Development (BDD) tools en testkaders
- Specflow-zelfstudie: de ultieme gids voor BDD-tool
- Testcases schrijven: de ultieme gids met voorbeelden