SAP gebruikende organisaties werken steeds vaker conform Agile/Scrum. Doelstelling is om met kleine iteraties vaker nieuwe of gewijzigde software beschikbaar te maken voor de business. Het systeemlandschap waarbinnen de SAP systemen zijn opgenomen is altijd complex. Het is daarom voor de scrumteams een belangrijke taak om de wijzigingen goed te testen. Dat gaat niet zonder automatisering, van zowel het testproces als de uitvoering. De mogelijkheden voor testautomatisering worden steeds meer volwassen. Hoe pas je deze toe binnen een Agile omgeving, zodanig dat snelheid en onderhoudbaarheid gewaarborgd blijven?

In de vorige twee tips is behandeld dat in een Agile SAP omgeving getest moet worden met allround testers volgens een gecommitteerd testproces. Daarin werd al aangegeven dat dit voorwaardelijk is voor de opzet van testautomatisering. Testautomatisering is toepasbaar op meerdere gebieden: de automatisering van het testproces en de geautomatiseerde uitvoering van de testscripts. Idealiter lopen deze in elkaar over.

Automatiseren van het testproces

Bij het automatiseren van het testproces worden de opzet van testscripts vanuit requirements en de uitvoering daarvan geregistreerd in een testtool, zoals HP Quality Center, JIRA of Testersuite. Vanuit de testtool wordt duidelijk of er testscripts gemaakt zijn voor alle onderdelen van de systemen die ontwikkeld worden en wat de resultaten zijn van de uitvoering van die scripts (handmatig of geautomatiseerd). Bij nieuwe ontwikkelingen kunnen de bijbehorende scripts worden bijgewerkt en als er defects zijn, dan kunnen relevante scripts eenvoudig opnieuw uitgevoerd worden. Zeker in een complex SAP landschap kunnen testers niet zonder een dergelijke testmanagement tool. Anders is het lastig, zo niet onmogelijk, om het overzicht te behouden. Dit wordt nog lastiger wanneer er Agile gewerkt wordt met meerdere Scrum teams. Dan worden in korte tijd veel wijzigingen doorgevoerd binnen de systemen. Met behulp van een goede testmanagement tool kunnen de Scrum teams bijhouden wat er getest is, wat de resultaten zijn geweest en daarover rapporteren.

Automatiseren van de testuitvoering

Bij het automatiseren van de testuitvoering komen andere testtools in beeld. Waren dit vroeger tools die voorbehouden waren aan programmeurs, nu zijn er diverse tools die ook een functionele tester goed kan toepassen. Hij kan zelf de testscripts automatiseren en van de juiste testdata voorzien, zodat deze vaker uitgevoerd kunnen worden. De tester binnen een Scrum team kan zo zelf zorg dragen voor o.a. de geautomatiseerde uitvoering van de regressietest, in het beste geval elke dag. Daarmee wordt heel vroeg binnen het ontwikkelproces duidelijk of een wijziging impact heeft op de niet-gewijzigde systemen. En dat is iets dat je bij een handmatige uitvoering nooit of alleen tegen hoge kosten voor elkaar krijgt.

Maar…

Het is wel zaak om de juiste volgorde te hanteren bij testautomatisering. Er zijn bedrijven die zo blij zijn met de nieuwe testtool, dat ze alleen maar bezig zijn met de geautomatiseerde uitvoering en zich niet bekommeren om de opzet en de onderhoudbaarheid van wat geautomatiseerd is. Dan blijft het vaak bij een paar testruns totdat de geautomatiseerde testscripts vastlopen en de test niet meer geschikt is. Het is daarom verstandiger om eerst te zorgen voor een goed testproces, waarin duidelijk wordt wat er getest wordt, waarom (risico) en hoe. Dit testproces moet voor alle Scrum teams duidelijk zijn en ze moeten dat aantoonbaar in hun Scrum proces inbedden. Alleen op deze manier kunnen wijzigingen goed getest worden en kunnen de testscripts aangepast worden voor toekomstige uitvoering.

Als dit testproces staat, kan worden overgegaan tot het realiseren van geautomatiseerde uitvoer van de testscripts. En ook dan is het zaak om dit goed te structureren. Hak de ketens in testbare brokken op en maak de testobjecten zodanig dat ze herbruikbaar zijn in meerdere scripts en voorkom dat je bij een wijziging vele scripts moet aanpassen. Er is in de markt al veel expertise op dit vlak. Hoe kies je voor de juiste onderverdeling en objecten en hoe kan je deze identificeren zodat ze eenvoudig gevonden kunnen worden na een aanpassing in de systemen. Pas deze expertise toe binnen de testautomatisering en zorg ervoor dat deze robuust wordt, dat wil zeggen: meebeweegt met de aanpassingen in de systemen.

Deze robuustheid is noodzakelijk binnen een Agile omgeving. Zeker waar er toegewerkt wordt naar DevOps, waarbij aanpassingen in de systemen na acceptatie direct getransporteerd worden naar productie. Er moet dan binnen korte tijd veel zekerheid verschaft worden over de mate waarop de aanpassing invloed heeft op de niet aangepaste delen van het systeem. En dat kan alleen door middel van geautomatiseerde uitvoering van de regressietest, waarbij de acceptanten meteen meekijken naar de resultaten. Daarbij moet heel duidelijk worden welke testscripts er uitgevoerd zijn en in hoeverre deze de gewenste testdekking hebben. Daar komt het testproces weer om de hoek kijken. En is er ervaring met het geautomatiseerd uitvoeren van de regressietest, dan staat ook de geautomatiseerde uitvoering van de unit- en acceptatietest open. Waarbij de scripts doorlopen van de ene testsoort naar de andere. Hiervoor is een allround tester geen overbodige luxe. Hij of zij zorgt er voor dat de testsoorten en de scripts elkaar ondersteunen en dubbel testwerk voorkomen wordt.

Agile werken in een complex SAP landschap vereist dus robuuste testautomatisering, vanuit een gecommitteerd testproces en ondersteund door allround testers!

Het VNSG Magazine, het vakblad voor alle SAP gebruikers in Nederland en Vlaanderen, verschijnt 5 keer per jaar. PTWEE geeft in iedere editie een praktische tip over testen in een SAP omgeving. 
Dit artikel is opgesteld door Bert Klok en Douwe Vermeulen en is de derde tip uit een reeks tips over Agile en SAP testen. Heeft u vragen of wilt u meer weten over Agile testen in een SAP omgeving, neem dan contact op met Douwe Vermeulen.