Sogeti sessie tijdens JavaOne: hoe maak je een op open source gebaseerd test framework?

Van 18 tot en met 22 september vindt in San Francisco het grootste Java congres van de wereld plaats: JavaOne

Op dit congres worden technische sessies gehouden over een verscheidenheid aan onderwerpen op het gebied van Java, software ontwikkeling en architectuur.

Dit jaar is Sogetist Erwin de Gier (Open Source) als spreker aanwezig op dit congres. De titel van zijn presentatie is ’Creating a polyglot test framework with reactive technology’. Wij stelden hem een aantal vragen over zijn presentatie.

Waarover gaat je presentatie tijdens Java One?

JavaOneEen aantal maanden geleden kwam collega Vincent Wijnen van Test Automation naar ons toe met de vraag of wij hem konden helpen met de realisatie van een test framework, gebaseerd op open source technologie. Het doel van dit framework is om een standaard te bieden voor het implementeren van een test automatiseringsproces en dit te integreren met bestaande test tooling zoals Selenium, SoapUI, JMeter, etc. Het biedt teams de mogelijkheid om testscripts te schrijven in een eigen formaat, bijvoorbeeld MS Excel. De testscripts kunnen vervolgens worden gebruikt om testsets te draaien tegen verschillende interfaces zoals websites, REST services, SQL databases en webservices. 

Microservices aanpak

Het ontwerp van het framework volgt een microservices aanpak, met losgekoppelde componenten die communiceren via berichten. De componenten kunnen gebouwd worden met verschillende talen, zoals Java, Groovy en JavaScript. Dit geeft test engineers de mogelijkheid om het framework uit te breiden met een voor hen bekende taal. Voor de realisatie van het framework wordt gebruik gemaakt van een non-blocking, reactive aanpak die ervoor zorgt dat er veel taken naast elkaar kunnen worden uitgevoerd. Het uitvoeren van een testscript heeft hierdoor weinig impact op het uitvoeren van de andere testscripts. Dit is een belangrijk voordeel, omdat er veel externe systemen worden aangeroepen tijdens een test waarvan de reactietijd onbekend is. 

Testing framework

Het framework kent de mogelijkheid om functionaliteit toe te voegen aan een draaiende instantie zonder deze te stoppen. Hiernaast kan het test framework gedraaid worden op meerdere servers, wat ons de mogelijkheden geeft om grote aantallen tests tegelijk te draaien en om performance tests uit te voeren. 

Het test framework is gebaseerd op de Vert.x toolkit, wat veel van de geboden functionaliteit mogelijk maakt. 

Waar komt dit idee vandaan?

Veel teams die testautomatisering willen implementeren beginnen vanaf nul en moeten zelf het wiel uitvinden. Ze downloaden een tool voor testautomatisering en beginnen daar specifieke test scripts voor te schrijven. Echter, de generieke aanpak voor het onderhouden van testscripts die verschillende tools gebruiken is een uitdaging. Ook het daadwerkelijk periodiek geautomatiseerd uitvoeren en het integreren van verschillende testscripts blijft lastig. Op dit gebied willen we met het Test Automatiserings Framework een standaard aanpak bieden. Het framework kan vervolgens uitgebreid worden met voor het team specifieke functionaliteit. Dit stelt testautomatisering professionals in staat om zich te focussen op hun specifieke functionaliteit.

Wat is je persoonlijke link met testautomatisering en de gebruikte technologie?

Als ontwikkelaar vind ik dat automatisering een belangrijk onderdeel is van software ontwikkeling. De realisatie van dit framework was voor mij een leuke uitdaging waarin ik moderne aanpakken voor software ontwikkeling kon toepassen. Hiernaast heb ik gebruik kunnen maken van nieuwe technologieën zoals Vert.x, MongoDB en AngularJS.

Na het congres deel ik graag welke belangrijke inzichten en ervaringen ik zelf heb opgedaan in San Francisco.

Meer weten?

Ben je ook bij JavaOne, kom dan naar de sessie van Erwin. Wil je meer informatie over Open Source technologieën, neem dan contact op via onderstaande gegevens. Of download direct de whitepaper die Erwin heeft geschreven over hoe je de implementatie van Microservices vereenvoudigt met Vert.x.