Testen op devices

De belangrijkste voor- en nadelen van automatisch testen

Voor onze klanten is het belangrijk dat de producten die wij ontwikkelen goed werken. Dat wil zeggen dat er geen bugs zijn, formulieren ingevuld kunnen worden en een website doet wat het zou moeten doen. Developers testen natuurlijk of wat zij hebben ontwikkeld werkt, maar bij grote projecten is dit een stuk complexer en tijdrovender. Een simpel aanmeldformulier heeft, in bepaalde gevallen, al snel ongeveer 15 verschillende uitkomsten, ofwel scenario’s, aan de hand van hoe je het formulier invult. Al deze scenario’s moeten worden nagelopen. Gelukkig kunnen we dit soort scenario’s automatisch testen.

Collega controleert automatische test

Maar wat is automatisch testen?

Dit is simpel gezegd het automatisch laten uitvoeren van het testen - nalopen - van scenario’s. Deze scenario’s worden zo geschreven dat ze begrijpelijk zijn voor iedereen, zowel technische als niet-technische mensen, en in gecodeerde testen kunnen worden opgenomen. De testen kunnen vervolgens, in overleg met het scrumteam en de klant, automatisch worden uitgevoerd, bijvoorbeeld dagelijks. Eerder schreef ik al een uitgebreide blog over hoe automatisch testen in zijn werk gaat.

In dit blog wil ik je graag meer vertellen over de voor- en nadelen van automatisch testen. Daarnaast laat ik je aan de hand van onze start-up Armarium zien hoe automatisch testen werkt, wat de voordelen zijn en welke inzichten het oplevert.

De voordelen van automatisch testen

Het is dus belangrijk om, voordat (een nieuwe versie van) een website of webshop live gaat of een applicatie wordt gelanceerd, scenario’s na te lopen. Door automatisch te testen kunnen snel een heleboel scenario’s worden nagelopen. Voordat een release wordt gemaakt en live gaat, worden alle scenario’s automatisch in een geïsoleerde omgeving getest. Je kunt aan de hand van vooraf vastgestelde scenario’s, bijvoorbeeld wat de websitebezoeker moet kunnen doen op de website, in de testomgeving testen of dit mogelijk is. De testen zijn heel strikt vastgelegd. Als er al één afwijking is, wordt een release automatisch geblokkeerd en kan de desbetreffende versie niet live worden gezet. Hierdoor komen eventuele gebreken al aan het licht voordat de website - of een nieuw deel hiervan - live gaat. En kan het probleem worden opgelost. Het scheelt een hoop tijd, geld en energie als een probleem bij het bouwen van de website wordt ontdekt in plaats van als de website live staat. Zeker bij langere en grotere projecten is dit waardevol. Ook als je website al live is kunnen, periodiek of situationeel, testen worden uitgevoerd. Als je, bijvoorbeeld op een website, met plugins en/of open source software werkt, ben je afhankelijk van externe omgevingsfactoren. Als een externe partij een security of optimalisatie update doorvoert, wijzigen hun codes. Hierdoor kunnen problemen ontstaan, bijvoorbeeld een koppeling die niet meer werkt. Als websitebouwer heb je hier geen invloed op, want je schrijft de codes van de plugin of open source software niet zelf. Als je een automatische test uitvoert, komen problemen die ontstaan doordat de code is veranderd aan het licht. Je kunt hier vervolgens meteen op inspelen.

Automatisch testen in de praktijk

Leuk zo’n lijstje met voordelen, maar hoe werkt dit in de praktijk? Neem bijvoorbeeld onze start-up Armarium. Zij ontwikkelden een webapplicatie waarmee advocatenkantoren digitaal kunnen procederen. Om te zorgen dat de webapplicatie optimaal werkt, worden twee soorten automatische testen uitgevoerd. Allereerst wordt elke ochtend een aantal primaire functionaliteiten getest. Er wordt onder andere getest of kan worden ingelogd, of een nieuwe zaak kan worden aangemaakt en of documenten kunnen worden geupload. Daarnaast wordt in het kader van de development cyclus automatisch getest. Na een codewijziging wordt automatisch getest of bepaalde functionaliteiten nog werken. De developers werken in een aparte omgeving aan een stukje van het product. Voordat ze bijvoorbeeld een nieuwe functionaliteit of optimalisatie deployen wordt een automatische test uitgevoerd. De scenario’s die worden getest zijn onder andere gebaseerd op verschillende rollen binnen een advocatenkantoor die met Armarium werken. Zo heb je Edwin de systeembeheerder, Ernst de advocaat, Debbie de secretaresse en Aad de procesondersteuner. In de scenario’s is bijvoorbeeld opgenomen dat Edwin nieuwe gebruikers kan toevoegen, maar geen gevens van een zaak in mag kunnen zien. De gegevens van een zaak worden in Armarium op meerdere plekken, die met andere codes werken, gebruikt. In theorie is het dus mogelijk dat, door de verschillende codes, de gegevens op de ene plek wel en de andere plek niet kunnen worden gebruikt. Door dit dagelijks te testen, wordt meteen duidelijk of en waarom gegevens niet kunnen worden gebruikt. Medewerkers van Armarium kunnen tevens live meekijken met een test. In onderstaande video zie je hoe zo’n test eruit ziet.

De nadelen van automatisch testen

Een nadeel is dat het inrichten van automatische testen tijd en geld kost. Er moeten duidelijke afspraken worden gemaakt over welke scenario’s wel en niet worden getest, hoe vaak wordt getest en hoe een test eruit ziet. Vervolgens moeten testen worden geschreven en moet worden getest of de testen werken. Veel soorten testen kunnen geautomatiseerd worden, maar bij een gebruikerstest ligt dit wat ingewikkelder. Handmatig testen door de doelgroep is hierbij namelijk essentieel. Daarentegen is er wel tooling om user experience automatisch te meten. Automatisch testen kan voor een gevoel van schijnveiligheid zorgen. ‘We testen toch automatisch dus merken het snel als iets fout gaat.’ Toch is het belangrijk om de testen en de website, webshop of applicatie in de gaten te houden.

Wanneer is het zinvol om automatisch te testen

Bij kleine projecten is het vaak efficiënter om handmatig te testen, omdat het inrichten van automatische testen in het begin best wat tijd kost. Toch kan het bij kleine projecten wel lonen om, bijvoorbeeld bij aanpassingen of onderhoud, automatisch te testen en monitoren of alle belangrijke processen nog werken. Bij grotere projecten en projecten waarbij je afhankelijk bent van omgevingsfactoren, zoals externe plugins of een open source software, is automatisch testen nog waardevoller. Problemen komen eerder aan het licht waardoor je er makkelijker en sneller op kunt inspelen. Dit zijn geen vastgelegde of harde eisen. Als projectteam of organisatie ben je natuurlijk vrij om keuzes te maken die passen bij jouw project en situatie.