De uitdagingen van DevOps – Drie adviezen bij het opzetten van geautomatiseerd testen

De IT-wereld staat al jaren op z’n kop. Om mee te kunnen in het hoge tempo dat de markt vraagt is de manier van werken stevig aan het veranderen. In enkele jaren tijd schakelden organisaties over naar werkmethodes zoals Scrum en Agile. De topspelers ontwikkelen en beheren software tegenwoordig steeds vaker op basis van DevOps. Ze werken met een cyclisch proces van continue opleveringen in compacte bouwblokken. De verschillende stadia waar deze bouwblokken doorheen gaan zijn vaak complex, denk aan geautomatiseerd testen. De uitdagingen die dat met zich meebrengt voor IT partijen willen we graag een keer met jullie delen.

Ook Yellowtail Conclusion ging de afgelopen jaren door een transitie heen. Waar we voorheen alleen op projectbasis applicaties voor onze klanten realiseerden (en daarna belegden bij een interne beheerorganisatie), zijn we overgegaan naar een model waarbij we end-to-end oplossingen bieden. Tegenwoordig voeren we zelf volledig de regie op ontwikkelde applicaties door niet alleen het project, maar ook beheer, hosting en doorontwikkeling uit te voeren. Binnen deze transitie is het onze ambitie om meteen een DevOps werkwijze toe te passen.

Kansen en valkuilen van geautomatiseerd testen

Welke uitdagingen brengt een dergelijke transitie met zich mee? Welke kansen en valkuilen zijn we zelf tegengekomen bij geautomatiseerd testen? 

Graag delen wij drie adviezen voor het opvangen van de uitdagingen waar we zelf tegenaan gelopen zijn bij Yellowtail Conclusion tijdens het opzetten van geautomatiseerd testen met het oog op DevOps en het continu opleveren van functionaliteit.

DevOps

1. Vergeet je test-analyse niet.

Alles testen is praktisch onmogelijk, dat geldt óók voor een geautomatiseerde test. Geautomatiseerd testen gaat snel, maar er is altijd doorlooptijd en tijd voor analyse van de testresultaten nodig. De vraag is waar de grens ligt: is een geautomatiseerde test die 5 uur draait wel acceptabel? Is dat ook zo wanneer er meerdere bouwblokjes per dag getest moeten worden? 

Bij het beperken en overzichtelijk houden van de geautomatiseerde test is test-analyse en risicoanalyse een must. Hierbij stel je aan de hand van testtechnieken een efficiënte test samen, je denkt na over welke tests gecombineerd kunnen worden en wat het doel is van elke test die je uitvoert. Door deze testanalyse te doen wordt – net zoals bij handmatige testen – een geautomatiseerde test efficiënter, inzichtelijker en makkelijker te onderhouden. Bij Yellowtail Conclusion is daarom testanalyse als aparte taak gedefinieerd binnen het software ontwikkelproces.

2. Zorg dat iedereen ‘echt’ weet wat er geautomatiseerd is.

Een geautomatiseerde test is minder zichtbaar en daardoor moeten belanghebbenden vaker af gaan op de rapportage van de resultaten. Vaak gebeurt dit door een rapport beschikbaar te stellen waarin de resultaten van de geautomatiseerde test voor iedereen in te zien zijn.  

Zo’n overzicht met groen en rood over de uitgevoerde testen is prima, maar kan niet leidend zijn voor go/ no-go beslissingen. Als 3 testgevallen falen van de 100, is dat dan een no go? Wat als het alleen cosmetische bevindingen zijn? Of als blijkt dat de testomgeving trager was? Of misschien zijn de testgevallen niet goed geprogrammeerd? 

Bij een continu ontwikkelproces moeten snel beslissingen genomen kunnen worden, dat kan alleen als iedereen (ook management, product owner en stakeholders) weten wát er getest wordt, waarom en welke risico’s daarmee afgedekt worden. Alleen een overzicht van de testresultaten is dan niet genoeg. Presenteer daarom regelmatig over geautomatiseerde testen, neem bijvoorbeeld geautomatiseerd testen op als vast rapportage item. Betrek de belanghebbenden bij geautomatiseerd testen en de voortgang daarvan en leg duidelijk uit wat wel en niet uit de rapportage is af te leiden.

3. Plan een test automatisering “APK”.

Een geautomatiseerde test kent regulier- en groot onderhoud. Bij regulier onderhoud kun je denken aan onderhoud dat nodig is aan de test door RFC’s of nieuwe requirements. 

Bij elke nieuwe functionaliteit moet de geautomatiseerde test bijgewerkt worden: om de juiste controles te blijven uitvoeren of om nieuwe functionaliteit ook te testen. 

Naast dit reguliere onderhoud is het aan te raden om periodiek “groot” onderhoud in te plannen: een APK voor de geautomatiseerde test. Wees niet bang om een geautomatiseerde test eventueel opnieuw op te zetten.

Tooling hieromtrent is volop in ontwikkeling, wat een jaar geleden goed aansloot op de applicatie kan nu ingehaald zijn: vooral voor DevOps gaat deze ontwikkeling snel. Geautomatiseerde test-tools wijzigen en komen met nieuwe, verbeterde functies. 

Omdat snelheid bij DevOps belangrijk is, moet de geautomatiseerde test zo snel en efficiënt mogelijk blijven en daar is onderhoud voor nodig. Daarnaast heeft een geautomatiseerde test de neiging uit te groeien tot een black box waardoor het lastig te zien is wat er getest wordt en met welk doel. Een eerder gekozen opzet wat betreft testdata of afhankelijkheden kan niet meer de beste zijn (denk bijvoorbeeld aan gebruikte tags voor zoeken en naamgeving). Met name binnen een continu ontwikkelproces is het belangrijk dat het hele DevOps team inzicht heeft in wát er getest wordt (zie eerder beschreven advies). 

Om de geautomatiseerde test bij Yellowtail Conclusion inzichtelijk, efficiënt en zo snel mogelijk te houden plannen wij elke 6 maanden een evaluatie en “groot” onderhoud op onze geautomatiseerde testen. 

Nieuwsgierig geworden naar onze visie op bovenstaande manier van werken en wat dit voor uw business kan betekenen? Neem dan vrijblijvend contact op met: Marcel Duijnisveld (mduijnisveld@yellowtail.nl), Meike van Dam (mvandam@yellowtail.nl) of Joppe Curvers (jcurvers@yellowtail.nl).