Leestijd : 1 minuten

De principes en best practices van Behavior Driven Development (BDD) toepassen

Content Writer

Minna is a content developer specializing in software testing and Robotic Process Automation (RPA). She enjoys exploring the intricacies of cutting-edge software and knits comprehensible content that resonates with the audience. PS, she is a book lover.

Wat is Gedragsgestuurde Ontwikkeling (BDD)?

Het verwachte gedrag van een gebruiker bij interactie met een applicatie wordt gedocumenteerd en in de applicatie ontworpen met behulp van de agile softwareontwikkelingsmethodologie die bekend staat als Gedragsgedreven Ontwikkeling (BDD). BDD helpt bij het voorkomen van bloat, overmatige code, onnodige functies en gebrek aan focus door ontwikkelaars te adviseren zich alleen te richten op het gewenste gedrag van een app of programma. Deze aanpak combineert de beste aspecten van acceptatietestgestuurde ontwikkeling (ATDD) en testgestuurde ontwikkeling (TDD).

Een typisch gedragsgestuurd ontwikkelingsproject begint met een gesprek tussen managers, klanten en ontwikkelaars om te begrijpen hoe het product bedoeld is om te werken. Als elke gedragstest geslaagd is, voldoet het product aan alle specificaties en is het klaar om aan de klant geleverd te worden. De doelstellingen van de ontwikkelaars worden vervolgens vastgesteld op basis van de gedragsverwachtingen voor het product.

Het motief achter gedragsgestuurde ontwikkeling

De Londense technologie- en organisatieconsultant Dan North ontwikkelde BDD meer dan tien jaar geleden om misverstanden tussen ontwikkelaars, testers en bedrijfsprofessionals uit de weg te ruimen. Ondanks het bescheiden begin als een eenvoudige aanpassing van testgestuurde ontwikkeling, is BDD nu een volwaardige methodologie voor softwareontwikkeling.

De twee hoofdcomponenten van de BDD-benadering worden vaak gescheiden:

  • In de eerste sectie worden voorbeelden geschreven in een gemeenschappelijke taal om gedrag of de interactie tussen gebruikers en het product te illustreren.
  • De tweede stap bestaat uit het gebruiken van deze voorbeelden als basis voor geautomatiseerde tests. Het stelt ontwikkelaars in staat om gebruikersfunctionaliteit te testen en garandeert dat het algehele systeem gedurende de gehele levensduur van het project presteert zoals het bedrijf het bedoeld heeft.

Gedragsgestuurde ontwikkeling is in het leven geroepen om de kloof te overbruggen en het voor afdelingen eenvoudiger te maken om samen te werken en te communiceren. Hierdoor worden softwareontwikkelingsprojecten beter beheerd en met meer succes opgeleverd. Het zorgt ervoor dat projecten gericht zijn op de echte behoeften van het bedrijf en tegelijkertijd voldoen aan de behoeften van de gebruikers.

Gedragsgestuurde ontwikkeling in agile ontwikkeling

Teams gebruiken de iteratieve agile ontwikkelingsmethodologie voor softwareontwikkeling. Multifunctionele, zelfgeorganiseerde teams passen projecten vaak aan door de omgeving en gebruikerseisen te analyseren. Dit is hoe gedragsgestuurde ontwikkeling een rol speelt in Agile Ontwikkeling:

  • Focus op gedrag en gewenste resultaten

Om ingebouwde kwaliteit te bieden, definieert (en mogelijk automatiseert) Behavior-Driven Development (BDD) tests voor of als onderdeel van het specificeren van systeemgedrag.

  • Samenwerking tussen belanghebbenden

Een gedeeld begrip van requirements tussen de business en de Agile Teams wordt gecreëerd door BDD, een samenwerkingsproces. De doelstellingen zijn om de doorstroming te verbeteren, herbewerking te verminderen en ontwikkeling te begeleiden.

  • Tests schrijven in een voor mensen leesbaar formaat

BDD stimuleert frequente communicatie tussen de drie belangrijkste belanghebbenden. In tegenstelling tot traditioneel testen met code, waarbij het QA-team al dan niet regelmatig communiceert met de andere belanghebbenden, helpt dit om de tests in een vroeg stadium te ontwikkelen.

  • Een Gegeven-Wanneer-Dan formaat gebruiken voor testscenario’s

De Given-When-Then techniek is een stijlgids voor het schrijven van acceptatietestgevallen voor een user story. t, bedenkers van de BDD-techniek, ontwikkelden deze aanpak van het schrijven van testgevallen voor gedragsgestuurde ontwikkeling.

De noodzaak van BDD-testraamwerk

Agile processen en DevOps zijn vooral gericht op het produceren van producten in een zo kort mogelijke tijd. Aan de andere kant zijn organisaties huiverig voor het uitbrengen van builds die niet volledig voldoen aan de behoeften van de klant of die niet in lijn zijn met de strategische bedrijfsdoelen. Daarom,

  • BDD versterkt de Agile methodologie door continue input van de eindgebruiker mogelijk te maken om het ontwikkelingsproces te valideren en ervoor te zorgen dat het “juiste product” wordt ingezet.
  • Het maakt ook een betere coördinatie mogelijk tussen de belangrijkste belanghebbenden in het softwareontwikkelingsproces, namelijk het business team, het ontwikkelingsteam en het kwaliteitsborgingsteam. Omdat elk team een ander perspectief heeft, wat kan leiden tot onnodig herwerk, zorgt de BDD-aanpak ervoor dat iedereen op één lijn blijft en de behoefte aan gewenst gedrag voorop stelt.

BDD: Cucumber en Test Compleet – Overzicht

Wil je BDD met Testcomplete verkennen in Windows 10 met IntelliJ? Dan is dit alles wat je moet weten.

Waar wordt BDD gebruikt in de testautomatiseringspiramide?

Unit tests, integratietests, gebruikersinterface (UI) tests en nog veel meer maken deel uit van testgestuurde ontwikkeling. Er zijn veel methoden voor het maken en beheren van deze tests, maar in de afgelopen jaren hebben Agile ontwikkelteams het idee van een testpiramide verkozen als een van de meest effectieve. Hier zijn de verschillende niveaus van de test, van boven naar beneden:

  1. Gebruikersintegratie of UT-test
  2. Systeemintegratietest
  3. Eenheidstest
  4. Handmatige test

Er zijn verschillende niveaus in de testautomatiseringspiramide en zoals John Ferguson Smart uitlegt – “BDD kan overal worden geïmplementeerd waar een bedrijfsregel wordt toegepast. Een BDD-scenario is een manier om acceptatiecriteria of een bedrijfsregel uit te drukken. Een voorbeeld van een bedrijfsregel op een leesbare manier die je afspreekt met je klant of stakeholder. Wanneer je beslist om bepaalde regels te automatiseren, wordt het getest op wat het Laagste Testniveau wordt genoemd, en het kan elk niveau in de automatiseringstestpiramide zijn.”

Stappen die nodig zijn om een gedragsgestuurde ontwikkelingsstrategie te implementeren

Voor het implementeren van BDD is een iteratief proces van vijf stappen nodig, waaronder het definiëren van Gedrag, het schrijven van tests, het automatiseren van tests, het uitvoeren van tests en herhaling. Deze gedocumenteerde voorbeelden worden na verloop van tijd een pluspunt, waardoor je team met vertrouwen snelle systeemwijzigingen kan doorvoeren. De code weerspiegelt de documentatie, die ieders gedeelde begrip van de probleemruimte in dit voortdurend evoluerende en gedeelde begrip weerspiegelt.

Stap 1: Het gedrag definiëren

Het echte doel hier is om bruikbare, operationele software voor het bedrijf te krijgen. De snelste manier om dit te bereiken is door gesprekken te voeren met iedereen die betrokken is bij het ontwerp en de levering van de software.

Daartoe is de eerste stap het nemen van een op handen zijnde systeemverandering, bekend als een user story, en het bespreken van concrete voorbeelden van nieuwe functionaliteiten om te onderzoeken. Gebruik e-mailmarketingtools om je gebruikers te polsen en hun suggesties te verzamelen voordat je beslissingen neemt.

Stap 2: De tests schrijven

De volgende stap is het automatiseren van de documentatie van die voorbeelden. Je kunt dan zien of er een overeenkomst is. Zodra tijdens de ontdekkingssessies een waardevol voorbeeld is geïdentificeerd, kan elk voorbeeld worden geformuleerd als gestructureerde documentatie. Hierdoor kunnen alle betrokkenen snel bevestigen dat ze een gemeenschappelijk begrip hebben van wat er gebouwd moet worden.

Stap 3: De tests automatiseren

De derde stap is om het gedrag van elk gedocumenteerd voorbeeld in actie te brengen, te beginnen met de geautomatiseerde test om de ontwikkeling van code te begeleiden. Zodra het team deze heeft gemaakt, kan een uitvoerbare specificatie worden gebruikt om de ontwikkeling van de implementatie te begeleiden. Zonder het systeem kan elk voorbeeld nu als test worden gebruikt. Deze test is ongeldig omdat het beschreven gedrag nog moet worden geïmplementeerd.

Stap 4: De tests uitvoeren

Je kunt een testset maken en de tests van je project uitvoeren in de volgorde die je wilt met testitems. BDD-tests kunnen worden opgenomen in testitems om een vast onderdeel te worden van de testrun van je project.

Stap 5: Herhaal

Je kunt de BDD-scenario’s uitvoeren om het gedrag van je systeem te controleren nadat je je scenario’s hebt gedefinieerd en de stapdefinities in de praktijk hebt gebracht. Idealiter kunnen de scenario’s handmatig worden uitgevoerd of automatisch met behulp van een BDD-testraamwerk.

Het is eenvoudig om het concept van Gedragsgestuurde ontwikkeling te begrijpen als we het volgende voorbeeld nemen in het sjabloon Gegeven-Wanneer-Toen:

Steps require for Behavior-Driven Development (BDD)

Dit voorbeeld geeft een student weer die een aantal onafgeronde lessen heeft en een herzien lesrooster wil aanvragen. Voor dit scenario moet de leerling ingelogd zijn op de website. Het GEVEN beschrijft de situatie, terwijl het WANNEER de actie beschrijft die het scenario activeert. DAN beschrijft het resultaat: het aangepaste trainingsplan is zichtbaar.

Met de Gegeven-Wanneer-Dan techniek kunnen niet-technische mensen dus perfect beschrijven wat ze van het product of de functie verwachten.

Beste praktijk voor het implementeren van BDD

Hier zijn enkele BDD best practices die je zou moeten volgen.

  • Vermijd lange beschrijvingen

Gebruik voor elke functie alleen een logische en beknopte titel en beschrijving. Lange functiebeschrijvingen zijn vaak vervelend om te lezen en schrikken belanghebbenden vaak af. Over het algemeen moet een kenmerk bestaan uit een korte zin die de reikwijdte en context samenvat.

  • Kies één formaat voor je functies

Het kiezen van de formaten die je gebruikt voor het schrijven van functies is een andere uitstekende functie voor gedragsgestuurde ontwikkeling. Alle kenmerkbestanden moeten voldoen aan het formaat dat je hebt gekozen. Hierdoor kan iedereen die nieuw is in het project de functies en context gemakkelijk begrijpen.

  • Houd de achtergrond kort

Gebruik waar mogelijk een achtergrond voor gedeelde stappen voor elk scenario in je functiebestand. De achtergrond elimineert veel terugkerende taken en je kunt dubbel werk in functiebestanden voorkomen door het op de juiste manier te gebruiken. Houd een korte achtergrond bij, idealiter niet meer dan vier regels.

Voordelen van het toepassen van BDD bij softwaretesten

Acceptatietesten zijn de eerste stap in BDD-softwareontwerp. Ze bieden een sterke communicatiebasis voor het ontwikkelingsteam en belanghebbenden. De belangrijkste voordelen van BDD bij het testen van software zijn:

  • Afval elimineren

Het is minder waarschijnlijk dat eisen en acceptatiecriteria verkeerd begrepen worden omdat BDD je in staat stelt om eisen te communiceren.

  • Voldoen aan bedrijfsdoelstellingen

Elke ontwikkeling kan worden gekoppeld aan specifieke bedrijfsdoelen met behulp van BDD.

  • BDD Test Suite

Wanneer je team BDD toepast, krijgen ze net als bij TDD vertrouwen in de vorm van een testsuite.

  • Focus op gebruikersbehoeften

Dankzij de BDD-methodologie kan bij de ontwikkeling van software worden voldaan aan de behoeften van de gebruiker, wat zorgt voor tevreden gebruikers die goed zijn voor het bedrijf.

  • Gemakkelijk te integreren

De BDD-codes zijn eenvoudig te integreren met alle automatiseringstestservers, zoals cucumber testuitvoering kan eenvoudig draaien op Jenkins, een open-source automatiseringsserver die honderden plugins ondersteunt voor het bouwen, implementeren en automatiseren van elk project.

  • Codekwaliteit verbeteren

Het belangrijkste voordeel van gedragsgedreven ontwikkeling is het verbeteren van de kwaliteit van de code, wat het projectrisico en variabele kosten zoals onderhoud verlaagt.

  • Helpt bij het genereren van code

In BDD worden interacties tussen gebruikers en ontwikkelaars gebruikt om code te genereren. Dit betekent impliciet dat gebruikers voorbeelden van softwaregedrag genereren en evalueren.

Uitdagingen bij het toepassen van BDD in softwaretests

De uitdagingen van het implementeren van BDD bij het testen van software kunnen als volgt worden beschreven:

  • BDD heeft geresulteerd in te strak gekoppeld gedrag als gevolg van langdurige bijeenkomsten met belanghebbenden en de noodzaak om alle belangrijke belanghebbenden bij het BDD-proces te betrekken.
  • John Ferguson Smart is een gewaardeerd internationaal spreker, consultant, auteur en trainer met expertise in Agile Test Automation, BDD en meer.
  • BDD vereist zorgvuldig voorbereide software voor de Gherkin scripts om de bedrijfsvereisten effectief te verwoorden. Het kan soms het snelle tempo tegengaan van Agile teams die werken op basis van korte specificaties.
  • Een van de BDD-principes gaat ervan uit dat het moeilijk is om alle vereisten vanaf het begin te kennen en dat we ze niet allemaal in de eerste fase van een project hoeven te definiëren, maar dat de kennis van de belanghebbenden zich gedurende het project zal ontwikkelen.
  • BDD vereist ervaring in het ontwerpen en schrijven van geautomatiseerde acceptatietests voor sommige complexe applicaties.

Afsluiten:

Behavior Driven Development is een heel slimme strategie bij het gebruik van agile methodologie. BDD biedt een platform om onafhankelijk te werken met verschillende technologieën, dus het is altijd aan te raden om je ontwikkeling of test hiermee te beginnen.

Door effectieve samenwerking met belanghebbenden aan te moedigen, duidelijke communicatie te bevorderen en de focus te verschuiven van testen als een geïsoleerde activiteit naar een gedeeld begrip van gewenst gedrag, heeft gedragsgestuurde ontwikkeling (BDD) de potentie om een revolutie teweeg te brengen in het testen van software.

Verwante artikelen:

Leave A Comment