Softwarebedrijven in Europa lijken de laatste tijd steeds vaker te maken te krijgen met het testen van software, met name met het oog op de steeds hogere kwaliteitseisen aan softwareproducten en vraag van hun klanten. Het automatiseren van het testen van software komt hier steeds vaker in beeld, om tegemoet te komen aan de toenemende vraag op het gebied van testen. Daarnaast levert testautomatisering bijvoorbeeld een belangrijke bijdrage aan een goede DevOps omgeving.
Automatisering van testen is niet altijd een goede oplossing ten opzichte van handmatig testen, maar past heel goed wanneer er over langere periode grote aantallen (regressie) testen voor bewezen complexe software uitgevoerd moeten worden. Geautomatiseerd testen is het meest geschikt voor grote projecten; projecten waarbij dezelfde gebieden steeds opnieuw moeten worden getest en projecten die reeds een eerste handmatig testproces hebben ondergaan. De implementatie van testautomatisering voor een volwassen product kan:
De kosten efficiëntie verbeteren
De testdekking verhogen (om bijvoorbeeld fouten op te sporen)
En op lange termijn bijdragen tot hergebruik van testscripts
Wat is testautomatisering?
Zowel geautomatiseerd testen als testautomatisering zijn belangrijke onderdelen van een continu test proces. De twee soorten lijken op elkaar maar zijn niet hetzelfde.
Geautomatiseerd testenis een automatische uitvoering van specifieke testen (bijvoorbeeld een aantal regressietesten).
Testautomatisering is de automatisering van het proces van het beheren en bewaken van verschillende tests.
In de praktijk kunnen automatische testen geschikt zijn voor grote projecten, waarbij dezelfde gebieden keer op keer moeten worden getest en voor projecten die al een eerste handmatig testproces hebben ondergaan. In tegenstelling tot de traditionele ontwikkeling, waarbij het product pas aan het einde van de ontwikkel cyclus uitgebreid wordt getest, kan de invoering van testautomatisering in een IT-project, in het bijzonder in agile development met DevOps, leiden tot aanzienlijke verbeteringen.
Een laat gedetecteerde fout kan namelijk het hele project verstoren, waardoor de release van nieuwe ontwikkelingen wordt vertraagd. Vroege opsporing en voorkomen van fouten, door geautomatiseerd testen gedurende het hele traject van ontwikkeling, kan onnodige vertragingen en dure ontwikkeling voorkomen.
Starten met testautomatisering
Wanneer u wilt starten met testautomatisering, zijn er een aantal onderdelen waar u structuur in aan wilt brengen. U pakt testen automatiseren op de volgende wijze aan:
Een haalbaarheidsstudie welke gericht is op de identificatie van de gebieden welke geschikt zijn voor test automatisering en een afweging kunnen maken tussen de opbrengsten en de investeringen.
Selectie van de juiste aanpak en het gereedschap voor testautomatisering (kan ook een deel van de proof of concept zijn).
Een prototype ontwikkelen om op korte termijn de automatisering van één van de geselecteerde gebieden / functies. Hiermee kan men bewijzen dat de testautomatisering zinvol is, evenals om de aannames met betrekking tot het project te bevestigen.
Het bepalen van de geschikte distributiestrategie en het testen als onderdeel van het POC.
Uitbreiding van de dekking van geautomatiseerde tests op basis van de eerder ontwikkelde automatisering kaders.
Continue procesverbetering.
Het definiëren van de manier waarop de kwaliteit wordt vastgelegd en rapportage van de mogelijke verbeteringen.
Organiseren van korte reactietijden naar aanleiding van problemen in het proces en de aanpassingen die gewenst zijn om deze problemen op te lossen.
Wat levert het op?
Door de introductie van test automatisering krijgt de QA manager meer ruimte in zijn agenda voor andere zaken dan het dagelijks beheer en bewakingstaken. Hij kan zich meer richten op het verbeteren van het proces en de organisatie. De handmatige testers krijgen meer tijd om zich te concentreren op het creëren van effectieve testcases in plaats van het elimineren van fouten in testscripts of het uitvoeren van verkennende regressietests. Hoewel testautomatisering nooit een vervanging kan zijn voor handmatig testen, blijft het een professionele tool voor kwaliteitsborging in complexe softwareprojecten.
“Testautomatisering is altijd een afweging tussen het investeren in de automatisering van processen en wat het uiteindelijk aan efficiency en kwaliteit oplevert. Het automatiseren van testen levert niet altijd voordeel op, maar kan ook een versnelling opleveren. Investeer in een goed onderzoek naar de (on)mogelijkheden en zorg dat iemand met verstand van zaken er mee aan de slag gaat.”
Wat doet een DevOps-ingenieur in de praktijk?
Inventariseren van de bestaande automatiseringstools en programmeertalen die al in de ontwikkeling worden gebruikt.
Introductie en automatisering van workflows voor Continuous Delivery en Integration, rekening houdend met de bestaande tools en programmeertalen.
Opstellen van specificaties en documentatie.
Infrastructuurbeheer.
Scripting, codering en deelname aan productontwikkeling.
DevOps-ingenieur moet tegelijkertijd een teamspeler en teamleider zijn, aangezien de DevOps-cultuur is gebaseerd op communicatie en samenwerking.
Wat zijn de vereisten voor Addcode DevOps-ingenieurs?
Een gedegen technische achtergrond.
Ervaring met DevOps-gerelateerde automatiseringstools.