Slimmer testen, sneller uitrollen: het belang van cijfers in het app-testproces

In tijden van agile werken en continuous delivery ondergaat ook het testproces van applicaties een flinke transformatie. Hoe evolueren testpraktijken mee en wat kan data-analyse voor het proces betekenen?

Met de transformatie van de manier waarop applicaties ontwikkeld en uitgerold worden, verandert ook de manier waarop organisaties testen. Managed testing, waarbij het hele testprocédé wordt uitbesteed aan een derde partij, verliest aan belang onder druk van de flexibelere devops-samenwerking en agile-workflows. Vandaag worden applicaties dagelijks of zelfs sneller verbetert en uitgerold naar productie-omgevingen en daar moet ook het testproces op voorzien zijn. Vooruitgang op dit vlak is broodnodig, aangezien de kwaliteitscontrole van applicaties een bottleneck vormt in veel moderne agile en devops-workflows.

Van manueel naar automatisch

Olivier Vandekerkhove, Digital Assurance and Testing Practice Manager bij Sogeti, weet wat die transformatie inhoudt. Sogeti en bij uitbreiding Capgemini heeft een nog steeds uitgebreid managed testing-aanbod, maar ondervindt aan den lijve dat er vraag is naar betere en vooral slimmere oplossingen op maat.

“Manueel testen sterft een langzame en stille dood”, voorspelt Vandekerkhove. “Om efficiënt en snel te gaan, en zo tegemoet te komen aan de eisen van agile ontwikkelen, moet testing zo veel mogelijk geautomatiseerd worden.” Hij ziet drie belangrijke pijlers waarop een goed testproces kan steunen.

Impact en inzicht

“Eerst en vooral is snelheid zoals gezegd belangrijk. Vervolgens moet iedere test impact hebben. Een testscenario moet bugs vangen. Zeker wat wel manueel moet verlopen, dient zo veel mogelijk resultaat op te leveren. Tot slot dien je steeds te weten waar je staat.” Daarmee bedoelt Vandekerkhove dat je een zicht moet hebben op de actuele situatie van je tests. “Je moet weten wat de mogelijke impact is van het overslaan van bepaalde testscenario’s, zodat je het risico van een versnelde productie roll-out correct kan inschatten.”

 

Testing is een essentieel onderdeel van de devops-puzzel en moet bijgevolg snel en efficiënt verlopen.

Dat overslaan is geen ideaal scenario maar wel een realiteit in een wereld waar snelheid en flexibiliteit alsmaar aan belang wint. “Ittereer je dagelijks op een applicatie, dan is het niet van doen om alle tests over de hele app opnieuw uit te voeren.” Vandekerkhove geeft het voorbeeld van een shopping-applicatie die uit drie delen bestaat: een front-end met een veilige login-omgeving, een koppeling met de back-end waar de eigenlijke verkoop en betaling plaatsvindt, en een logistiek stuk voor de regeling.

Testen waar het telt

“Als die app verbeterd wordt, maar aan het loginscherm verandert niets en ook de logistiek werd niet onder handen genomen, en beide delen draaien bovendien al lang stabiel, dan moeten tests vooral gefocust worden op de koppeling met de back-end en het betalingssysteem. Daar dien je dan die tests prioriteit te geven die doorgaans de meeste bugs uitlokken, aangezien dat precies is wat je wil.”

 

Je dient tests prioriteit te geven die doorgaans het meeste bugs uitlokken.

 

Het bovenstaande lijkt vanzelfsprekend maar er is inzicht voor nodig. Daarbij gaat het enerzijds om inzicht op het ontwikkelproces: waar werden commits gedaan en hoeveel? Anderzijds moet je een duidelijk beeld hebben van welke tests je hebt en wat ze opleveren. De data is doorgaans voorhanden als impliceert dat niet dat de nodige zichtbaarheid er is. Met slimme software en connectors met de belangrijkste ontwikkel- en testtools kan je alle relevante parameters in een duidelijk dashboard gieten.

Verbinden met de workflow

“Zo zie je in één oogopslag wat er precies is veranderd en waar de risico’s schuilen”, verduidelijkt Vandekerkhove. Bij Sogeti vertaalt die realiteit zich in het Cognitive QA-aanbod, waarbij aan de hand van connectors alle relevante data in een overzicht wordt gegoten. Daarbij blijft de devops-workflow centraal staan: de zichtbaarheidsoplossing moet met andere woorden in de gebruikte tools klikken en niet andersom.

 

De zichtbaarheidsoplossing moet in de gebruikte tools klikken en niet andersom.

 

In het geval van Sogeti is het een optie om ook minder voor de hand liggende databronnen te gebruiken zoals commentaren in de Play Store van Google of op social media. Als mensen daar klagen over een feature die niet naar behoren werkt, dan weet je immers dat er een vangnet in het testproces zit.

Uiteindelijk moet zal optimalisering van het testproces ervoor zorgen dat zoveel mogelijk manuele tests worden omgezet in efficiënte automatische tests. Ook daar moet je kijken naar wat precies getest wordt, aangezien ook deze tests tijd in beslag nemen. “Toont je testproces dat 95 procent van de uitgeprobeerde scenario’s goed draaien, lijkt je app misschien redelijk stabiel. Als van die goed draaiende scenario’s meer dan de helft in de praktijk niet of nauwelijks door gebruikers wordt geïnitieerd, en de vijf procent met bugs net bij een belangrijke feature schuilt, krijg je plots een ander beeld.

Overzicht

Een goed overzicht helpt daarbij. Als bijvoorbeeld blijkt dat het gros van de bugs gevonden wordt door een medewerker die op eigen initiatief rond klikt in een applicatie, dan is je testsysteem duidelijk onvoldoende uitgewerkt. Door na te gaan hoe iemand bugs vindt die er niet door andere tests worden uitgehaald, kan je opnieuw automatiseren en optimaliseren. “Expertise is daarbij erg belangrijk”, haalt Vandekerkhove aan. “Iemand die vertrouwd is met de sector waarin een applicatie wordt gebruikt, kan snel nagaan welke workflows relevant zijn en daar op inzetten tijdens het testen. Dicht bij de business staan is als tester erg belangrijk.”

 

Een overzicht van het aantal gevonden bugs toont je meteen hoe succesvol het testbeleid is. In dit voorbeeld zie je bijvoorbeeld dat er te veel ‘orphan defects’ zijn. Dat zijn bugs die door willekeurig manueel (en dus tijdsintensief) testen worden gevonden.

Volledige automatisering is volgens Vandekerkhove dan ook niet meteen aan de orde. Kennis blijft een groot verschil maken. Zo blijft er volgens de expert een belangrijke rol weggelegd voor menselijke interventie. “We blijven op zoek naar testers en dat hoeven geen IT’ers te zijn. Functionele testers die op een realistische manier door een app navigeren zijn momenteel belangrijker.” Sectorkennis en een creative insteek primeren dus voor de moderne tester. “De nodige IT-kennis doen ze automatisch op”, aldus Vandekerkhove.

Verschil in focus

Die visie verschilt enigszins van hoe andere spelers in het veld de toekomst zien. Gitlab zet bijvoorbeeld in op een totale end-to-end-automatisering, van het committen van de code tot de uitrol in productie. Het idee daarachter is dat de hele ontwikkelingspipeline net wel automatisch kan, al moeten de juiste testscenario’s ook hier gedefinieerd worden.

De focus van de twee organisaties heeft natuurlijk ook een impact op de toekomstvisie. Gitlab is een softwarebedrijf dat z’n schouders kan zetten onder een ontwikkelingsproces met zo weinig mogelijk interventie. Sogeti en Capgemini komen vanuit de consultancy-hoek, waardoor hun focus op de meerwaarde van experts begrijpelijk is. Dat op z’n minst een verregaande automatisering de weg vooruit is, daar lijkt iedereen het wel over eens.

Gerelateerd: Wat is DevOps en wat ben je ermee?