De Nieuwe Zaak Blog

Webshop release gedaan? Zo voorkom je onzekerheid!

Geschreven door Tim Kijne | 30 augustus 2018

Bij veel bedrijven wordt er vlak voor het belangrijkste seizoen van het jaar een release uitgevoerd en live gezet. Maar hoe zorg je ervoor dat daarmee het bestelproces wel goed blijft werken, en je geen omzet misloopt?

Het belang van regressietesten en testautomatisering

In het snel veranderende digital commerce landschap is het van essentieel belang om ervoor te zorgen dat je kort, cyclisch en risicoloos kunt releasen. Nieuwe technologische ontwikkelingen vragen vaak om aanpassingen aan je huidige webshop op zowel functioneel als technisch gebied. Dit soort optimalisaties worden geformuleerd tot user stories op een backlog zodat ze klaar staan om in een release meegenomen te worden en live gezet kunnen worden.

Bij het bouwen van een webshop neemt De Nieuwe Zaak diverse maatregelen om de kwaliteit van de webshop te waarborgen. In dit blog gaan we in op een specifiek onderdeel van de verschillende kwaliteitscontroles die we uitvoeren, namelijk automatisch regressietesten.

Kwaliteit van opgeleverde software van belang bij doorlopend releasen

Het doorlopend (agile) releasen van nieuwe versies van een webshop begint de norm te worden, omdat dit het moment van waardelevering is. Waar je voorheen slechts één keer per half jaar een aantal optimalisaties doorvoerde, wordt dit tegenwoordig iedere maand of zelfs iedere dag gedaan. Bij Coolblue volgen deze ontwikkelingen zich zelfs zo snel op dat ze soms meerdere malen per dag een nieuwe versie van hun webshop releasen.

Zo vaak en zo snel releasen kan alleen als de kwaliteit van het gehele proces onder controle is. Bij elke release worden kwaliteitscontroles uitgevoerd op de opgeleverde software. Zowel gedurende het ontwikkelproces, op de testomgevingen als op de live omgeving na oplevering. Zo streven we naar kwalitatief hoge software die het mogelijk maakt om continu door te ontwikkelen en daarbij de continuïteit van de webwinkel te blijven waarborgen. Door het streven naar deze continue releases nemen de kosten voor het uitvoeren van handmatige tests toe. Dat moet efficiënter kunnen…

Kortom:

  • Time to market wordt steeds belangrijker
  • Releases volgen elkaar snel op
  • Quality to market is essentieel
  • Kosten voor handmatig testen nemen toe door grote hoeveelheid releases

De toenemende professionaliteit van het vak ‘functioneel testen’ hebben we in een maturity model geplaatst. Deze ziet er als volgt uit:

In het model zie je dat regressietesten, automatisch regressietesten en testmonitoring de ‘next best steps’ zijn om naar het volgende niveau te komen. Deze lichten we graag graag toe:

Regressietesten

Pas vanaf het moment dat wijzigingen of functionaliteiten live gezet worden, leveren deze waarde. Daarom is het essentieel om kort cyclisch te ontwikkelen. Hierdoor wordt het moment waarop waarde wordt geleverd zo vroeg mogelijk behaald. Echter, kan het doorvoeren van nieuwe aanpassingen ervoor zorgen dat reeds bestaande features of essentiële processen beïnvloed worden. Regressietests zijn bedoeld als herhaalbare testsets om relatief snel inzage te krijgen in de werking van de opgeleverde release. Hiermee wordt het risico op een niet werkende applicatie verkleind.

Tijdens de regressietest worden de basisfunctionaliteiten en -processen binnen een webshop of website handmatig getest. Denk hierbij aan het orderproces, nieuwsbrief inschrijvingen, het aanmaken van accounts, mijn-account omgeving en contactformulieren. Een regressietest is dus een test van de volledige primaire omgeving, waardoor een bug die ontstaan is op een andere plek eerder gevonden wordt. Zo kan deze ‘goedkoper’ opgelost worden voordat de nieuwe release live gezet wordt. Deze regressietesten bestaan uit een testplan dat herbruikbaar en schaalbaar is zodat het bij volgende releases opnieuw te gebruiken is. Het uitvoeren van een volledige regressietest is echter arbeidsintensief en – omdat deze idealiter na iedere release opnieuw uitgevoerd dient te worden – niet efficiënt. Naarmate het aantal releases toeneemt, wordt het dan ook interessant om de regressietest te automatiseren.

Automatisch testen

Het handmatig uitvoeren van een regressietest na iedere release is een herhaalde uitvoer van een volledig testplan. Het voelt een beetje zoals we vroeger te werk gingen als er meer exemplaren van een boek nodig waren. In het begin van de 15e eeuw schreven monniken een boek over indien er meer exemplaren nodig waren. Je kunt je voorstellen dat dit niet echt efficiënt is. Niet heel gek dat de term monnikenwerk zo ontstaan is! Gelukkig vonden we in 1453 de drukpers uit zodat de monniken weer andere leukere, inspirerende dingen konden gaan doen.

Herhalende taken zoals een regressietest zijn tegenwoordig gelukkig ook prima te automatiseren. Je gaat immers niet iedere keer opnieuw het wiel uitvinden. Het automatiseren van regressietesten kan op termijn een enorme tijdsbesparing opleveren. Het opzetten van de automatische regressietest is een investering die gedaan dient te worden. Daarnaast moet deze ook aangepast worden na grote wijzigingen aan de webshop, zodat deze nog steeds op de juiste manier de applicatie test. Het omslagpunt voor het terugverdienen van deze investering hangt af van de hoeveelheid releases die je doet.

Geautomatiseerd testen is het dynamisch testen van een applicatie zonder tussenkomst van menselijke handelingen. Dit kan door middel van software zoals Selenium. Selenium maakt het mogelijk om het gedrag van een normale gebruiker na te bootsen alsof hij zelf door de webshop klikt. Hiervoor is het nodig de regressietest te programmeren, waarna deze met een paar muisklikken geactiveerd kan worden. Vervolgens doet een tester een analyse op deze data en biedt het waardevolle inzichten in de kwaliteit van de opgeleverde software. Hierdoor kan de tester zich meer focussen op de zaken die niet automatisch te testen zijn, en kan er dus veel efficiënter met zijn tijd omgegaan worden.

Voordelen van automatisch regressietesten

  • Zekerheid: door het regelmatig uitvoeren van de test heb je continu zekerheid over de beschikbaarheid van je webwinkel en het bestelproces.
  • Frequentie: De hogere snelheid maakt frequenter testen mogelijk. Je laat je niet meer beperken door de hoeveel tijd die een test kost. Deze zou je ook dagelijks uit kunnen voeren.
  • Betrouwbaar: Doordat de regressietest geautomatiseerd wordt en dus niet meer door ‘mensen’ uitgevoerd wordt, is de foutgevoeligheid een stuk lager.
  • Herhaalbaar: De automatische test voert iedere keer hetzelfde script uit en ‘bugs’ zijn makkelijker te reproduceren.
  • Efficiënt: Bij regelmatig regressietesten bij releases heb je lagere kosten door minder tijdsbesteding voor de uitvoering.

Belangrijke risico’s of nadelen die we zien

  • Handmatig testen blijft nodig, wel minder en alleen op specifieke nieuwe functionaliteiten.
  • Regressietesten is op basis van een standaard testplan en dus niet gevarieerd.
  • Regressietesten is functioneel, dus niet visueel, front-end of browser.

Dit is slechts een klein deel van de voor- en nadelen van het geautomatiseerd testen van een user-interface. Een bredere lijst van voor- en nadelen van de verschillende manieren van testen is te vinden op de website van Valori.

Testmonitoring en dashboarding

Het is waardevol om de resultaten van een automatische test in een helder overzicht te tonen, zodat hierop actie kan worden ondernomen. Het inzicht in de resultaten van deze automatische tests zorgt ervoor dat bevindingen in het bestelproces snel gesignaleerd en opgelost kunnen worden. Daarnaast kan de monitoring signalen afgeven zodra er zich een fout voordoet in de primaire processen van de webshop. Hier kan vervolgens proactief actie op ondernomen worden door het team aan ontwikkelaars.

En nu?

Regressietesten is één van de methoden die De Nieuwe Zaak gebruikt om kwaliteit en continuïteit te waarborgen. Het is onderdeel van het totaalpakket aan mogelijkheden voor kwaliteit verhogende maatregelen. Benieuwd wat De Nieuwe Zaak hierin voor jou webshop kan betekenen? Neem dan contact met ons op!