Algemeen

Test-gedreven ontwikkeling, wat is het?

Bas Alderding

Wanneer je begint met (nieuwe) software, is duurzaamheid een grote factor. Immers, software kan een aanzienlijke investering zijn. Een manier om deze duurzaamheid te garanderen is door gebruik te maken van test-driven development. In deze blogpost leggen we uit wat het is, wat de voordelen zijn en waarom het van grote waarde is voor je aangepaste softwarepakket.

Wat is testgestuurd ontwikkelen?

Testgestuurd ontwikkelen (TDD) is een manier van coderen. Met TDD schrijven ontwikkelaars eerst tests van hun codes voordat ze de daadwerkelijke code schrijven. Het proces gebeurt in korte cycli van maximaal enkele uren. Een cyclus begint met het schrijven van een codetest. Elke cyclus valt samen met de implementatie van een kleine feature, een softwarefunctie. Het idee is om net niet genoeg code te schrijven, zodat de test opzettelijk faalt. Het programma waarin de test is geschreven, geeft vervolgens suggesties voor verbeteringen. De code wordt dan opnieuw aangepast en getest. De feature kan wel of niet worden geïmplementeerd.

Een cyclus is klaar op het moment dat de features perfect werken. Op deze manier test je regelmatig waar je aan werkt en kun je het coderingsproces op tijd aanpassen. Dit maakt het gemakkelijk om eventuele fouten uit de software te verwijderen voordat deze online gaat. Dus met testgestuurd ontwikkelen werk je efficiënter naar foutloze codes toe.

TDD en Spotify

Spotify is een goed voorbeeld van een platform dat draait op TDD. Elke dag heeft Spotify miljoenen gebruikers, die allemaal op hun eigen manier gebruikmaken van het muziekplatform. Er kan hier veel misgaan. Het komt voor dat ingenieurs het platform niet helemaal samenstellen, waardoor gebruikers geen toegang hebben tot alle codes. Dit betekent dat ze niet naar alle liedjes of podcasts kunnen luisteren. Om deze reden moet Spotify voortdurend worden onderhouden en verbeterd. Testgestuurd ontwikkelen maakt dit mogelijk. Fouten worden zo op tijd gedetecteerd, voordat een nieuwe versie 'live' wordt gezet. Spotify is een soort levend organisme, dat constant verandert. Er is dus niet altijd tijd om alles handmatig te testen, wat ook niet kostenefficiënt zou zijn.

TDD en SevenLab

Bij SevenLab werken we met Scrum. Scrum wordt gekenmerkt door korte sprints. In een periode van twee weken werken verschillende teams samen naar een deadline toe. Testgestuurd ontwikkelen past hier perfect bij. Features worden in korte cycli aan de software toegevoegd of niet toegevoegd. Daarna wordt het voortdurend aan tests onderworpen zodat fouten snel worden gedetecteerd en gecorrigeerd. Hierdoor is de kans groter dat de software minder fouten bevat dan wanneer deze met andere coderingsmethoden zou zijn gemaakt of handmatig getest. De software kan dus snel aan de klant worden geleverd. De combinatie van testgestuurd ontwikkelen en Scrum zorgt ervoor dat we elke twee weken een volledig werkend stuk software kunnen produceren.

De voordelen van testgestuurd ontwikkelen bij SevenLab

  1. Bij testgestuurd ontwikkelen wordt code geschreven vanuit het perspectief van de gebruiker. De focus ligt op de toegevoegde waarde die de software of app aan de gebruiker biedt. De functionaliteit van de software wordt dan onmiddellijk in acht genomen. Problemen met de interface van de software worden tijdig opgespoord en gerepareerd. Op deze manier krijg je bruikbare software in korte tijd.

  2. Business analisten helpen mee in elk SevenLab-project. Ze zijn opgeleid in zowel zakelijke als technische gebieden. De business analist kan inschatten welke software nodig is om je bedrijfsproces te verrijken. Hij of zij helpt je je idee concreet te maken en samen bepalen jullie hoe de software of app moet worden gestructureerd.

  3. Omdat de codes worden geschreven op basis van de tests die eraan voorafgaan, wordt alleen geïmplementeerd wat nodig is. Overbodige functies die niet relevant zijn voor de gebruiker worden onmiddellijk getest en, waar nodig, verwijderd. Fouten worden al in een zeer vroeg stadium gedetecteerd. Dit vermindert de tijd voor softwareontwikkeling, ondanks dat er extra code nodig is om de tests te schrijven. Het resultaat is compacte software zonder poespas.

sevenlab is een betrouwbare partij met een geweldige klantgerichtheid. Ze denken actief met je mee, zijn enorm behulpzaam en flexibel.

Satish Bahwanidin

Projectleider VO-raad

Klaar om je project met ons te bespreken?

Maak kennis met het SevenLab team en de oprichters