Home ongecategoriseerd DevOps eisen aan testautomatisering

DevOps eisen aan testautomatisering

59
Testautomatisering

Door de toenemende druk op organisaties om alsmaar sneller goed werkende software uit te rollen zijn DevOps en Continuous Delivery inmiddels de standaard.  Uit het ‘Continuous Testing Report 2019’ van Cap Gemini blijkt dat 58% van de bedrijven dagelijks nieuwe software in de lucht brengen waarvan 29% zelfs elk uur.

Het grootste knelpunt blijkt de afstemming van het agile ontwikkelproces met de testprocessen. Continuous Testing is in opmars maar slechts 32% van de bedrijven blijkt dit operationeel goed onder controle te hebben. Ik beveel een download ervan zeker aan…

De waterval methode en Agile ontwikkelen

Voor de opkomst van het agile ontwikkelen werden de ontwikkeltrajecten uitgevoerd volgens de watervalmethode. Bij deze manier van werken had elke discipline een duidelijk omschreven rol in het traject en ieder traject een min of meer vaste volgorde. Na het tot in detail beschrijven van alle requirements volgde het ontwikkelen van de software, waarna de testers los mochten op het opgeleverde product.

Bij Agile/DevOps zijn deze vaste rollen er in mindere mate en werk je in korte sprints van 2-3 weken waarin alle disciplines terugkomen; scoping, ontwikkelen, testen, enzovoort. Het werken in korte iteraties en het ontbreken van een speciale testfase blijkt in de praktijk een stevige uitdaging voor het testen.

Door te werken met sprints zal de functionaliteit van de software toenemen naarmate er meer sprints worden voltooid. Ervan uitgaande dat het project niet wordt aangevuld met extra testresources, betekent dit in de praktijk dat er tijdens elke sprint alleen tijd is om de recent ontwikkelde functies te testen. Men zal dus niet of nauwelijks in staat zal zijn regressietests, oftewel testen of de nieuw gebouwde functionaliteit van invloed is op bestaande functionaliteit, uit te voeren.

Het regressietest probleem is een bekend probleem bij de ontwikkeling van software en Agile ontwikkelen heeft dat er niet makkelijker op gemaakt.

Regressie testen automatiseren

Meer testers aannemen is een voor de hand liggende optie, maar niet de meest zinvolle/verstandige. Dit zal de projectkosten namelijk dramatisch verhogen en is bovendien geen schaalbare oplossing. Er blijft dus eigenlijk maar één realistische optie over: automatisering.

Met testautomatisering worden robots geïnstrueerd om de repetitieve, voorspelbare testscripts uit te voeren, zodat testers zich kunnen concentreren op het testen van de nieuwe functies van de laatste sprint.

Met geïmplementeerde testautomatisering zijn het dus nog steeds de testers zelf zijn die testcases ontwerpen en de resultaten monitoren, maar de belangrijkste regressie-inspanningen worden uitgevoerd door robots.

DevOps eisen aan een platform voor Test Automatisering

Er is een aantal eisen waarvan een dergelijk platform moet voldoen vanuit DevOps perspectief:

Integratie:
Zorg ervoor dat het platform eenvoudig is te integreren met uw Continuous Delivery (CD) pijplijn. Er moet een tool komen met relevante plug-ins voor de meest gangbare pijplijn-orchestrators (Jenkins, Atlassian Bamboo, TFS/VSTO, and TeamCity) en / of goed gedocumenteerde API’s, zodat de orchestrator het platform voor testautomatisering kan besturen.

Doorlooptijd:
In een volledig geautomatiseerde CD pijplijn is de tijd die nodig is om tests uit te voeren cruciaal. Als het 48 uur duurt om alle testcases uit te voeren, is de CD pijplijn niet optimaal en zal deze in de praktijk niet werken. Zorg ervoor dat het testautomatisering-platform de uitvoering van testcases kan opschalen (parallel testen) om de doorlooptijd tot een minimum te beperken.

Controle en flexibiliteit:
Succesvolle automatisering vereist een hoge mate van flexibiliteit. Een platform voor testautomatisering moet het gemakkelijk maken om verschillende verzamelingen testcases te definiëren en uit te voeren:
 – in verschillende omgevingen;
 – voor verschillende doeleinden;
– en op verschillende tijdstippen.

Selenium IDE

Een zeer veel gebruikte tool voor het automatisch testen van websites en webapplicaties is Selenium IDE. Selenium IDE is een open source tool voor het registreren en afspelen van taken voor eenvoudige webapplicaties. Het maakt gebruik van Selenium WebDriver, ’s werelds meest populaire open-source framework voor het automatiseren van browsers. Selenium kan worden gebruikt om elke actie die in een browser wordt uitgevoerd, native te activeren, wat betekent dat het op knoppen kan klikken en tekst in velden kan invoeren, net zoals een echte gebruiker dat zou doen.

Hoewel Selenium WebDriver een uitstekend framework is voor professionele programmeurs voor het automatiseren van zakelijke web toepassingen, heeft Selenium IDE een beperkte reikwijdte. Het is gericht op gebruikers met HTML-kennis die een snelle manier nodig hebben om eenvoudige web toepassingen op te nemen en af te spelen, en werkt als een browserextensie in Chrome en Firefox.

Het probleem is dat testers geen programmeurs zijn. Bovendien kost het coderen veel tijd van de primaire functie van testers. Het onderhoud van de scripts, met name in de grotere omgevingen, veroorzaakt de grootste problemen.

No code testautomatisering

LEAPWORKis het enige No Code platform voor testautomatisering en maakt onder de oppervlakte gebruik van Selenium WebDriver.

LEAPWORK heeft eenvoudig te gebruiken bouwstenen en de tester hoeft geen enkele regel code te lezen of te schrijven. De test cases worden volledig visueel opgebouwd. Perfect voor niet-technische gebruikers – of voor iedereen die gewoon geen tijd wil besteden aan programmeren – en sluit dus naadloos aan bij de trend van No/Low Code ontwikkelplatformen als OutSystems en Betty Blocks.
Met een dergelijk platform kan het testen qua tempo mee met de snelheid van ontwikkelen en wordt de capaciteit van de testers efficiënter ingezet.

Conclusie

Het testen van software in een Agile/DevOps omgeving is niet eenvoudig en heeft een stevige impact op de projectkosten. Belangrijk punt om in het oog te houden is dat het testen de snelheid van ontwikkelen kan bijhouden, anders gaan de kosten van herstelwerkzaamheden exponentieel omhoog.

Test automatisering zal het aantal fouten verminderen, de benodigde capaciteit aanvaardbaar houden en de schaalbaarheid brengen die met manueel testen niet haalbaar is. Het Selenium framework is een goede eerste stap in test automatisering.

Wil je echt stappen maken en Continuous Testing onderdeel laten zijn van je Continuous Delivery/Integration proces dan is No Code test automatisering, waar ook de business users een bijdrage kunnen leveren, een stevige en noodzakelijke stap voorwaarts!

Evert Jan Bos, Business Development Manager bij Inforza Information Technologie

LAAT EEN REACTIE ACHTER

Please enter your comment!
Please enter your name here