launchpadat2x.jpg

Hoe onze test-gedreven aanpak zorgt voor stabiele en uitbreidbare apps

Geplaatst door Sjors Snoeren op 25 april 2018

Wat is test-gedreven software ontwikkeling?

Het testen van software is niets nieuws, bijna elk softwarebedrijf test apps voordat deze beschikbaar komen. Veel bedrijven laten potentiële gebruikers de app gebruiken zodat de werking wordt gevalideerd. Voor de hand liggende problemen worden snel gevonden. Echter wat niet altijd wordt beseft: is dat er veel andere manieren zijn om software te testen.

Je kunt software namelijk ook door software laten testen. Hè, wat? Ja, je kunt een stuk code programmeren dat een stuk ander code valideert. Een soort wiskunde: je verwacht dat de functie f(x * 2) het getal met 2 vermenigvuldigt. Om dit te testen vul je voor de grap twee getallen in: je verwacht dat 2 keer 2 op 4 uitkomt en 8 keer 2 op 16. Deze denkwijze kan ook toegepast worden op het testen van software, sterker nog grote IT bedrijven als Google en Facebook doen niet anders.
 

Hoe helpt test-gedreven ontwikkeling fouten te voorkomen, en wat heb ik hier aan als ondernemer?

Nu hoor ik je denken, leuk dat Google en Facebook dit doen maar wat heb ik hieraan als ondernemer? Kijk, het is heel simpel, als klant hoef je natuurlijk niet bezig zijn met het schrijven van deze tests. Maar het is wel heel belangrijk om te zorgen dat de partij waar je mee samenwerkt dit wel juist toepast. Je hebt het vast wel eens gehoord, een stuk code kan niet uitgebreid worden of een partij vind de code van de buurman niet goed genoeg om mee verder te werken. Complete garantie kun je nooit geven, maar een goed doordacht test-proces zorgt voor:

  1. Gedocumenteerde code. De tests beschrijven de werking, zodat een nieuwe ontwikkelaar meteen begrijpt hoe functionaliteiten horen te werken.
  2. Betere uitbreidbaarheid. Zoals benoemd in het voorbeeld hierboven moeten de functies heel simpel zijn om deze goed te kunnen testen. Het testproces forceert dus de ontwikkelaar om bruikbare code te ontwikkelen.
  3. Meer garantie over de werking van jouw systeem. Als een gebruiker de app doorloopt, bewandeld hij een aantal paden maar hierbij ziet hij natuurlijk niet alles. Een goed test-proces zorgt ervoor dat jij met 1 druk op de knop de werking van jouw systeem in alle uithoeken kan valideren.
     

Waarom Google 50.000 keer per dag software online zet (en waarom gaat dit nooit fout?)

Hoe kan het dat Google zo vaak een nieuwe versie lanceert van nieuwe functionaliteiten? En waarom doen ze dat? Als je kleinere brokken functionaliteiten test zie je sneller resultaat en voorkom je dus grote fouten. Het proces om een website te uploaden, dat voorheen extreem veel tijd in beslag nam, wordt dit nu veel eenvoudiger. Dit proces, waarbij meerdere malen per week of zelfs per dag updates worden geplaatst wordt Continue Integration genoemd. Waar voorheen getest moest worden of alles nog steeds naar behoren werkt, valideren we dat nu met een druk op de knop.

 

Hoe start ik zelf met het integreren van een juist testproces?

Klinkt goed toch? Wil je dit zelf ook toepassen? Laat je adviseren door The Red Corner. Graag gaan we een keer met je in gesprek om te kijken hoe wij jouw software kunnen verbeteren door het toepassen van test-gedreven softwareontwikkeling.

Our fighter legends