Nieuwe ontwikkelingen en aanpassingen worden uitgebreid getest voor ze zichtbaar zijn voor de klant.


Hieronder vind je een overzicht van onze aanpak :

  • kañooh is een webplatform gebaseerd op Drupal 7. Aangezien Simpletests standaard bij Drupal worden meegeleverd, gebruiken we deze voor de unit tests. Voor de functionele testen gebruiken we Selenium, geïntegreerd via PHPUnit. We hebben voor deze oplossing gekozen omdat we hoofdzakelijk met PHP-ontwikkelaars werken.
  • Daarnaast gebruiken we ook Countinuous integration via Jenkins. Bij iedere aanpassing worden alle tests op het gehele platform uitgevoerd, waarbij geen enkele manuele interventie nodig is. Als een test faalt, wordt het gehele team via e-mail op de hoogte gebracht, zodat we snel kunnen inspelen op eventuele problemen. Op ons controle paneel van Jenkins knipperen constant lopende testen tot ze rood (niet goed) of groen (goed) als uitkomst kennen.
  • In onze Definition of done staan alle aanpassingen, zowel nieuwe features als bugfixes, beschreven. Geen enkel ticket, hoe dringend ook, mag geaccepteerd worden zonder dat er testen voor geschreven zijn én geslaagd zijn. Op deze manier vermijden we regressies in andere delen van het kañooh CMS.
  • Onze testen draaien in parallel op een Amazon AWS server. Bij zware belasting worden er dynamisch nieuwe testservers opgestart zodat de doorlooptijd beheersbaar blijft. Momenteel krijgen we onze testresultaten na maximum 1 uur, waar het voorheen 6 tot 7 uur kon duren om alle testen op één enkele machine uit te voeren. Dit soort van optimalisaties gebeuren in de achtergrond en op regelmatige basis. 
  • We gebruiker Browserstack voor het uitvoeren van Seleniumtests.
  • Regelmatig evalueren/auditeren we onze testinfrastructuur en codebase om pijnpunten en bottlenecks te identificeren. De nodige infrastructuuraanpassingen en code refactoring worden volgens hun prioriteit in de tweewekelijkse sprints opgenomen.
  • Naar schatting gaat ongeveer 40% van de totale ontwikkeltijd naar het schrijven en onderhouden van testen. 


Tijdens de tweewekelijkse release wordt er onder andere getest op testomgevingen die identiek dezelfde inhoud hebben als de websites van onze klanten. Op die manier garanderen we de betrouwbaarheid van de testresultaten. Bovendien testen ook niet-ontwikkelaars de nieuwe of veranderde functionaliteiten.