Hoe behouden wij de kwaliteit van uw website?

Hoe behouden wij de kwaliteit van uw website? Daarin is het continu testen van uw website erg belangrijk. Dat doen we onder andere met de Kirra Project Test Tool (KPTT). Een tool die met veel liefde is ontwikkeld door onze programmeurs en inmiddels een belangrijk onderdeel is in het testproces van een website. Op deze pagina vertelt Romke over het ontstaan en de werking van de testtool. Inclusief een tipje van de sluier over nieuwe plannen met de testtool. 

Voor een mens is het heel saai en eentonig om alle code door te lopen op het voorkomen van problemen. Computers zijn daar veel beter en secuurder in, en daar spelen we met de KPTT heel goed op in. De KPTT heeft de codekwaliteit van iWink sterk verbeterd en zal dat ook steeds verder blijven doen.

De Kirra Project Test Tool

Wij programmeurs zijn lui. We hebben een hekel aan saai, repetitief werk. En dat is goed, vooral voor onze klanten. Wij steken namelijk structureel tijd in het bouwen van tools die ons werk uit handen nemen. Een computer kan namelijk repetitief werk doen, zonder daarbij fouten te maken. Eén van deze tools is de KPTT: de Kirra Project Test Tool.

Kirra brengt ongeveer twee keer per jaar een nieuwe versie uit. Omdat wij honderden sites beheren, moeten er bijna dagelijks websites geüpgraded worden. Veel van de controles die bij zo een upgrade uitgevoerd moeten worden, zijn repetitief en nogal saai. Wanneer mensen langere tijd saai werk doen beginnen ze fouten te maken. Gelukkig kan voorspelbaar werk altijd overgenomen worden door een computer. Daarom bouwden we een tool die het repetitieve, ietwat saaie werk kon overnemen.

Patroonherkenning

Er is een lange geschiedenis van automatische tests in de IT wereld. Die tests waren echter niet precies wat we voor ogen hadden voor onze Kirra Test Tool: ze waren bedacht voor de meer traditionele processen waar je een groot stuk software één keer schrijft, op een CD stampt en verkoopt. In ons geval hebben we honderden websites die allemaal verschillend zijn, maar één ding gemeen hebben: ze zijn gebouwd op Kirra.

Daarom schreven we onze eigen tool, met een simpele aanpak. De tool moest de code van de website inlezen en bepaalde veel voorkomende fouten herkennen. De testtool maakt daarbij gebruik van 'reguliere expressies': een algemene taal voor het herkennen van patronen in tekst.

Reguliere expressies

Reguliere expressies, beter bekend onder de Engelse naam regular expressions, vormen een soort taal voor het beschrijven van patronen in tekst. Dit kan iets heel simpels zijn, zoals "Geef mij alle gevallen van het woord 'huis' in het Algemeen Dagblad van vandaag" of bijzonder specifiek, zoals: "Ik wil alle woorden uit Harry Potter met een stukje symmetrie in het midden van het woord, maar niet aan het begin of einde."

Er is zelfs een spelletje bedacht genaamd 'Regex Golf' waarbij het doel is om in zo weinig mogelijk stappen één lijst van woorden wel te herkennen en een andere juist niet.

Een voorbeeld van een test

Een voorbeeld: veel van onze websites versturen notificatie per e-mail. Denk bijvoorbeeld aan de bestellingsbevestiging die een klant ontvangt vanuit een webshop. Het is belangrijk dat die e-mails correct verstuurd worden. In oudere websites kwam het voor dat er niet gecontroleerd werd of zulke e-mails goed verstuurd werden. Daarom hebben we de KPTT uitgebreid met een test die deze situatie herkent. Als de KPTT nu een project naloopt waarin het versturen van e-mails niet gecheckt wordt, dan krijgt de programmeur een melding daarvan. In de melding wordt direct ook een suggestie gedaan hoe het probleem opgelost dient te worden: als de website detecteert dat e-mails niet juist verzonden kunnen worden, dan wordt onze Support-afdeling op de hoogte gebracht. Dankzij de KPTT is deze controle nu bij het merendeel van de door ons ontwikkelde websites ingebouwd.

Een voorbeeld van een KPTT rapport
Een voorbeeld van een KPTT rapport

If something works well: make more

De testtool bleek uitermate nuttig, met name bij het bijwerken van bestaande websites. Al snel werd de KPTT, die eerst nog als experiment beschouwd werd, een voorgeschreven onderdeel voor het testen van websites. De tool werd gebruikt voor zowel nieuw opgeleverde projecten als websites die werden bijgewerkt naar de nieuwste versie van Kirra. Meer gebruikers leidde tot meer feedback, leidde tot meer tests, leidde tot steeds hogere kwaliteit van opgeleverde projecten.

We hadden nu een deel van ons werk uitbesteed. We hoefden niet meer zelf door duizenden regels code te kijken op zoek naar fouten: dit werd automatisch voor ons gedaan. Maar wanneer een fout werd gevonden moesten we het nog wel zelf oplossen, zelfs als de oplossing voospelbaar en saai was. En u weet hoe wij denken over saai en voorspelbaar werk. De volgende stap lag voor de hand: automatische fixes.

Automatische fixes

Automatische fixes hebben veel gemeen met de KPTT tests. Ze gebruiken bijna dezelfde reguliere expressies. Het verschil is dat ze de problemen niet alleen rapporteren: ze lossen ze ook op. In feite doen automatische fixes iets heel simpels: ze doorzoeken code en vervangen een stukje tekst met een andere. Simpel maar ook krachtig: in één seconde kan de KPTT werk verzetten wat een programmeur een half uur zou kosten om met de hand te doen. En de KPTT maakt hierbij geen fouten: als niet helemaal zeker is of een fix de juiste oplossing is, nemen we het zekere voor het onzekere en laten we de code met rust. Een programmeur kan het dan alsnog zelf oplossen.

De Kirra Project Test Tool is niet alleen een handig hulpmiddel bij het uitvoeren van Kirra upgrades maar wordt ook ingezet om de kwaliteit van nieuw op te leveren projecten te waarborgen. Het is een essentieel onderdeel van ons testproces.

Statistieken

Op het moment van schrijven zijn de volgende aantallen tests en automatische fixes geschreven voor de KPTT:

Kirra versie Tests Fixes
Elke versie 56 15
3.8 30 12
4.0 20 5
4.0.1 3 1
4.0.2 17 8
4.1 21 7
4.2 26 3
4.3 12 0
Totaal 168 49

Sinds de introductie van de KPTT eind 2012 zijn er drie nieuwe versies van Kirra uitgebracht en zijn er een paar honderd websites bijgewerkt met behulp van de KPTT.

En nu?

De KPTT is een vast onderdeel geworden van ons bedrijfsproces. Elke nieuwe website die wordt opgeleverd hoort volgens de KPTT compleet foutvrij te zijn. En het bijwerken van bestaande websites bestaat nu voor het grootste deel uit het draaien van de KPTT en het oplossen van de problemen die deze ontdekt. Al onze websites zijn wel een keer door de KPTT nagekeken en de bijbehorende problemen zijn opgelost. Het gevolg is dat in de toekomst het bijwerken van websites nog veel sneller zal gaan, aangezien dan alleen nog nieuw ontdekte problemen hoeven worden verholpen.

Sinds de bouw van de KPTT is deze uitgebreid met allerlei extra functies voor het testen van websites, zoals bijvoorbeeld unit testing. We hebben nu ook plannen lopen voor het opzetten van een 'continuous integration' server. Dit is een interne applicatie die onze projecten voortdurend zal controleren met behulp van de KPTT. De programmeur hoeft dan zelf niet meer het project te testen na elke wijzigingen: dit wordt automatisch voor hem gedaan. En naarmate we meer fouten sneller ontdekken gaat de kwaliteit van onze websites, zowel nieuw als bestaande, alleen maar omhoog.

Waar betaal ik eigenlijk voor? Content marketing learnings van het Customer Media Congres