Artikelen door Identify

Pakketten en testen; een vertragende factor?!


Pakketten en testen; een vertragende factor?!

Pakketten en testen. Is dat een logische combinatie? Is het inderdaad een vertragende factor of kan het elkaar juist versterken.

Pakketten kies je om bepaalde redenen. Het gebruik maken van generieke oplossingen of standaarden vanuit de markt, onvoldoende capaciteit om zelf te kunnen ontwikkelen etc. Zo zijn vele redenen te bedenken om te werken met (standaard) pakketten. Een pakket staat niet op zich maar is geïntegreerd in het totale landschap binnen een organisatie. Het pakket vult een onderdeel van de keten in. Daarbij is het natuurlijk van belang dat de keten goed functioneert en er voor zorgt dat de klanten tevreden zijn en blijven.

Zoals bij maatwerk systemen het geval is krijg je ook bij pakketten te maken met updates t.a.v. het pakket of bijvoorbeeld andere wensen t.a.v. de inrichting door bijvoorbeeld veranderende business omstandigheden. Deze wijzigingen moeten gevalideerd worden om te voorkomen dat er allerlei ongewenste neveneffecten gaan ontstaan. De benodigde inspanning kan flink oplopen en heeft wellicht ook een repeterend karakter bij meerdere releases per jaar. Vooral als er (nog) handmatig getest wordt. De benodigde inspanning wordt mede bepaald door de omvang van een regressietest. Uiteraard is deze omvang afhankelijk van de aard van de wijzigingen.

Handmatig testen heeft een grote waarde maar is niet toereikend meer gezien de hoeveelheid updates die beschikbaar zijn, de snelheid waarmee deze geïmplementeerd moeten worden en de tijd die nodig is voor de testuitvoering.

Dan is het toepassen van geautomatiseerd testen een absolute must om het ontwikkeltempo bij te kunnen houden. Zeker gezien als je richting een DevOps situatie gaat bewegen.

Echter, bij de introductie van testautomatisering worden nieuwe uitdagingen geïntroduceerd. Testautomatisering moet herhaalbaar, herbruikbaar en overdraagbaar zijn. Het opvoeren van een bijvoorbeeld een pensioen polis met ingangsdatum vandaag is mooi en de gedefinieerde testgevallen kun je vandaag perfect uitvoeren. Alleen morgen is vandaag niet meer en dan werken je gedefinieerde testgevallen niet meer. Kortom, je testgevallen zijn niet herbruikbaar en herhaalbaar.

Wat kun je er aan doen? De oplossing is voorhanden. Zoals je een informatiesysteem bouwt op basis van een architectuur moet je testautomatisering ook opzetten onder architectuur. We noemen dat testautomatiserings-architectuur waarmee je o.a. herbruikbaarheid en herhaalbaarheid van je geautomatiseerde testen bereikt.

Door deze aanpak kun je snel en gedegen een wijziging, fix, release etc. valideren waarmee de doorlooptijd van de test en daardoor de doorlooptijd van een release aanzienlijk kunt verkorten. Je bereikt dan de situatie dat testen geen vertragende factor meer is maar een katalysator om wijzigingen snel in productie te kunnen zetten.

Wil je meer weten over het opzetten van een toekomstvaste testautomatiserings-architectuur? Kijk dan in het boek: testautomatisering wendbaar organiseren of de website https://mailchi.mp/a6bc6ba0b694/testautomatisering.

Interesse? We praten graag met je verder!

Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.

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.

Wat hebben ambachtslieden en Scrum Masters met elkaar gemeen?


Wat hebben ambachtslieden en scrum masters met elkaar gemeen?

Agile en Scrum zijn begrippen die je overal tegenkomt in moderne kleine organisaties of de grote multinationals. Deze manier van denken en werken hebben we bij Identify in ons DNA zitten en dat dragen we graag uit. ‘In het DNA’ klinkt misschien wat vergaand maar het DNA wil zeggen dat je het doorleefd, voelt en bewust bekwaam meeneemt in elke opdracht naar je klanten. Hiermee helpen we vele organisaties verder met kwaliteitsverbeteringen op het gebied van softwareontwikkeling. Door de software in kleine beheersbare brokken werk op te leveren, met tussentijdse evaluatie momenten voor de klant, is tijdig bijsturen mogelijk. Daardoor krijgt de klant niet alleen wat hij wil maar wordt hij meer betrokken bij de ontwikkeling. Door deze manier van samenwerken groeit de onderlinge betrokkenheid.

Door studenten van de Radboud Universiteit Nijmegen les te geven in Scrum werken, met een Agile gedachte, leren we zelf ook continue bij. Theorie herhalen, uitleggen en hierover discussiëren geeft ons ook weer nieuwe inzichten.

Echter, Agile werken vergt meer dan alleen het leren van theorie. Agile is een gedachte, een wijze van denken die je het beste kan leren door ervaring en veel doen. Het moet inslijten in je systeem. Bij Agile gaat het over menselijke interactie, werkende software, samenwerking met de klant en inspelen op veranderingen in plaats van zwaarlijvige processen en hulpmiddelen, alles omvattende documentatie, contractonderhandelingen en vasthouden aan een plan. ‘Behendig’ ofwel ‘lenig’ inspelen op de klantwensen en bijsturen waar nodig. Onnodige kosten worden voorkomen en de beoogde voordelen worden eerder bereikt.

Om Agile en Scrum optimaal in te zetten hebben we binnen Identify de focusgroep Agile & Scrum. Hierin delen we onze geleerde kennis uit de theorie én praktijk. We helpen elkaar met de eventuele uitdagingen en je persoonlijke doelen door intervisie- en kennissessies. Maar ook via de telefoon, whatsapp of Skype bespreken we dagelijkse dingen. We kunnen elkaar dagelijks ondersteunen waar nodig of waar behoefte ontstaat. Weten wat er speelt in de organisatie van onze klant en direct acteren op verandering is belangrijk bij Agile werken. Door deze onderlinge interactie bereiken we telkens weer een hoger volwassenheidsniveau op het gebied van Agile & Scrum en kunnen wij als mentoren beter functioneren binnen Identify én vooral bij onze klanten.

Werken in een Agile omgeving met bijvoorbeeld Scrum vergt van een Scrum Master, naast diepgaande kennis over dit onderwerp, vooral; charisma, empathie, positiviteit, besluitvaardigheid en natuurlijk leiderschap. Als Scrum Master werk je meestal niet in een gecontroleerde stabiele omgeving. Verandering en inspelen hierop zijn belangrijke kenmerken voor de omgeving waarin we werken. En hier zien we een parallel met ambachtslieden. Hieronder wordt uitgelegd waarom.

Kwaliteit (houding ten opzichte van je producten en diensten)
Ambachtslieden maken unieke objecten. Het gaat om precisie- en maatwerk. Ze werken met passie en streven naar perfectie van hun werk. Het gaat om ultieme vak beheersing, in de praktijk geleerd (kennis en vaardigheden en ontwikkeling). Niet alleen uit de boeken, maar ook op basis van inzicht en ervaring die tijdens de uitoefening van het vak is opgedaan. *

Zelfstandig werken (uitvoering)
Ambachtslieden leveren maatwerk. Zij zijn in staat om creatieve, nieuwe toepassingen te integreren in hun vak. Creativiteit en originaliteit kenmerken het werk. Zij bepalen op basis van hun vakkennis wat nodig is om het beste resultaat te krijgen en voeren het werk zelfstandig uit. *

Marktgericht (conditie)
Ambachtslieden zijn ondernemend en in staat tot een zelfstandige bedrijfsvoering. Ze houden balans tussen perfectie en de continuïteit van hun bedrijf. Samenwerking, communiceren en ondernemen zijn hierbij belangrijke vaardigheden voor een duurzame onderneming. *

Door samen Agile software te ontwikkelen, feedback te vragen en te geven, tijdig bij te sturen, en de software hierop aan te passen kan men dus snel en flexibel inspelen op veranderingen. De producten worden daardoor sneller en kwalitatief hoogwaardiger opgeleverd. Om dit proces tot in de puntjes goed te begeleiden is een Scrum Master met de juiste Agile ervaring van groot belang.

Kortom Scrum Master zijn is een ambacht!

*= Bron: https://www.ambachtnederland.nl

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?

De waarde van Testautomatisering - Identify IT-consultancy Amersfoort Testautomatisering verhoogt de efficiëntie, borgt kwaliteit en verlaagt risico’s. Ontdek hoe je de echte waarde bepaalt, van ketentesten tot CI/CD.
Figuur 1

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.

Vacature Testautomation Engineer Amersfoort

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!


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.

Co-create to accelerate

Identify Consultancy Amersfoort voor Agile, Business Analyse en Scrum is NEN 4400-1 gecertificeerd

Identify Consultancy Amersfoort Great Place To Work 2025

Contact

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.

De moderne tester, een kameleon in een wereld vol verandering: vakmanschap en flexibiliteit

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.

Co-create to accelerate

Over de auteur


Foto van Stefan Brezina

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.


Mail

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.

Vaag houden


Vaag houden

Een onderwerp welke ik wil aankaarten kan een heikele zijn. Even de situatie schetsen. Je zit in een analyse workshop of een design brainstormsessie en je hebt het gevoel dat je maar niet tot de kern kunt komen. Er worden opmerkingen geplaatst of input geleverd die in eerste instantie wel lijken te kloppen maar waar je eigenlijk niets mee kunt. Of, er worden proefballonnetjes losgelaten waarmee allerlei suggesties worden gewekt of zaken groter gemaakt.

Al met al een situatie waar je weinig concreet mee kunt worden. De vraag is hier uiteraard ook weer. Wat zit er achter? Waarom hebben deelnemers deze instelling? Waarom worden zaken vaag gehouden.

Uit de analyse van mijn ervaringen kom ik tot een aantal conclusies. Soms hebben de mensen te weinig kennis hoe bijvoorbeeld een bedrijfsproces daadwerkelijk in elkaar zit en wat de interactie is met de omliggende wereld. Kort door bocht gezegd ontbreekt er kennis. Het vaag houden is een vorm van maskeren.

Daarnaast zie ik dat mensen bang zijn om vernieuwingen te omarmen. Door rookgordijnen op te werpen probeert men zaken te vertragen of te voorkomen dat daadwerkelijk vernieuwingen worden doorgevoerd.

Een situatie die ik helaas regelmatig tegenkom. De vraag is natuurlijk, wat kun je er aan doen?

Een techniek die ik regelmatig toepas en veel succes mee hebt is het toepassen van simulaties. Met een simulatie speel je eigenlijk het proces na waarbij in een veilige omgeving eventuele omissies helder worden. Tegelijkertijd kun je deze samen oplossen. Het voordeel van deze aanpak is dat je impliciet bij de deelnemers de kennis opbouwt en voorbereid op de nieuwe wereld.

Interesse? We praten graag met je verder!

Heb je een vraag of wil je met ons sparren? Neem gerust contact op met Marleen Kleijn.

Wegkijken


Wegkijken

Het signaal, een vervolg waarneming

Ik heb het er al eerder over gehad, de omgang met signalen en met name het negeren van signalen. Voorbeelden zijn er te over van genegeerde signalen. Van kleine alle daagse zaken zoals een lekkende wasmachine tot het negeren van signalen die bijvoorbeeld de klimaat veranderingen aan gaan waar we momenteel met zijn allen last van hebben. Denk aan Donald Trump die doodleuk beweert dat er niets van klopt en vrolijk nieuwe steenkool contracten laat afsluiten.

Daar zit wat mij betreft een kern waarom signalen genegeerd worden of weg gemanaged worden. Een andere agenda dan die voor het grote publiek inzichtelijk is. De redenen kunnen divers zijn maar veelal economisch gedreven maar ook politiek gedreven.

Helaas maak ik dat in de IT-projecten ook mee. In talloze projecten worden signalen afgegeven maar waarop ogenschijnlijk onvoldoende op wordt geacteerd.

Regelmatig speelt de vraag door het hoofd waarom dit zo is? Mijn ervaring is dat er dan andere belangen een rol spelen die niet inzichtelijk zijn. Mensen willen perse die belangen behartigen of realiseren zonder open te staan voor de effecten op (midden) lange termijn of de risico’s die in de keten gaan ontstaan te willen zien.

De praktijk leert dat de deelnemende partijen veelal in staat zijn de ontstane brandjes te blussen waardoor de echte problematiek voor beslissers niet echt inzichtelijk wordt.

De vraag is wat hier aan te doen?

Zelf probeer ik altijd als een giraffe te kijken naar de overkoepelende zaken. Uit de signalen de rode draad destilleren en kijken wat de reacties zijn. Dat werkt meestal wel goed.

Een wat ruwere aanpak is het recht op de man af vragen wat er aan de hand is. Dat kan af en toe tot verrassende reacties leiden waar je wel tegen moet kunnen.

Eerlijk gezegd heb ik nog niet de ultieme aanpak gevonden. Mochten er lezers zijn van deze blog met mooie oplossingen dan hoor ik deze graag.

Veel inspiratie toegewenst.

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.