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. In het nieuwste magazine een eerste tip uit een reeks van tips over Agile testen.
Steeds vaker wordt bij het ontwikkelen en beheren van systemen de Agile/Scrum methodiek toegepast, ook bij bedrijven die SAP systemen gebruiken. Agile ontwikkelen wordt gebruikt om sneller nieuwe of gewijzigde functionaliteit beschikbaar te stellen. Daarvoor wordt gewerkt in scrumteams met korte cycli (deze worden ‘sprints’ genoemd). Ten opzichte van een klassieke waterval methode zoals ASAP levert dit veel sneller toegevoegde waarde aan de business. Dat is een groot voordeel.
De ontwikkelingen vinden in kleine scrumteams plaats. Binnen elk team wordt gezamenlijk gewerkt aan design, bouw, testen en acceptatie. In nauw overleg met de Product Owner worden backlog items (requirements, user stories) bepaald en in één of meerdere sprints gerealiseerd. De sprints kunnen zowel wijzigingen in bestaande software omvatten als volledig nieuwe ontwikkelingen. De focus van het team ligt op het realiseren van deze backlog items; ze hebben zich daar tijdens een planning sessie aan gecommitteerd. En een backlog item wordt pas opgeleverd als deze voldoet aan de ‘Definition of Done’. Daarin worden de criteria bepaald waaraan het product moet voldoen om opgeleverd te worden.
Het testen binnen een scrum team is van groot belang, maar staat onder grote druk. Het komt vaak voor dat aan het einde van de sprint nog veel getest moet worden. En tegelijk wordt de druk ervaren om te voldoen aan de geplande resultaten (commitment van het team). Het ligt dan voor de hand om het testen vrij oppervlakkig te houden, bijvoorbeeld door alleen de ‘happy flow’ te testen. Als die test slaagt, dan wordt voldaan aan de Definition of Done en kan er opgeleverd worden. Klant blij, team blij.
Maar schijn bedriegt. En het is onze ervaring dat een scrum team deze manier van testen niet lang volhoudt. Het team wordt uiteindelijk zelf de dupe van onvoldoende testen: er volgen productie problemen die opgelost moeten worden en daar gaat dan een groot deel van de tijd heen, in plaats van (wat veel leuker is!) het ontwikkelen van oplossingen waar de business op zit te wachten.
Daarom is een gedegen test binnen het scrumteam een keiharde noodzaak, onder leiding van een allround tester. Deze tester heeft veel kennis van en ervaring met testen, Agile werken, SAP, business processen en test tools.
- Testen
Een ervaren tester kan met zijn kennis zelf goed testen, maar ook anderen binnen het team helpen met het testen. Zo kan de tester helpen met de unit testen van de ontwikkelaars, met de systeem integratie testen en ondersteunen tijdens de acceptatie testen door de business. In een scrum team wordt weinig tijd besteed aan het voorbereiden en uitwerken van scripts. Desondanks moet binnen het team duidelijk zijn dat er voldoende is getest, binnen elke testsoort. Een ervaren tester kan dit voor zijn rekening nemen en organiseren.
Regressietesten is typisch een test die wel belangrijk is, maar waar weinig aandacht voor is binnen een klein team. De ervaren tester kan dit opzetten en afstemmen met testers binnen andere teams. Zeker als hele ketens moeten worden getest om daarmee aan te tonen dat de wijzigingen van jouw team de software van andere teams niet onderuit haalt. - Agile werken
Het testen binnen een omgeving waar Agile gewerkt wordt wijkt sterk af van het testen binnen een waterval methode. Niet direct de inhoud van het testen zelf is anders, maar juist de fasering van het testen. Agile werken houdt in dat er snel ingespeeld moet worden op wat er binnen het team of de omgeving gebeurt. Het testen volgt dit op de voet wat moet resulteren in dat er steeds grondig wordt getest (al dan niet gedocumenteerd). Het testen staat doorlopend onder druk, maar is nooit onbelangrijk. Een extra taak voor een tester binnen het team om hier steeds weer aandacht voor te vragen.
Een extra uitdaging voor de tester is om binnen het Agile werken toch een vorm van regressie-testscripts te blijven onderhouden. - SAP
Agile werken binnen een landschap waar ook SAP systemen in zitten is altijd complex. Een tester die ervaring heeft met SAP begrijpt dat: wat er aan het ene einde van een SAP module wordt gewijzigd kan zomaar een andere module beïnvloeden. Dat houdt in dat complete SAP processen moeten worden getest en niet alleen één transactie of één programma. Daarnaast is een tester die SAP kent een betere gesprekspartner van een SAP ontwikkelaar of functionele consultant: ze spreken dezelfde (SAP)taal.
Agile werken levert snel resultaten. Maar ook fouten zijn snel gemaakt, zeker in een complex SAP landschap. - Business processen
Een scrum team realiseert backlog items die met de Product Owner zijn afgestemd. Dit is er altijd op gericht om zo snel mogelijk toegevoegde waarde te leveren aan de business. En toegevoegde waarde betekent vrijwel altijd dat de business zijn werk beter kan doen: efficiënter of effectiever. Het is een groot voordeel wanneer de tester deze business processen kent en deze ook als uitgangspunt neemt bij het testen. Dat geeft een beter resultaat.
Ook ondersteunt een tester die de business processen goed kent de business beter bij het uitvoeren van de acceptatietesten. - Test tools
Goed testen binnen een scrum team kan niet zonder ondersteuning door tools. Zowel op het gebied van het managen van het testen als het automatiseren van de uitvoering. In een volgend artikel zal dit verder uitgewerkt worden.
Naast kennis van en ervaring met bovengenoemde aspecten moet nog een extra element worden toegevoegd. Omdat het testen binnen een scrum team altijd onder druk wordt uitgevoerd, moet de tester ook sociaal erg vaardig zijn. Hij moet steeds aandacht voor het testen blijven vragen, hij moet de andere teamleden helpen bij het testen, terwijl zij hier niet altijd zin in hebben (ontwikkelaars!). En de tester moet kunnen verantwoorden dat er voldoende is getest, aan de Product Owner en aan de business. Want als er productie issues naar voren komen wordt al snel de conclusie getrokken: slecht getest.
Het zal duidelijk zijn: testen binnen een Agile omgeving vergt veel van een tester. Zorg ervoor dat elk team een allround tester bevat. Want hoewel testen altijd onder druk staat: onvoldoende testen is binnen een complex SAP landschap desastreus. Er wordt dan in hoog tempo veel slechte software opgeleverd.