Automatisering in Jira Cloud
Automatisering in Jira Cloud
“Wat een werk om dit steeds aan te maken”, “Ik vergeet dit steeds”, “Waarom kan dit niet automatisch?” Zo maar een aantal vragen die ik mij vaker stelde bij het gebruik van Jira.
Sinds de introductie van automation in Jira Cloud is het mogelijk om bepaalde handelingen te automatiseren, wat ervoor zorgt dat je zelf meer tijd overhoudt! Kenners denken nu vast; “Maar Richard, automation is toch al langer beschikbaar voor Jira in de vorm van Automation for Jira op de server en cloud app versie?” Klopt! Automation for Jira behoorde eerst tot het bedrijf Code Barrel, dat het ontwikkelde onder de naam Automation for Jira Cloud app en in 2019 is overgenomen door Atlassian. Sindsdien heeft Atlassian hard gewerkt om de functionaliteiten te integreren in de native Jira Cloud versie waardoor nu iedere Jira Cloud gebruiker toegang tot automation heeft zonder apps te installeren. In deze blog zal ik jullie een kijkje bieden in Jira Automation voor Cloud!
Jira Cloud
Sinds maart 2020 is no-code automation beschikbaar in Jira Cloud voor iedere Cloud gebruiker. Voor verschillende use-cases zijn er mogelijkheden om automatisering toe te passen, enkele voorbeelden:
- Creëer automatisch een sub-task wanneer een task wordt aangemaakt.
- Wanneer je laatste sub-task gesloten wordt, sluit dan ook meteen de parent task.
- Wanneer een bug is opgelost in een gereleasde versie, stuur een bericht naar geselecteerde personen.
- Wanneer een klant een issue aanmaakt in Jira Service Desk, clone het issue in Jira Software en assign het aan een developer.
Binnen de automation module zijn er twee verschillende groepen: single-project en global & multi-project automation. Single-project automation rules zijn automatiseringsregels die betrekking hebben op één project; terwijl global & multi-project rules (zoals de naam het al zegt) van toepassing zijn op Jira in zijn geheel of op meerdere projecten specifiek.
Maakt dit iets uit als ik automatiseringsregels ga aanmaken? Ja! Jira kijkt naar welke abonnement je gebruikt. Zo heb je voor Jira Cloud Standaard de mogelijkheid om 500 rules per maand uit te voeren, voor Jira Cloud Premium geldt een limiet van 1000 rules per betalende gebruiker per maand. Om het ingewikkelder te maken, tellen single-project automation rules niet mee voor je limiet en zijn cross-product Issue creatie rules ook uitgezonderd voor de limiet (Bijvoorbeeld een bij het aanmaken van taak A in project X, wordt ook een taak B in project Y aangemaakt).
Een “Execution” is iedere keer dat een rule uitgevoerd wordt. Als je bijvoorbeeld een rule hebt die uitgevoerd wordt over alle projecten van Jira, waarbij iedere keer een comment wordt geplaatst bij het wijzigen van de status, dan kan het al aardig oplopen.
Rules

Rules zijn gebaseerd op drie elementen: Triggers, Conditions en Actions.
Een trigger is een element die de start van een rule initieert. Bijvoorbeeld een ticket die aangemaakt wordt, of het plaatsen van een comment. Conditions zorgen ervoor dat je rule beperkt wordt tot bepaalde voorwaarden. Zo kan je bepalen dat alleen comments waarin een naam van een specifiek persoon voorkomt de rule activeert. Als laatste komen we op actions. Actions bepalen wat de rule uitvoert, zoals het aanmaken of bewerken van een ticket of een notificatie sturen.
Deze elementen gecombineerd zorgen ervoor dat je rule uitgevoerd wordt. Het Automation rules overzicht in Jira biedt een samenvatting van de rules waarbij je bijvoorbeeld kan aangeven of je notificatie wilt krijgen als een rule niet uitgevoerd kan worden, of andere rules deze rule kunnen activeren en of het voor een enkel project geldt, meerdere, of een globale rule is. In het bijbehorende audit log kan je de status bijhouden van iedere keer dat de rule is uitgevoerd.
Mocht je je rules verder willen aanpassen, dan is dat mogelijk met zogenoemde smart values. Met smart values kan je bijvoorbeeld een comment door een rule laten toevoegen met specifieke data, zoals {{issue.summary}} de samenvatting van een ticket laat zien en {{reporter.displayName}} de naam van de reporter. Zo kan je je eigen combinaties maken.

Automatiseer slim!
Automation in Jira biedt gebruikers (met admin rechten) mogelijkheden om repeterende taken en vele handmatige handelingen te automatiseren in enkele klikken om zodoende tijd en energie vrij te maken voor andere zaken. Kijk goed naar elementen die repeterend en generiek van aard zijn bij het gebruik van Jira en probeer dat te automatiseren waar mogelijk.
Wil je advies over automation in Jira, of in Jira in het algemeen? Neem dan contact met ons op!

Interesse? We praten graag met je verder!
Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.
De waarde van testautomatisering
Kennis
De waarde van testautomatisering
Efficiëntie en kwaliteit
Testautomatisering is niet meer weg te denken in hedendaagse software-ontwikkeling. Om het ontwikkeltempo bij te kunnen houden moeten testen geautomatiseerd worden uitgevoerd en dan nog liefst zo vroeg mogelijk. Dit is een concrete invulling van de “shift to the left” beweging waarbij testen zo vroeg mogelijk in het proces worden toegepast. Waar voorheen een geautomatiseerde testset een aantal malen per release werd gedraaid, wordt in een DevOps situatie meerdere malen per dag een testset geautomatiseerd uitgevoerd.
De vraag is dan of en hoe je de waarde van geautomatiseerd testen kunt aantonen. De klassieke vuistregel dat een test 5-7 keer uitvoeren de moeite waard is, is in onze ogen achterhaald. In een DevOps context wordt een geautomatiseerde test misschien wel 5 keer per dag uitgevoerd.
Het aantonen van de waarde van investeringen kun je doen in een business case en dat kan ook een goede manier zijn om anderen te overtuigen van het nut van testautomatisering. Een business case zet kosten en baten tegen elkaar af. Kosten en baten kunnen zowel kwalitatief als kwantitatief worden beschreven.
In deze blog gaan we verder in op mogelijke kwalitatieve baten van een toekomstvaste vorm van testautomatisering. Het alleen kwantitatief te benaderen geeft een scheef beeld. Je speelt financieel wel break even maar het is onduidelijk of het dan voldoende waarde oplevert. Ondersteunt de testautomatisering de gedefinieerde doelstellingen wel echt?
Wanneer is testautomatisering waardevol?
Waar moet je aan denken om vast te stellen of testautomatisering de gedefinieerde doelstellingen ondersteunt? Dat hangt uiteraard af van wat de organisatie wil bereiken. In het algemeen kun je de volgende denklijnen volgen om de detailvragen te formuleren om voor je organisatie de (business) waarde te kunnen vaststellen.
Inzicht en controle in ketens en risico’s
Organisaties werken in toenemende mate samen in ketens en zijn afhankelijk van de input of output vanuit deze ketens. Een verstoring in de keten kan tot verliezen lijden. Door na (major) updates standaard een geautomatiseerde ketentest uit te voeren blijf je aantonen dat de keten functioneert en daardoor de bedrijfsdoelstellingen ondersteunt.
Een ander perspectief is het redeneren vanuit bedrijfsrisico’s. Welke risico’s hebben een grote impact? Waar ligt het management wakker van? Antwoorden op dit soort vragen helpen bij het definiëren van een standaard geautomatiseerde regressietest om aan te tonen dat deze risico’s voldoende aandacht krijgen en afgedekt worden. Door het berekenen van de impact van de risico’s op de organisatie, indien deze optreden, toon je de toegevoegde waarde aan van testautomatisering.
Waar is instabiliteit te verwachten in het proces en welke impact heeft dat op de organisatie of het proces in kwantitatieve of kwalitatieve zin? Is testautomatisering een middel om de stabiliteit te bevorderen? Door het berekenen van de faalschade kun je de waarde vaststellen als je de faalschade kunt voorkomen door frequent testautomatisering uit te voeren.
Meten van waarde via productie-incidenten
De waarde van testautomatisering kan ook vastgesteld worden door het analyseren van productie-incidenten. Dat is wel iets dat je over een langere termijn moet beoordelen. Door het consequent bijhouden van het aantal incidenten kun je de toegevoegde waarde van testautomatisering vaststellen als deze breed is uitgerold in de organisatie. Uiteraard dient het aantal productie-incidenten te dalen.
Efficiëntie, kennisborging en snellere feedback
Testautomatisering kan de testefficiency verhogen. Door de uitrol van testautomatisering en het daardoor overnemen van het routinematige werk kunnen testers zich concentreren op de complexe cases. Dit leidt ook tot minder productie-incidenten, kortere doorlooptijden van de testuitvoer en efficiëntere inzet van de resources. Door het gestructureerd vastleggen van functionaliteiten in geautomatiseerde testscripts wordt de aanwezige kennis ook beter geborgd in de organisatie.
Vanuit het software-ontwikkelproces kun je ook kijken of de juiste testen worden uitgevoerd met de juiste scope, diepgang en reikwijdte. Welke rol kan testautomatisering daarin spelen en hoe kan testautomatisering helpen de waarde van testen te vergroten? De ontwikkelteams krijgen sneller feedback op de geleverde software waardoor issues sneller opgelost kunnen worden.
Een stevigere ontwikkelketen door automatisering
De toepassing van testautomatisering zorgt ervoor dat er mensen beschikbaar komen die kunnen helpen om de voortbrengingsketen verder en efficiënter in te richten. Denk bijvoorbeeld aan het inrichten van een build pipeline en het optimaliseren daarvan. Betrokkenen krijgen dan een grotere uitdaging, er ontstaan meer doorgroeimogelijkheden en beschikbare expertise kan beter worden benut.
Hoe meer vormen van testautomatisering worden toegepast hoe groter de waarde zal zijn. Pas je testautomatisering al toe in de ontwerpfase dan zal dat zijn effect hebben in de verdere schakels in de ontwikkelketen. Hoe eerder een fout is gevonden hoe goedkoper het is om deze te herstellen en de mogelijk negatieve effecten te voorkomen.
Testautomatisering heeft ook een toegevoegde waarde om het kwaliteitsverschil tussen teams in bijvoorbeeld ketens op te vangen. Hoe goed ook het streven om alleen met kwalitatief hoogwaardige teams te werken blijft er altijd een verschil kwaliteit tussen de teams. Niet alleen de kwaliteit maar ook de zorgvuldigheid en betrokkenheid zijn zaken die meespelen. Door continu een geautomatiseerde test uit te voeren krijg je op ieder willekeurig moment inzicht in de kwaliteit van een systeem of een keten en kun je in een vroegtijdig stadium ingrijpen om kwaliteitsissues op te lossen.
De kracht van vroegtijdig en continu testen
Veelal zien we de focus op nieuwbouw van systemen liggen. Correctief onderhoud is noodzakelijk en wordt uiteraard uitgevoerd. Veelal wordt dit onder grote druk gedaan en moeten er keuzes worden gemaakt in wat wel testen en wat niet. Door consequent naast de handmatige testen de beschikbare geautomatiseerde test uit te voeren kan vrij snel inzicht worden verkregen in mogelijke regressie en kunnen productieproblemen worden voorkomen. Daardoor bewijst een geautomatiseerde regressietest zijn waarde.
De beweging om testen steeds eerder in het ontwikkelproces op te pakken en uit te voeren heet de “shift to the left” beweging. Dat betekent dat we bijvoorbeeld al moeten gaan testen voordat er een volwaardige gebruikersinterface beschikbaar is. We testen dan al op een meer technisch niveau. Handmatig is dat bijna niet meer mogelijk en moet wel geautomatiseerd worden uitgevoerd. Van daaruit gezien biedt testautomatisering zijn toegevoegde waarde omdat in een vroegtijdig stadium inzicht gegeven wordt in bijvoorbeeld de kwaliteit van een API.
Doordat we steeds sneller releasen en producten bijna onmiddellijk beschikbaar komen voor het publiek en de klanten kunnen we het ons niet veroorloven om slechte kwaliteit te leveren. Dit ligt dan direct bij het grote publiek en kan tot imagoschade leiden met verlies aan marktaandeel als mogelijk gevolg. Door een geautomatiseerde regressietest continu uit te voeren en deze als harde quality gates te gebruiken in een CI/CD pipeline richt je een extra vangnet in om productieproblemen te voorkomen.
Waarde voor kritieke processen en continuïteit
Een laatste invalshoek kan zijn om te kijken naar welke processen binnen een organisatie altijd moeten blijven functioneren, ongeacht wat er gebeurt. Wat is de schade als deze processen stagneren? Door het inzetten van testautomatisering kun je inzicht krijgen of deze processen ongestoord blijven draaien.
Let’s talk
Klaar om te sparren?
Met een unieke aanpak op basis van co-creatie en onze expertise in Agile, Business Analyse en IT-Testen helpen we organisaties door heel Nederland écht vooruit. Heb jij een uitdaging? We denken graag met je mee!
Lees ook dit artikel eens
Over identify
Al ruim vijftien jaar biedt Identify een sterke combinatie van diensten voor het optimaliseren van producten en processen binnen organisaties. Dat doen we niet vóór, maar samen mét onze opdrachtgevers.
Onze business analisten, agile consultants en test consultants zijn meer dan vakexperts. Dankzij expertise-overschrijdende samenwerking en gedeeld eigenaarschap pakken we complexe vraagstukken integraal aan. Zo realiseren we duurzame verbeteringen die organisaties écht vooruithelpen.
Contact
- Koningin Wilhelminalaan 1
- 3818 HN Amersfoort
- Nederland
Over ons
Direct naar
Ik wil up to date blijven
Blijf op de hoogte met onze gratis nieuwsbrief.
Xray: Maak je testcases in Jira inzichtelijk
Xray: Maak je testcases in Jira inzichtelijk
Atlassian Jira biedt vele mogelijkheden om je werk agile te organiseren. Voor product owners, scrum masters en developers is Jira hier uitermate geschikt voor. Voor testers biedt Jira in de basis helaas niet veel ondersteuning. Maar met behulp van de Atlassian Jira app Xray kun je je testcases in Jira wel zichtbaar maken.
Xray Test Management voor Jira
Xray is een addon voor Jira die alle testcases als Jira issues verwerkt. Hierdoor ben je als tester meteen zichtbaar in het gehele Jira proces van je team.
Xray ondersteunt handmatige en geautomatiseerde testcase in Jira waarbij stappen, data, precondities, verwacht resultaat en meer, toegevoegd kunnen worden door middel van handmatige invoer of via het importeren van bestaande testcases uit csv, json of andere bestanden. Tevens biedt Xray ondersteuning voor BDD met gebruik van Gherkin scenario’s. Hierdoor wordt de drempel tussen business en IT verlaagd, doorlooptijd korter en de herkenbaarheid bij de business groter. Geautomatiseerde testcases kunnen ook vanuit andere frameworks geïmporteerd worden zodat je testcases en resultaten van bijvoorbeeld Selenium, TestNG, JUnit, Robot Framework etc. ook zichtbaar worden. In combinatie met continue integratie, met bijvoorbeeld Bamboo of Jenkins, biedt dit een mooie meerwaarde voor het gebruik in Jira.
Om overzicht te behouden van de status van alle testcases biedt Xray verschillende rapporten en handige dashboards. Testcases kunnen georganiseerd worden in test plans en/of test executions waarbij snel en makkelijk koppelingen gemaakt kunnen worden met stories, tasks of bugs. Zo houd je grip en creëer je duidelijkheid met betrekking tot de status van de testuitvoering en mogelijke bugs.
Identify & Xray
Omdat Xray als addon op Jira de mogelijkheid biedt om testcases bij elkaar te brengen, te koppelen aan stories en om continu inzicht te geven in de status van de testuitvoering, is Xray voor Jira een perfecte aanvulling voor teams die kwaliteit serieus nemen.
Wil je meer weten over Xray, of wil je weten wat Identify voor jou kan betekenen met Xray voor Jira? Neem dan contact met ons op!

Interesse? We praten graag met je verder!
Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.
De Moderne Tester
Kennis
De Moderne Tester
De kameleon in een wereld vol verandering: vakmanschap en flexibiliteit
Al langere tijd praten we, als test community, over de wijzigende rol van de tester. Van klassiek waterval naar het schaap met de 5 poten die de modernste technieken beheerst, technisch onderlegt is, communicatief vaardig is en op meerdere niveaus kan schakelen.
De gereedschapskist van de tester moet steeds verder gevuld zijn om aan alle eisen te kunnen blijven voldoen. Je ziet ook wel de termen T-shape of M-shape gebruikt worden om aan te geven dat een tester van veel onderwerpen kennis heeft waarvan enkele diepgaand. Het valt hierbij op dat het vooral over kennis gaat.
Wij praten liever over de moderne tester, anno 2020. In onze ogen bevat de moderne tester een aantal kenmerken en wel:
Trots
De Moderne Tester staat voor zijn/haar vakmanschap. Is in het bezit van een gereedschapskist waarmee hij elke testklus kan klaren. Dit loopt van het kennen en kunnen toepassen op het juiste moment van alle soorten testtypen, testtechnieken tot het kunnen schrijven van use cases en het kunnen plannen van alle test activiteiten. De moderne tester is trots op de waarde die hij/zij toevoegt.
Onbevreesd
De Moderne Tester is een kameleon. Is in staat om vakgebieden aan elkaar te koppelen, te schakelen tussen niveaus en is organisatie sensitief. Weet als geen ander hoe het spel werkt van beïnvloeden, overtuigen en omgaan met weerstand. Is in staat mensen te verbinden en samen te werken waardoor het team in staat is topkwaliteit te leveren. Want samen ben je immers sterk. De moderne tester neemt zijn/haar plaats volledig in binnen een scrumteam en levert 24/7 toegevoegde waarde. Is het kwaliteitsgeweten van het team en weet de kwaliteit te sturen. Ongeacht het niveau en de weerstand blijft de tester de kwaliteitsboodschap uitdragen.
Kundig
De Moderne Tester bezit een stevige set aan basis skills voor testautomatisering. Beheerst één type tool goed en weet dit te vertalen naar andere gelijksoortige tools. Kent de concepten hoe testautomatisering goed en toekomst vast kan worden opgezet. Beter een tool goed in de vingers dan van veel tools iets weten. Weet wanneer en hoe deze tooling in te zetten. Hoeft niet perse het op te kunnen bouwen vanaf scratch maar moet zeker in staat zijn om voort te kunnen borduren op de basis die hij samen met een developer op heeft gezet.
Praten we hier over een schaap met 5 poten? Wij denken van niet. Een ding is zeker, de moderne tester is net een kameleon. Afhankelijk van de omgeving past de moderne tester zich aan, in ons geval in techniek, proces en gedrag. En zorgt ervoor altijd toegevoegde waarde te leveren. Op deze wijze is de moderne tester in staat om altijd de juiste zaken in te brengen. Op het juiste moment afgestemd op de omstandigheden.
Dit is ons beeld van de moderne tester. Herken je jezelf hierin en lijkt Identify je een leuke werkgever? Wij zijn doorlopend op zoek naar ervaren testprofessionals. Ontdek onze vacatures op werken-bij Identify.
Over identify
Al ruim vijftien jaar biedt Identify een sterke combinatie van diensten voor het optimaliseren van producten en processen binnen organisaties. Dat doen we niet vóór, maar samen mét onze opdrachtgevers.
Onze business analisten, agile consultants en test consultants zijn meer dan vakexperts. Dankzij expertise-overschrijdende samenwerking en gedeeld eigenaarschap pakken we complexe vraagstukken integraal aan. Zo realiseren we duurzame verbeteringen die organisaties écht vooruithelpen.
Over de auteur
Stefan Brezina
Als enthousiaste test engineer heb ik een passie voor nieuwe testtechnologieën en ben ik voortdurend op zoek naar ontwikkelingen en vaardigheden om me verder te verdiepen.
Lees ook dit artikel eens
Aandachtspunten bij testen SOA systeem
Aandachtspunten bij testen SOA systeem
Op veel plaatsen wordt gesproken en geschreven over het gebruik van service oriented architecture (SOA). Helaas hebben wij gemerkt dat specifieke aandachtspunten voor het testen van SOA in de meeste artikelen onderbelicht blijft. In dit artikel willen we een overzicht geven van onze inzichten in belangrijke aspecten die tijdens het testtraject aandacht moeten krijgen. Want op SOA gebaseerde systemen vergen wel degelijk een andere testaanpak.
Koppelingen
Vanwege de modulaire opzet van een SOA is het testen van de koppelingen extreem belangrijk. Er zijn twee soorten koppelingen, namelijk de koppelingen die binnen hetzelfde project of programma worden gerealiseerd en de koppelingen die door verschillende partijen buiten het project of programma worden gerealiseerd. Het is essentieel dat de koppelingen zowel technisch als functioneel met een hoge testdekking worden getest. Problemen ontstaan vaak in de afstemming van de datacontracten. In de communicatie tussen verschillende partijen wordt dit niet goed afgestemd waardoor koppelingen niet functioneren. Als de koppelingen niet correct werken, kunnen de losse componenten nog zo goed zijn maar werkt het volledige systeem zeker niet. Extra aandacht verdienen daarbij de effecten van wijzigingen, eigendomsverhoudingen, storingsgevoeligheid, netwerkprotocollen en de diverse communicatielagen, omdat deze allemaal invloed hebben op de koppelingen met mogelijke verstoringen van de business tot gevolg.In de praktijk blijkt dat het testen van de koppelingen binnen hetzelfde project vrijwel altijd te laat de juiste aandacht krijgt. Het is essentieel dat de samenhang tussen de losse modules vanuit zowel ontwikkel- als testperspectief altijd binnen scope blijft en dat er over de koppelingen altijd afstemming blijft tussen aanleverende en afnemende systemen. Het tijdig uitvoeren van reviews op de betreffende ontwerp- en bouwproducten (ook door testers) is dan ook essentieel. Krijg je te maken met partijen buiten het eigen project of programma, start dan vroegtijdig een structurele afstemming waarbij zaken als planning, datacontracten, security en data issues zeker behandeld moeten worden. Er dient rekening te worden gehouden dat lang niet altijd een benodigd systeem beschikbaar is. In een SOA-omgeving is het gebruik en daardoor ook de aanwezigheid van stubs van enorm belang. Zonder de aanwezigheid van dergelijke stubs valt er haast niet te testen.Een laatste punt rond koppelingen dat we extra willen benadrukken is de aansluiting van een SOA-systeem op systemen die geen SOA-gebaseerde architectuur hebben. Houdt er bij de testen rekening mee dat ook de systeemtechnische en procedurele aspecten ten aanzien van de overgang van SOA naar bijvoorbeeld batchgestuurde systemen vroegtijdig meegenomen worden. Een voorbeeld hiervan is het omvormen van berichten van een SOA-systeem naar een systeem met een batchgebaseerde architectuur. Hoe dit op een goede manier te doen is, is nog relatief onontgonnen gebied.
Non functional requirements
Non functional requirements spelen al vroeg in het traject (ontwikkel- en systeemtesten) een belangrijke rol. In artikelen worden non functional requirements zoals beveiligbaarheid, performance, continuïteit, herbruikbaarheid, schaalbaarheid, onderhoudbaarheid en testbaarheid expliciet aangehaald als requirements die extra aandacht behoeven. Deze requirements moeten al tijdens de eerste testen aan bod komen. Het is daarbij niet zonder meer zo dat het vroegtijdig testen inhoudt dat ze niet in latere testsoorten meegenomen moeten worden. Sterker nog, er zijn meestal veel non functional requirements gespecificeerd die over meerdere componenten heen lopen. Het is dus zaak deze requirements voor zover mogelijk al op componentniveau mee te nemen en vervolgens ook bij de integratie-, keten- of acceptatietesten mee te nemen.Het gaat te ver om hier alle aspecten ten aanzien van non functional requirements te belichten. Als voorbeeld zoomen we in op beveiligbaarheid. Door de opzet van SOA middels services en bussen is de data in feite door het hele systeem beschikbaar/bereikbaar. Met name op serviceniveau moet al gekeken worden waar en hoe de data voldoet aan de gestelde beveiligingseisen. Denk daarbij bijvoorbeeld aan de beveiliging van de abonnementsstructuur: hoe wordt gewaarborgd dat beveiligde gegevens ook daadwerkelijk alleen gebruikt worden waar het is toegestaan. Dit vraagt ook vanuit test extra aandacht en mogelijk een hogere dekkingsgraad dan meestal wordt gegeven aan beveiliging van data.In het verlengde van dit punt moet ook voldoende zijn afgedekt, dat data die door het systeem (verkeerd) gemanipuleerd is in zijn oorspronkelijke vorm te achterhalen is zodat herstel mogelijk is. Daarom moeten ook back-up, recovery en rollback in een zo vroeg mogelijk stadium op serviceniveau getest worden. Uiteraard moet de data-integriteit over de losse services heen na een restore of rollback ook getest worden.Steeds vaker zie je dedicated security frameworks (met security services) verschijnen. Interessant is dat dit soort non-functionals op de markt worden gebracht als een standaard framework en services en dus als geheel al weer een black box zijn. Uiteraard kan een standaard framework het testen op het gebied van beveiligbaarheid vereenvoudigen, omdat de functionaliteit in de black box reeds functioneel is aangetoond. Wel betekent het toevoegen van het framework weer een extra integratie met de bijbehorende koppelingen, die extra aandacht verdienen in het testtraject.
Business processen
Een basisprincipe van een SOA-systeem is dat je de businessprocessen flexibel kunt inrichten op basis van de services. Derhalve is er een directe samenhang tussen services en business processen. Het is daarom noodzakelijk om in een vroeg stadium de betreffende services te testen in combinatie met de business processen die daar bij horen. Gevolg hiervan is dat testers die in een traditionele systeemtest zich vooral moesten bekommeren om de in het systeem(deel) gerealiseerde functionaliteit, nu ook business kennis moeten inbrengen. Dit vergt meer afstemming met medewerkers uit de business en daarmee een andere vorm van communicatie dan testers in een systeemtest gewend zijn. Het is goed hierop alert te zijn en bij het selecteren van testers dus nog meer aandacht aan communicatieve vaardigheden en kennis van businessprocessen te besteden.
Testdekking
De testdekking van het volledige systeem is zeer afhankelijk van de gerealiseerde testdekking in de samenstellende services. In tegenstelling tot de meer traditionele architectuurprincipes kun je de testdekking niet bij elkaar op tellen, waarbij de laagste dekking ook ongeveer de dekking van het volledige systeem bepaald. Immers, bij traditionele architectuurprincipes worden gegevens lineair door de opeenvolgende componenten gebruikt. Daardoor wordt de kwaliteit van het geheel bepaald door de zwakste schakel, zeker als de testdekking op de andere componenten beduidend hoger is.In een SOA-systeem moeten de dekkingen met elkaar worden vermenigvuldigd, omdat iedere service in principe geen directe afhankelijkheid heeft met de andere services. Dus bij een systeem met drie samenstellende services die elk met een dekking van 80 procent worden getest, is de dekking van het volledige systeem ongeveer 50 procent (80 x 80 x 80 procent). Met andere woorden, de testdekking van de systeemtest voor iedere afzonderlijke service zal waarschijnlijk dicht tegen de 100 procent aan moeten zitten om voor het volledige systeem nog een aanvaardbare dekking te kunnen garanderen. Om de testdekking voor de business functionaliteit in een SOA-systeem met vijf afzonderlijk services op circa 90 procent te krijgen, zal de testdekking voor de afzonderlijke services al 98 procent moeten zijn.
SOAP opera testen
Vanwege het feit dat het lastig is alle mogelijke situaties, combinaties en uitzonderingen in het volledige systeem te testen, is het verstandig daarvoor een specifieke aanpak te bedenken. Een goede aanpak is wat ons betreft het testen van gevallen die lijken op een soap opera. Bedenk daarbij een paar real-life scenario’s die nog wel door het systeem gehanteerd moeten kunnen worden, maar eigenlijk vooral in een soap opera te zien zijn.
Gebruik van reële data
Bij nieuwe systemen die voor aanvang worden gevuld met geconverteerde data is het zeer belangrijk dat de werking van het systeem ook wordt aangetoond bij het vullen en verwerken van de geconverteerde data. Dit is in ieder systeem belangrijk, maar vanwege de complexiteit in de meeste SOA-systemen is het onze ervaring dat het testen met geconverteerde data in een SOA-systeem niet vroeg genoeg kan starten. Wij raden zeker aan om bij de testen zoveel mogelijk met geconverteerde data te gebruiken of de testdata te fabriceren vanuit geconverteerde data. Daarbij moet ook aandacht worden gegeven aan het al dan niet in de juiste volgorde aanbieden van gegevens en (net als bij alle conversietrajecten) het massaal aanbieden van geconverteerde data leidt tot de correcte berekeningen en databasevulling. Het in een verkeerde volgorde aanbieden van data zal leiden tot het niet correct verwerken van de data met als gevolg dat er extra handmatig werk moet worden verricht.
Regressietesten
Het opzetten en uitvoeren van uitgebreide regressietesten is een absolute must; zodra een service aantoonbaar werkt moeten aanpassingen aan de service zelf en aan andere services die gebruik maken van de betreffende service ook voorzien worden van een regressietest. Daarvoor is het toepassen van geautomatiseerd testen een pre.Onze ervaring leert, dat het al bij het uitvoeren van de testen goed is na te denken over de regressietesten. Omdat, zoals hierboven gesteld, de testdekking van de afzonderlijke delen zo hoog mogelijk moet zijn, wordt veelal gekozen voor het gebruik van testtechnieken die een hoge dekkingsgraad garanderen. Dit levert voor complexe systemen zeer veel testgevallen op. Het zomaar toevoegen van al deze testgevallen aan de regressietestset maakt deze testset nauwelijks onderhoudbaar en zeker niet snel uitvoerbaar. Daarom kan het een idee zijn om bij het specificeren van testgevallen voor de normale testen ook al te kijken welke testgevallen aan de regressieset toegevoegd zullen worden.Bij het wijzigen van een businessproces moeten ook regressietesten worden uitgevoerd, vanwege het directe verband tussen de business processen en de services (zie paragraaf Businessprocessen).
Losse punten
In dit artikel hebben we niet geprobeerd volledig te zijn. Naast bovengenoemde punten willen we toch nog kort een aantal ander punten noemen:- Vanwege de SOA-principes kan het aantal mogelijke combinaties in een samenstel van meerdere services enorm groot worden. Zonder aanvullende maatregelen kan hierdoor de testinspanning buiten proportioneel groot worden. Door de toepassing van risk based testing kunnen daarbij de juiste keuzes worden gemaakt.- Hoe breder (dus in veel verschillende businessprocessen) een service worden gebruikt, hoe uitputtender deze service getest moet worden. Daarbij zal ook rekening gehouden moeten worden met verwacht gebruik van services in de toekomst. Als een service bij de initiële opzet slechts in één businessproces gebruikt wordt, maar het de verwachting is dat in de toekomst meer processen de service zullen gebruiken, is het verstandig al bij het ontwikkelen van de service met een hoge dekking te testen.- Het kan voorkomen dat er meerdere versies van services nodig zijn in productie, omdat de diverse afnemende of aanleverende services niet allemaal gelijktijdig de benodigde aanpassingen aan de eigen service in productie kunnen nemen. Ook hier moet in het testtraject aandacht aan worden geschonken.- De opgebouwde testware moet flexibel kunnen omgaan met wijzigingen in een webservice. Deze zijn vaak nogal onderhevig aan ‘changes’. Dit kunnen wijzigingen in berichten betekenen. Door middel van een spreekwoordelijke ‘druk op de knop’ zou de testware geupdate moeten kunnen worden naar de nieuwe situatie.
Conclusie
Onze conclusie is dat er nog veel te ontdekken is over het testen van SOA-systemen. Naast de in dit artikel genoemde punten zijn er nog veel meer punten die in het testtraject aandacht verdienen. Het is belangrijk dat alle testers in het traject zich bewust zijn van de aanpak en specifieke kenmerken van het ontwikkelen van een SOA-systeem en de mogelijke gevolgen die dit heeft voor het testtraject. We dagen onze collega’s daarom uit om ervaringen te blijven verzamelen, deze zoveel mogelijk te delen en gezamenlijk het testen van SOA-systemen snel naar een hoog niveau te brengen met de specifieke aandachtspunten die zo’n systeem vereist.
Dit artikel is geschreven samen met Camiel Wieme en Freddy de Weerd van Capgemini.

Interesse? We praten graag met je verder!
Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.
Gevoeligheden
Gevoeligheden
Veranderen is een uitdaging waarbij vele aspecten een rol spelen. Het is af en toe dansen op het slappe koord. Je moet mee bewegen om niet te vallen maar wel koers houden om voortgang te boeken. Kortom, laveren door de omstandigheden heen.
Een punt waar je zeker mee te maken krijgt zijn de gevoeligheden die leven. Vaak volstrekt onbekend voor je maar zeker voelbaar in sessies, workshops etc.
Gevoeligheden tussen mensen. Vaak door zaken uit het verleden veroorzaakt. Gevoelige processen. Oh als je daar aan komt dan…… Ooit een keer door iemand bedacht, waarschijnlijk met veel (informele) invloed in de organisatie. Wordt dan als een heilig huisje beschouwd. Of onderwerpen waar bijvoorbeeld een maatschappelijk debat moeilijk is over te voeren. Denk aan de hypotheek aftrek. Bij iedere kabinetsformatie een onderwerp van discussie.
Betekent dit dat dergelijke situaties niet bespreekbaar meer zijn. Dat zou een lock in betekenen met als consequentie dat verandering (bijna) onmogelijk wordt gemaakt.
Ook hier doemt de vraag op wat kun je er aan doen? Hangt er vanaf hoe groot je cirkel van invloed is. Direct of indirect.
Gevoeligheden tussen mensen kun je bespreekbaar maken en uit de wereld helpen. Werkt het helemaal niet dan kun je de bezetting van je team wijzigen. Je moet de koers niet laten beïnvloeden door gevoeligheden tussen mensen. Dan ben je niet meer in staat de verandering door te voeren. Uiteraard wel goed luisteren en de signalen serieus nemen.
Krijg je met heilige huisjes te maken dan komt er iets meer bij kijken. Het is zaak dit te herkennen en steun te zoeken bij sponsors, de opdrachtgever en niet op de laatste plaats de persoon in kwestie zelf. Maak objectief inzichtelijk wat het punt is en waarom het huisje verbouwd moet worden. Zet het in het grote geheel en bovenal laat de persoon in kwestie in zijn waarde. Toon respect voor wat er neergezet is maar kies bijvoorbeeld de insteek dat de basis verbreed moet worden om te kunnen anticiperen op de toekomst.

Interesse? We praten graag met je verder!
Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.
Kwaliteitszorg in ICT: wie pakt de regie?
Kwaliteitszorg in ICT: wie pakt de regie?
Testmanager: welke testprofessional was dit niet een aantal jaar geleden? Zelfs uitvoerend testers werden testmanager genoemd in die dagen. Logisch, want de functie testmanager was hot. Maar wat is er de afgelopen jaren gebeurd? De vraag naar testmanagers is ingekakt. Sporadisch zie ik nog wel eens een aanvraag of een vacature voor een testmanager langskomen, maar over het algemeen lijkt de functie uitgestorven.
Zit de testmanager zonder werk?
De meeste testmanagers van toen worden nu Agile tester genoemd. Want dat is nu hot. Dat is niet erg, want echt managen deden de meesten toch al niet. Óf ze hebben zich gespecialiseerd, op gebieden als performance of security, óf zijn projectmanager geworden. Er valt ook niet meer heel veel aan de testuitvoering te managen nu dat is belegd in multifunctionele scrumteams. Een mooie ontwikkeling overigens. Toch is naar mijn mening de rol van de testmanager nog niet uitgespeeld. In deze blog leg ik uit waarom.
Vaak was ik als testmanager de spin in het web. De centrale figuur die wist wat er qua kwaliteit van het team werd verwacht, die wist hoe we ervoor stonden, die wist waar de issues zaten en die het overzicht behield. Die positie kreeg ik zelden bij de start van een project maar ontstond gedurende de tijd. Niet omdat ik nou zozeer aan het ¨testmanagen¨ was, maar omdat ik, vanuit mijn verantwoordelijkheid om de productkwaliteit te waarborgen, continue op zoek was naar een antwoord op de vraag ¨Wat is die kwaliteit?¨ en ¨Wanneer wordt daar aan voldaan? Wanneer is het goed?¨. Het begrip kwaliteit laat zich namelijk niet zo gemakkelijk definiëren. Iedereen heeft daar zo zijn eigen interpretatie van en die kan ook nog eens wijzigen naarmate de tijd vordert of de omstandigheden wijzigen. Kortom: zoveel belanghebbenden, zoveel meningen over kwaliteit. Dus daar waar kwaliteit geleverd moet worden, is het van belang om daarover consensus te bereiken.
Dat spel, van consensus bereiken over kwaliteit, is een ingewikkelde. Zijn de belanghebbenden in staat om goed aan te geven wat voor hen kwaliteit is? En als er keuzes moeten worden gemaakt, wiens idee van kwaliteit is dan het meest belangrijk? En hoe realiseerbaar zijn de kwaliteitseisen van de belanghebbenden in termen van tijd, middelen en stand van de techniek? En, nog zoiets, hoe veranderen de ideeën en eisen over kwaliteit door de tijd heen? Wat vandaag belangrijk is, hoeft dat morgen niet meer te zijn.
Dit vraagt om samenwerking. Samenwerking in key. Samenwerking tussen de opdrachtgever en de opdrachtnemer, tussen de leverancier en de klant, tussen de business analist en de ontwikkelaar. Hoe vanzelfsprekend samenwerking hier ook is, toch gaat dit vaak niet vanzelf. Té vaak heb ik opdrachtgevers horen zeggen dat ze álles even belangrijk vinden. En dat begrijp ik dan ook wel weer, want die hebben de ervaring dat wat niet belangrijk is ook niet geleverd gaat worden. En ze kregen vaak nog minder ook….. en later…en duurder….
In dit spel van samenwerking, om grip te krijgen en te houden op kwaliteit, kun je als voormalig testmanager het verschil maken. Dit was al zo in traditionele omgevingen maar geldt nu nog steeds. In de huidige gangbare agile ontwikkelingen, waarbij de ontwikkeling is verdeeld over meerdere scrumteams naast elkaar of over meerdere sprints, brengen nog een complexiteit met zich mee: hoe hou je grip op de overall kwaliteit? De kwaliteit van het eindproduct? Als in elk team of in elke sprint maar een heel klein beetje van de vereiste kwaliteit wordt afgeweken, kan dat een groot effect hebben op de kwaliteit van het eindproduct. Áls we al een goed beeld zouden hebben van de vereiste kwaliteit.
Het inventariseren van al die verschillende belangen, het afwegen hiervan tegen mogelijkheden in tijd en geld, spiegelen aan verwachtingen en bewaken van de realisatie van de gemaakte kwaliteitsafspraken vraagt regie. En voor deze regie zijn competenties nodig die heel toevallig overeenkomen met de competenties die voorheen maakten dat iemand testmanager was.
Tip voor de testmanagers van toen: Pak de regie over de kwaliteitszorg in ICT en houd niet teveel vast aan het label testmanager. Focus op je competenties en er gaat een wereld voor je open. Toch behoefte aan een functietitel? Probeer eens Kwaliteitsregisseur. Dat past nu veel beter.
Zie jij nog toegevoegde waarde voor de testmanager van toen? En zo ja welke competenties denk je dat daar voor nodig zijn? Deel jouw visie in een reactie.
Dit blog is de 2e in de serie over Samenwerking, uitgebracht onder regie van het schrijverscollectief van de boeken ¨Kracht zonder macht¨ en ¨Regie van kwaliteit¨ . Bart Watertor is gespecialiseerd in Kwaliteitsregie en is mede-eigenaar van Identify, ¨The quality driver¨.

Interesse? We praten graag met je verder!
Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.
Estimation of test automation in an Agile environment
Kennis
Estimation of test automation in an Agile environment
Insight into effort, impact, and investment
One way to ensure the quality of software, is by testing it. Running tests can be done both manually and automatically. Test automation, with its ups and downs, has been the centre of attention for many years. It is usually underestimated what implementing test automation entails and the impact it has on an organization. Especially the estimation of the required effort. Adding test automation within the entire range of testing measures requires extra human capacity, both for the initial set up and the maintenance of the automatized tests apart from test implementation. The question is how much human capacity is needed in order to test automatize the functionality which has to be tested automatically? This article describes several methods to estimate the required effort for test automation and the approach to collect the required data.
Keywords-Estimation; Test Automation; Agile; Testing; Return on Investment and Future proof.
I. Introduction
One way to ensure the quality of software, is by testing it [1]. What we mean by testing software is the following [2]:
“The process consisting of all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine that they satisfy specified requirements, to demonstrate that they fit for purpose and to detect defects.”
Running tests can be done both manually and automatically. Test automation, with its ups and downs, has been the centre of attention for many years. It is usually underestimated what implementing test automation entails and the impact it has on an organization [3] [18]. Because of the rising popularity of Agile [4] [20] and the implementation of continuous deployment and development [22], it seems that test automation is taking on a fixed position. The most important reason for this is that the amount of work is no longer manageable to be done manually [5].
Adding test automation within the entire range of testing measures requires extra human capacity, both for the initial set up and the maintenance of the automatized tests apart from test implementation. The question is how much human capacity is needed in order to test automatize the functionality which has to be tested automatically?
Test budgeting has been a problem since the beginning [6]. Several methods have been developed [7] [8] [9], but they don’t always produce the correct results. Paragraph 2 will expand on this topic. Practice shows that significantly more time is needed than was budgeted at the start of the project.
The question is how to get a grip on this in order to make reliable predictions concerning the necessary capacity. Based on previous methods [7] [8] [9], which are the utilized ways of budgeting within the Agile methodology [10], three ways of thinking have been developed to budget automatized test capacity. These three ways of thinking are described in this article. However, they still have to be tested in practice.
The fundamental principle in this article is a structural, future proof design of test automation within the Agile developed methodology. That means the following: designing test automation in such a way that developed automatized tests cannot only be executed, reused, and easily transferred to others today, but also in the future, and done in such a way that maintenance effort is minimal.
The paper has the following structure. Section II describes the causes of poor test budgets on behalf of test automation. Section III describes the general elements that affect the required test capacity. Sector IV will give insight into budgeting future proof elements on behalf of test automation. Sector V discusses the three ways of budgeting. A detailed example has been included in Section VI. Section VII describes the collection of the data and the approach to classify into the described estimation methods. Return on investment is dealt with in section VIII. Lastly, section IX describes the conclusions and future work.
II. Causes of poor test automation budgeting
As indicated in the introduction, budgeting within ICT is a common problem [6]. Which causes are at the core of this? A couple of reasons can be found.
Using new development and or programming techniques of which there is not enough knowledge. Not questioning the desired functionality enough which causes new problems to arise during the implementation and test phase. Unfamiliarity with the quality of the software in the beginning is another reason. Furthermore, the quality of the persons involved, such as the tester or developer, plays a role. Is someone sufficiently skilled to make a solid budget? [9][8][7].
What we see in practice is that experience numbers are hardly recorded, if recorded at all. This is especially the case for budgeting test automation. A short research in the ISBSG database [11] shows that only three projects have been recorded in which Agile development technique is combined with automatized testing. Of only 1 project out of these three, the delivered test effort has been registered. See table 1.
Table 1: Analysis ISBSG-database for the attention of test projects
| #projects | Way of testing | Agile development methodology | Test effort known | |||
| Manual | Automatized | Y | N | Y | N | |
| 95 | 29 | 66 | 3 | 63 | 1 | 2 |
It becomes clear from this analysis that there is no useful data available to draw conclusions.
In order to try to answer the question: “How is budgeting done in an Agile development environment concerning test automation,” a survey has been conducted in which 100 people participated. The results are recorded in table 2.
Table 2: Results survey way of budgeting test automation
| Way of budgeting | Number |
| Not budgeted | 2 |
| Percentage available time | 1 |
| Pokering of the effort | 3 |
| Experience based | 5 |
| No response | 89 |
| Total | 100 |
As table 2 shows, no reliable results can be extracted from the survey. Despite a reminder, response was very low. Both the results of the survey and the analysis of the ISBSG database, which show comparable results, were a trigger to keep on thinking of ways how to budget test automation reliably and predictably.
A first draft was made during the Valid2016 conference where the first ideas were drafted during the presentation: “Estimation of test automation in an Agile Environment” in which the following question was discussed: “How to estimate the required effort in an Agile environment regarding test automation” [12].
During this presentation three ways of thinking were sketched how test automation can be budgeted in an Agile development environment in order to set up test automation in a structured and future proof manner. This article elaborates on the presentation whereby received input has been included in further working out the ways of thinking. Besides the manner of budgeting, each approach has a number of general elements which influence the eventual budget for test automation. These general elements will be elaborated on first.
III. General elements influencing budgeting of test automation
Apart from the required budget to automatize the test scripts, there are several preconditional elements which influence the required budget for test automation. No matter at which level in the organization (project, division or company level) [21] you wish to implement test automation, you will have to deal with these elements. Dependent on the level at which you would like to implement test automation, the impact on the organization will be bigger. If you focus test automation on company level instead of a project or individual sprint, the involved elements will have a wider impact. The elements can be separated in the so called initial costs and continuity costs. The initial costs are those which you have when setting up and developing test automation for the first time in an organization.
Continuity costs are costs which have to be made after the introduction of test automation in order to maintain and expand (if necessary) test automation. In table 3 the relevant elements are mentioned with an indication how these elements can be measured and a short explanation.
Table 3: Initial and continuity elements test automation
| Component | Element | Unit of measure | Explanation |
Initial costs | People | #people Costs per day | Number of people that are going to work on test automation |
| Test tools | #tools Price per license | Type and number of test tools to purchase aligned with various development platforms | |
| Installation costs | #days Costs per day | Installation of test tools in the ICT- landscape | |
| Test data | #days Costs per day | Choosing a working method: formulate test data requirements, making synthetic test data, scrambling production data to use as test data. Taking privacy into account [14] | |
| Education | # days | Number of required educations/courses | |
| Frequency of usage | #runs | How often is test automation used? | |
| Virtualization | Is virtualization used? | ||
| Number of integrations with surrounding systems | #integrations costs per integration | Which integrations are relevant and how are they mutually dependent? | |
| Support which company objectives | n/a (not applicable) | Which strategic objectives have to be supported? | |
| Continuity | License costs test tools | Price per license | Annual costs on behalf of the test tools |
| Maintenance test scripts | Modification frequency | Percentage time reserved for maintenance of the test scripts | |
| Additional training | #days #days upgrade | Required training for new employees and new versions of test tools | |
| Test tool upgrade | #licenses times updates | Costs linked to purchasing and installing test tool upgrades | |
| Integrations | #integrations costs per integration | Expansion and maintenance of integrations surrounding systems |
IV. Budgeting future proof elements
This information is partly delivered by the overarching test procedure on company level. You can think of frameworks for reusability, tooling, test data generation for repeatability and a wiki for setting up the transferability aspect.
The question is which percentage of the required test capacity for test automation has to be reserved for developing future proof automated test scripts?
The following rules of thumb can be applied as shown in table 4.
Table 4: rules of thumb on determining future proof factor
| Aspect | Priority | Factor |
| Reusability | H (= High) | 1,2 |
| M (= Medium) | 1 | |
| L (= Low) | 0,8 | |
| Repeatability | H (= High) | 1,2 |
| M (= Medium) | 1 | |
| L (= Low) | 0,8 | |
| Transferability | H (= High) | 1,2 |
| M (= Medium) | 1 | |
| L (= Low) | 0,8 |
An example: 100 hours have been calculated for test automation. In order to set up future proof test automation, the following values have been agreed upon (see below). Determining these values is done in accordance with the principal and is linked to a company’s objectives.
| Aspect | Factor |
| Reusability | H |
| Repeatability | M |
| Transferability | M |
The number of hours required to set up this part future proof will be: (100 x 1,2) x1 x 1 = 120 hours.
Another aspect to take into consideration is the scope of test automation. For which test type [2] are the test automation scrips developed? A sprint, an integration test (IT) or a chain test (CT)? The bigger the scope, the more synchronization with all parties becomes necessary. Think of which test data to use, which test scripts, availability of test environments for example and analysis of the results [15] [16].
You can introduce another factor namely the test type with the following parameters:
| Testtype | Factor |
| Sprint | 1 |
| IT | 1,2 |
| CT | 1,5 |
Say you would like to do for example a chain test automation. The necessary effort, based on the table above would be:(120 x 1,5) = 180 hours.
As stated, these are rules of thumb, which will have to be tested and adjusted by collecting data from yet to be executed case studies.
V. Budgeting test automation
In previous paragraphs it has been discussed both which general elements influence the test automation budget and that making test automation future proof also impacts the budget.
So how do you really budget test automation?
The following methods of budgeting will be elaborated on:
- Percentage of the available time;
- Pokering the required effort;
- Pokering the required effort in combination with being 1 sprint behind.
A. Percentage of the available time
This method uses reserving a percentage of the total available test time for test automation as a starting point. A frequently used percentage, distilled from various projects, is 20% of the available test time. Suppose that for 100 hours of testing time 20 hours are used to do test automation. A part of these 20 hours is then used to make the test automation future proof.
By monitoring the actually needed capacity during each sprint, a realistic percentage can be established eventually. The velocity [13] becomes more and more accurate. The question is how reliable such a number is? Does a fixed number allow you to automatize everything that has to be automatized?
The risk is that in for example a sprint, not everything can be tested automatically, since the amount of work requires more time than can be realized in the time that is available. A debt is build up which either has to be removed during a next sprint, or in order to finish the amount of work scaling up is done. One of Agile’s features is a shared team effort. Developers can support in test automation but this will be at the expense of other work which puts pressure on the velocity and leads to not being able to realize all the selected product backlog items.
The way of budgeting, as described here, is a very basic way of budgeting which begs the question of how much functionality can be tested automatically given the framework conditions. The advantage is that you always know how much time is available for test automation.
B. Pokering the required effort
Another way of budgeting is applying poker planning [17] specific for test automation. Perhaps initially this might seem like reserving a percentage of time. Initially. Pokering the effort uses the brain power of the entire team to reach an actual estimation of the required time.
By placing the items which qualify for test automation on the product backlog, insight will be given into the amount of test work which has to be automatized. Pokering items also provides insight into whether the amount of work fits the current sprint. If the necessary effort is large one can decide to develop less functionality so that developers can assist in developing the necessary test automation.
This way of budgeting has some caveats to take into consideration. Is the to be test automatized item on the backlog of sufficient depth to determine the scope properly? The second observation has to do with the stability of the features for which test automaton has to applied. Is the team only capable of automatizing the test on unit level or also all the features itself?
C. Pokering the required effort in combination with being 1 sprint behind
To obtain a larger predictability of the work that has to be done, you can choose to start the test automation in the next sprint using the version of software which was produced in the previous sprint.
This approach has a number of advantages. The software which qualifies for test automation has reached a level of stability which makes it suitable for test automation. Another major benefit is that more detailed information is available with regard to functionality. After all, software has already been produced, which makes it easier to determine which effort is necessary to automatize the tests. Counting the number of functions goes back to the method of budgeting as applied within the TestFrame methodology [15].
This way of budgeting overlooks an important Agile principle namely the fact that working software has to be produced at all times. As a team you cannot guarantee that all software from for example a sprint works, simply because you can no longer test everything manually.
VI. a developed example
To give an idea of the various elements influence on the needed capacity, a fictive example has been developed.
Basic requirements:
| Activity | Required capacity in hours | Calculating factor |
| Testing | 1000 | |
| Way of budgeting: 1 (fixed percentage) | 200 | |
Future proof: Reusable: H Repeatable: H Transferrable: L | 1.2 1,2 0,8 | |
| Scope test automation: chain test | 1,5 | |
Relevant general elements Additional training: License costs | 4 persons 1 day €1000, — per day 4 licenses €1000, — per year | |
| Hourly fee | €75 |
Total amount:
| Activity | Calculation | Amount |
| Required capacity | 200 x 1,2 x 1,2 x 0,8) x 1,5 x €75 | €25.920 |
| Training costs | ((4 x 8) x €75) + 1000 | €3.400 |
| License costs | 4 x €1000 | €4000 |
| Total costs: | €33.320 |
VII. Collection of the data
In the previous chapters a few methods are described to estimate test automation in an Agile context. Till now there is no real evidence which method is the best. A first attempt was made as described in section II. To verify the described estimation method a new survey will be set up tot collect the data based on table 5.
Table 5: collection of the data
| Project | Type of Initial cost | Prio | Continuity costs | SDLC | Estimation method | Estimated hours | Actual hours |
The major problem with the first survey was the timeframe. It was to short to collect data from different customers and projects. The new survey will take place during a period of two years to collect the required data as a base for a proper analysis. At least the data of 100 projects will be collected.
VIII. Return on investment
Initially, test automation costs money. As indicated, various elements have to be put in place before test automation can really be applied. The question is when the required investment will be recouped. Tied to this question is the question: what you will earn exactly? Soon thoughts will go to quantitative aspects. However, when it comes to return on investment (ROI) qualitative aspects also play a part. Table 6 describes a number of aspects that show how you can recoup the investment.
Table 6; aspects relevant for the ROI
| Aspect | Description |
| Shortening test execution time [19] | Manual execution has been replaced by test tools by means of which test automation can be executed in so called off-peak hours. Besides this, a test tool is many times faster than a human being. |
| Prevention of regression | Because of the acceleration in test execution it has become easier to execute all automatized test scripts. Insight into possible regression can be gotten quickly. |
| Impact analysis in case of modifications | By executing automatized test scripts in the first sprint, insight into the suggested modifications can be gotten quickly. This can be especially beneficial in a Devops environment. |
| Time to market | By raising the test execution power, the company can enter the market much faster than its competitors. |
| Independence | By automatizing the functionality, a company becomes less dependent on a few functional experts. This expertise can be used in other parts or parts of which automation is not useful. |
| Reliability in the execution | The execution of the automatized test always happens in the exact same way. This provided insight into the stability of the software. |
| Uniform way of reporting | The test tool generates reports. These describe in detail what happened during the test execution. This makes it easier to track faults and takes less time. |
| Quality to market | The accuracy of tests gives a good insight into the quality and stability of the information system. |
IX. Conclusions and future work
This article describes three ways of thinking on how to budget future proof test automation in an Agile environment. These ways of thinking came into being because the existing methodology did not support a reliable budget sufficiently. They will have to be tried and tested in practice by means of a case study. Data has to be collected in order to eventually develop a balanced way of budgeting. Lastly, the article describes the benefits of applying test automation in an organization.
Acknowledgment
I would like to thank Marcel Mersie and Danny Greehorst for their contribution and giving me some of their precious time. Furthermore, I would like to thank the companies where I could set up test automation and develop the in this article mentioned three ways of thinking.
References
- van Veenendaal, ”The Testing Practitioner, hoofdstuk 1,” UTN, 2002.
- van Veenendaal, M. Posthuma ”Testwoordenboek, blz. 112,” UTN, mei 2010.
- Fewster, “Common mistakes in Test Automation, “ www.cm.techwell.com, 2001.
- Hoogendoorn, “Dit is Agile,” Pearson, 2012.
- Blazemater, “The advantages of Manual vs Automated Testing,” blazemater.com, 2015.
- vd Burgt, I. Pinkster, “Succesvol testmanagement, een integrale aanpak, blz 110-111,” tenHagenStam, 2003.
- Greefhorst, M. Mersie, J. van Rooyen, “Principes van testautomatisering,” Computable, 2015.
- DJ de Groot, “Testgoal,” SDU, 2008.
- vd Laar, “Technieken voor plannen en begroten van test projecten,” Testnet voorjaarsevent, 2009.
- Karlesky, M vd Voord, “Agile projectmanagement,” Embedded systems conference Boston, 2008.
- ISBSG, “ISBSG database,”.
- van Rooyen, “effort estimation test automation in an Agile environment,” Valid2016, 2016.
- improvement-services.nl, “term velocity”.
- European Union, “GDPR, ” 2016.
- Schotanus et al, “Testframe, hoofdstuk 6,7,8,” Academic Service, 2008.
- Siteur, “Automate your testing, sleep while you are working, blz 143-144,” Academic Service, 2005.
- improvement-services.nl, “term pokerplanning”.
- Beck et all, “Agile manifesto,” www.agilemanifesto.org, 2001.
- Bach, “Test Automation Snake Oil,” www.satisfice.com, 1999.
- Huijgens, “Agile werkt,” Academic Service, 2012.
- Guru99, “Automation Testing for Agile methodology,” guru99.com, 2017.
- M. Fowler, “Continuous Integration,” 2006.
Let’s talk
Klaar om te sparren?
Met een unieke aanpak op basis van co-creatie en onze expertise in Agile, Business Analyse en IT-Testen helpen we organisaties door heel Nederland écht vooruit. Heb jij een uitdaging? We denken graag met je mee!
Lees ook dit artikel eens
Contact
- Koningin Wilhelminalaan 1
- 3818 HN Amersfoort
- Nederland
Over ons
Direct naar
Ik wil up to date blijven
Blijf op de hoogte met onze gratis nieuwsbrief.
Weerstand
Weerstand
In een serie blogs wil ik een aantal situaties met betrekking tot ketenregie en/of kwaliteitsmonitoring de revue laten passeren. Deels zijn deze gebaseerd op ervaringen opgedaan in projecten. Voor een ander deel zal het een bespiegeling zijn op actuele situaties die je in het dagelijkse nieuws ziet langskomen.
Is het volgende beeld voor jou herkenbaar?
Je werkt met zijn allen aan een project om bijvoorbeeld business processen die binnen een unit worden uitgevoerd te analyseren en daar waar nodig te optimaliseren. Je pakt dit op een Agile manier aan met multidisciplinaire teams en iedereen die een rol heeft in het businessproces heb je betrokken.
Tijdens het werk merk je continu dat er geen sfeer van openheid aanwezig is. Informatie wordt niet volledig gebracht, mensen maken zaken niet concreet, er wordt om de materie heen gedraaid of op het allerlaatste moment wordt er informatie gedeeld die het maakt dat een groot deel van het gedane werk teniet wordt gedaan.
De consequentie van dit alles kan zijn dat er onnodig veel tijd en energie verloren gaat en dat een deel van de deelnemers zal gaan afhaken. Ik kom dat helaas (regelmatig) tegen.
Het is een vorm van weerstand die mensen uiten omdat er kennelijk (ergens) een gevoel van bedreiging is. Mensen worden uit de comfort zone gehaald. Zien hun werkwijze veranderen of wellicht het werk verdwijnen. Worden uitgedaagd om daadwerkelijk hun kennis en kunde te etaleren waaruit mogelijk kan blijken dat de kennis niet echt op orde is.
Constateren is een maar wat kun je daar aan doen? Een paar ideeën.
Zorg voor een sfeer van geborgdheid. Een veilige haven waar alles op tafel gelegd kan worden. Check of de juiste mensen aan boord zijn. Vraag aan de deelnemers op welke plaats in het proces zij de werkzaamheden uitvoeren. Neem zaken niet te snel voor waar aan. Controleer iedere stap in het proces met controle vragen of het beeld / plaatje compleet is. Voer een simulatiesessie uit om daadwerkelijk het proces na te spelen en vast te stellen of er nog witte vlekken in het proces zitten.
Een aantal suggesties om met boven geschetste situatie om te gaan. Mochten er aanvullingen zijn of herkennen mensen zich in bovengenoemde situatie dan hou ik me aanbevolen voor extra ideeën.

Interesse? We praten graag met je verder!
Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.
Principes voor testautomatisering
Principes voor testautomatisering
Organisaties moeten steeds sneller veranderen om aan de veranderende vraag van klanten te blijven voldoen. Dit stelt hoge eisen aan de ontwikkeling van applicaties. Klanten eisen niet alleen snelheid maar ook extreme gebruikersvriendelijkheid. Werkt bijvoorbeeld een webwinkel niet naar behoren dan is er snel een alternatief voorhanden. Agile softwareontwikkeling sluit goed aan op deze veranderbehoefte en is inmiddels in een groot deel van de organisaties doorgedrongen. Om aan de groeiende hoeveelheid (test)werk te blijven voldoen neemt het aandeel en het belang van testautomatisering toe. Echter, wil testautomatisering daadwerkelijk ondersteunend zijn aan de veranderende organisatie dan stelt dat andere eisen aan mensen en (test)processen. Het goed begrijpen van de impact van testautomatisering is daarom belangrijk. Architectuur kan mede helpen doordat het op een gestructureerde manier inzicht kan geven. Het maakt het mogelijk om een gestructureerd plan te maken waarbij alle belangrijke onderdelen worden meegenomen.
Het startpunt van architectuur is een set van principes; richtinggevende uitspraken die aangeven wat belangrijk is. Omdat deze principes voor een belangrijk deel hetzelfde zijn voor elke organisatie hebben wij een generieke set van principes voor testautomatisering geïdentificeerd. Vanuit onze kennis en ervaring van testen, testautomatisering en architectuur hebben we beschreven wat wij denken dat belangrijk is. Deze principes zijn voor ons tevens een startpunt voor een boek dat we schrijven over testautomatisering, waarin de principes en de architectuur verder uitwerkt worden en tegelijkertijd dienen als ‘paraplu’ voor de rest van het boek. De volgende principes belichten respectievelijk het organisatie- en het informatievoorzieningsperspectief.
Organisatieprincipes
Principe 1: Testautomatisering past bij de doelstellingen en volwassenheid van de organisatie
Testautomatisering is geen doel op zich; het is een manier om organisatiedoelstellingen te ondersteunen. De mate waarin het bijdraagt verschilt per organisatie. Het vraagt een investering, die moet worden gerechtvaardigd, en het vraagt vooral een organisatieverandering. Zo leidt het bijvoorbeeld tot een verschuiving van de taken van de testengineer, die meer software-ontwikkeltaken krijgt. Testautomatisering veronderstelt ook een minimum volwassenheidsniveau, met name op het gebied van software-ontwikkeling. Een goede analyse van de organisatiecontext en de kosten en baten van testautomatisering (business case) is daarom noodzakelijk. Volwassenheidsmodellen helpen reële ambitieniveaus te definiëren en geven meer zicht op de noodzakelijke inspanning.
Principe 2: Testautomatisering is gebaseerd op een heldere visie, beleid en architectuur
De implementatie van testautomatisering moet niet lichtzinnig worden opgevat. Het is een relatief complex onderwerp dat vraagt om het maken van allerlei keuzes. Denk hierbij aan positionering van testautomatisering in de organisatie of de opzet van testautomatisering. Het maken van weloverwogen keuzes helpt om testautomatisering toekomstvast in te richten. Er moet ook voorkomen worden dat testautomatisering een ‘one-size-fits-all’ aanpak wordt; je kunt er ook in doorschieten. Door het opstellen van een testvisie wordt duidelijk welke doelstellingen testautomatisering vooral dient en welke risico’s het vooral adresseert. Testbeleid legt de belangrijkste uitgangspunten vast over hoe er met testen wordt omgegaan en wat de rol van testautomatisering daar in is. Testarchitectuur beschrijft de inrichting van testen op hoofdlijnen zoals het te hanteren proces en de te gebruiken tools.
Principe 3: Testautomatisering houdt rekening met de menselijke maat
De mens is de allesbepalende factor en dat is ook zo bij testautomatisering. De term ‘automatisering’ lijkt er wellicht op dat de mensen minder belangrijk worden, maar niets is minder waar. De activiteiten verschuiven en stellen juist hogere eisen aan mensen. Iedereen die een betrokkenheid heeft bij testen moet begrijpen waarom testautomatisering belangrijk is en wat hun betrokkenheid inhoudt. Er zal dus goed moeten worden gekeken naar de impact op de rollen die benodigd zijn bij de testprocessen en bijbehorende competenties. Enerzijds verdwijnt repeterend werk en zal de nadruk komen te liggen op de analyse van de testresultaten. Anderzijds zal het belang van de rol van testengineer toenemen. Een veranderkundig perspectief op testautomatisering is daarom erg belangrijk.
Principe 4: Testautomatisering vraagt een weloverwogen afweging tussen risico en inspanning
Testen en het automatiseren van tests kost tijd en alles doortesten kost in veel gevallen teveel tijd. Het is daarom belangrijk de testinspanning te richten op de zaken die de meeste aandacht vragen, of op die delen die de grootste risico’s lopen. In het verleden werd er niet altijd doorgerekend of testen voldoende toegevoegde waarde bood. Testautomatisering kost echter meer inspanning, waardoor het belangrijker is om de waarde vooraf goed te bepalen. Het is daarom belangrijk om een rekenmodel te gebruiken waarin alle factoren die risico en inspanning bepalen zijn benoemd. Dit rekenmodel zal intelligent moeten zijn zodat de onderdelen die waarvoor automatisering waardevol is onderscheiden worden van onderdelen waarvoor dat het niet geval is. Een globalere versie van het rekenmodel moet ook worden gebruikt bij het opstellen van de business case voor testautomatisering.
Informatievoorzieningsprincipes
Principe 5: Testautomatisering is modelgebaseerd
Er worden in het testproces allerlei modellen en gegevens gebruikt die betrekking hebben op de applicatie die wordt getest. Deze modellen kunnen direct in het testproces worden toegepast, ondermeer voor het automatisch genereren van testscripts en de verwachte testresultaten. Dit zorgt ervoor dat de ontwikkel- en beheerinspanning wordt geminimaliseerd, dat inconsistenties zoveel mogelijk worden voorkomen en dat aanpassingen in de applicatie zo min mogelijk vragen om aanpassingen in de testscripts. Deze kunnen dan opnieuw worden gegenereerd. Het in gestructureerde, modelgebaseerde vorm vastleggen van functionaliteit stelt hogere eisen aan het analyse- en ontwerpproces. Functionaliteit wordt bij voorkeur in pseudocode beschreven.
Principe 6: Gegevens voor testautomatisering worden expliciet beheerd
Gegevens spelen een belangrijke rol in testautomatisering. Omdat de kwaliteit van processen in sterke mate afhankelijk is van de kwaliteit van de gegevens vragen deze laatste expliciete aandacht, en dat geldt dus ook voor de gegevens die worden gebruikt bij testautomatisering. Aandacht voor gegevensbeheer (ook wel: data governance) betekent onder meer het expliciet maken van taken en verantwoordelijkheden. Wie is bijvoorbeeld verantwoordelijk voor de testware na het afronden van het project? Als er geen goede afspraken zijn dan is er een reële kans dat de testware niet consistent is en daarmee onbruikbaar. Versie- en configuratiebeheer op de betrokken gegevens is daarom essentieel.
Principe 7: Testautomatisering houdt expliciet rekening met informatiebeveiliging
Klanten verwachten dat organisaties op een zorgvuldige manier met hun gegevens omgaan en dat deze niet in handen komen van onbevoegden. Wet- en regelgeving zoals de ‘Wet Bescherming Persoonsgegevens’ stelt hieraan ook expliciete grenzen. Testautomatisering dient daarom ook specifieke aandacht te hebben voor informatiebeveiliging. Gegevens die gebruikt worden bij het testen mogen niet herleidbaar zijn naar individuen (zoals klanten). Gegevens bevinden zich ook bij voorkeur binnen Europa en niet onder invloed van specifieke overheden, bijvoorbeeld in het kader van de ‘Patriot Act’. In meer algemene zin dient aandacht te zijn voor informatiebeveiligingsrisico’s en maatregelen, en het daarvoor noodzakelijke beleid.
Principe 8: Testautomatiseringstools zijn noodzakelijk maar niet leidend
Testautomatisering vraagt ondersteuning door tools; deze dienen de automatisering mogelijk te maken en uit te voeren. Het is echter belangrijk om te beseffen dat tools slechts ondersteunend zijn; de echte uitdagingen zijn met name organisatorisch van aard. De tools dienen vooral de doelstellingen en de risico’s goed te ondersteunen, wanneer ze meer dan dat doen dan sluiten ze niet goed aan. Voor sommige organisaties en applicaties kan een set van eenvoudige tools voldoende zijn, terwijl in andere situaties een meer uitgebreide toolset noodzakelijk is. De keuze voor testtools zou daarom gebaseerd moeten zijn op de testvisie en -beleid. Dure tools zijn niet per definitie beter.
We hebben in dit artikel een aanzet gegeven voor de zaken waarvan wij denken dat ze belangrijk zijn bij het inrichten van testautomatisering. Een architectuurbenadering draagt volgens ons bij aan een beter begrip en inzicht. Testarchitectuur is dan ook een belangrijke competentie in het kader van testautomatisering. Wij zijn benieuwd of anderen de door ons geschetste principes herkennen zodat we ze kunnen aanscherpen.
Auteurs:
Jos van Rooyen
M.m.v. Danny Greefhorst
M.m.v. Marcel Mersie

Interesse? We praten graag met je verder!
Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.
















