Test Automation:

bijna alles wat u moet weten

Als uw werk betrekking heeft op interacties met software development of quality assurance software testing, bent u waarschijnlijk niet onbekend met de term test automation of automated testing.

Om software testing zelfs met de moderne development methoden van Agile en DevOps bij te kunnen houden of om te kunnen omgaan met ontwikkelingspraktijken, zoals Continuous Integration en Continuous Delivery (CI/CD), is automation verplicht. 

Test automatisation is vrij nieuw en evolueert voortdurend naarmate tools en processen worden gecreëerd om dit te ondersteunen. Om deze reden hebben we bij spriteCloud besloten om deze bron van onze test automation kennis te creëren. Deze pagina zal blijven veranderen, terwijl we deze updaten met onze kennis en ervaring op het gebied van test automation. Het zal het onderwerp test automation in grote lijnen behandelen met waar mogelijk links naar diepgaande berichten en artikelen.  

Als je op deze pagina bent beland om hulp te krijgen bij de implementatie van test automation in je development project, overweeg dan om contact met spriteCloud op te nemen om hulp aan te vragen met betrekking tot test automation training en hulp bij het instellen van test suite. U kunt ook automation uitbesteden aan onze experts. 

Deel deze gids:

Inhoud

Section 1

Wat is Test Automation?

Test automation betekent het gebruik van automatisering tools om vooraf gescripte tests uit te voeren. Geautomatiseerde software wordt gebruikt om vooraf bepaalde functies van het System Under Test (SUT) te testen om te controleren of een applicatie correct functioneert nadat wijzigingen zijn doorgevoerd.   

Test automation is erg handig, omdat het enkel de noodzakelijke, maar repetitieve taken van reeds uitgevoerde testing processes kan automatiseren. Ze zijn ook nuttig bij het uitvoeren van aanvullende tests die handmatig, moeilijk of tijdrovend zouden zijn.

Nadat de eerste manual tests zijn voltooid, wordt test automation geïmplementeerd. Een testscript (meestal in een programmeer- of scripttaal geschreven) wordt gebruikt om door de SUT te navigeren en om vooraf gedefinieerde verwachte resultaten te vergelijken met werkelijke resultaten. Deze resultaten worden vastgelegd in een test log en de scripts kunnen gewijzigd of hergebruikt worden om aanvullende scenario’s door het hele systeem uit te voeren. 

Manual testing identificeert de methode of het proces van hoe een functie moet worden getest. Vervolgens wordt een script geschreven, zodat het automatisch kan worden uitgevoerd. Schaal dit op tot tientallen of honderden testscripts en je hebt een test automation suite waarmee je je software development effectief kunt volgen met weinig menselijke tussenkomst. De verschillen tussen manual testen en test automatisering worden later besproken. 

Automation is nu een zeer cruciaal onderdeel van de software development lifecycles, omdat het frequent en efficiënt testen van bedrijfskritische functies mogelijk maakt die passen bij de snelheid die nodig is in moderne software development projects. Automated testing is bedoeld om software testing sneller en efficiënter te maken in repetitieve en moeilijke gebieden en niet om manual testing volledig te vervangen.   

Nu we een beter beeld van test automation hebben gekregen en weten wat het inhoudt, is het nu belangrijk om te begrijpen waarom, met alle mogelijke kostenoverschrijdingen en moeilijkheden, test automation belangrijk is voor software ontwikkelings projects.

Section 2

Waarom Test Automation?

Het doel van een software development team is om software te leveren die werkt zoals werd verwacht, maar dit is niet altijd zo even eenvoudig als men denkt. Door het snelle development ritme, de grote teams van developers en de beperkte kosten, zullen defecten er steevast doorheen glippen. Vervolgens verschuift een defect door naar de productieomgeving en dit kan resulteren in:

  • Geldverlies;
  • Tijdverlies;
  • Verlies van zakelijke reputatie;
  • Letsel of overlijden.
Introduction of Defects at Different Development Stages

De kosten die vervolgens gepaard gaan met het herstellen van software defect (bugs, dus) zijn vaak afhankelijk van de fase van het development process waarin de defecten zijn ontdekt. Zoals weergeven in de bovenstaande afbeelding, worden de meeste defecten tijdens de coding phase geïntroduceerd. De rode lijn geeft weer dat latere gevonden defecten meer kosten om ze uiteindelijk op te lossen. Idealiter willen testers tijdens unit testing zoveel mogelijk defecten vinden die nog relatief goedkoop zijn. Hierbij komen de concepten automation en specifiek test driven development om de hoek kijken 

Manual testing is misschien wel het meest grondige proces om defecten op te sporen, maar het is ongelooflijk tijdrovend voor een tester om handmatig resultaten te testen en vast te leggen op de schaal en reikwijdte van moderne software development projects. 

Het automatiseren van tests is daarom de beste manier om de snelheid, efficiëntie, effectiviteit en dekking van uw software testing inspanning te verhogen. Met test automation kan uw team meer tests in minder tijd uitvoeren, menselijke testers vrijmaken voor testen op hoog niveau en de dekking vergroten. Automated tests kunnen ook buiten de werkuren worden uitgevoerd om de impact op andere belanghebbenden van het project te minimaliseren. 

Om deze redenen wordt test automation als cruciaal beschouwd voor grote software development organisaties. Naarmate de markt voor test automation diverser wordt, dalen de kosten, waardoor dit betaalbaarder wordt voor kleinere organisaties. 

Test automation heeft nog steeds barrières waardoor organisaties ervan worden weerhouden om het te adopteren. Software testing serviceproviders als spriteCloud kunnen development teams op verschillende manieren helpen met test automation. spriteCloud kan als adviseur werken door te helpen bij het opzetten van uw automation suite en door uw personeel op te leiden, met het idee om het over te dragen aan uw teamgenoot. Als alternatief kan spriteCloud uw test automation processen volledig overnemen, zodat uw team zich kan concentreren op ontwikkeling. We noemen dit vaak Test Automation as a Service (TAaaS). Lees meer over de test automation services van spriteCloud

Er zijn ook steeds meer geen en low-code oplossingen beschikbaar, hoewel ze vaak beperkt blijven tot specifieke ecosystemen. 

Lees dit bericht van onze Chief Technology Officer, Mark, voor een meer gedetailleerde uitleg van test automation, inclusief de vereiste competenties, ontwikkelingsrichtlijnen en automation implementation timelines   

Section 3

De verschillen tussen manual testing en test automation​

Hoewel test automation duidelijk voordelen heeft, is het nog geen vervanging voor manual testing. Het is een dwaas idee om handmatig testen volledig te vervangen door automated testing. Test automation is een proces en toolset voor het ondersteunen en verhogen van de efficiëntie van testen. Test automation is ontworpen om gemakkelijk herhaalbare tests uit te voeren en deze veel sneller uit te voeren voor de tester. 

Op deze manier wordt een voortester wat tijd bespaard om de dekking van de tests te vergroten via exploratory testing. De tijd van een (manual) tester wordt dan meestal verdeeld tussen het ontwikkelen en onderhouden van testscripts. Onderhoud kost 80% van de tijd en het uitvoeren van manual (exploratory) testing bedraagt 20% van de tijd. Met moderne Agile- en DevOps-methodologieën is test automation een belangrijkere tool in de quality assurance toolbox, maar het vereist nog steeds een operator.

Benieuwd naar de verschillen tussen manual testing en automated testing? Lees meer over de verschillen tussen manual testing en test automation in ons uitgebreide artikel. 

Section 4

De voor- en nadelen van test automation​

Zoals bij alle processen, heeft test automation een dualiteit. Als het correct wordt uitgevoerd, kan automation de prestaties van uw testing team aanzienlijk verbeteren. Aan de andere kant kan test automation ook een uitdaging zijn om het te implementeren en de kosten onder controle te houden, vooral met een onervaren team en te ambitieuze projectmanagers. Hieronder staan enkele van de meer prominente voor- en nadelen van automation. Voor een meer diepgaande analyse van de voor- en nadelen van test automation lees dan verder op ons artikel over dit onderwerp.

De voordelen van test automation:

  1. Bespaart tijd en geld;  
  2. Verhoogt de testdekking;  
  3. Verbetert de nauwkeurigheid; 
  4. Maakt grotere schaal van testen mogelijk; 
  5. Helpt zowel ontwikkelaars als testers;  
  6. Verbetert het moreel.

De nadelen van test automation:

  1. De rol van TA verkeerd begrijpen;  
  2. Kwaliteitsproblemen;  
  3. Onderhoudskosten;  
  4. Vaardigheid in het schrijven van scripts. 
  •  
Section 5

Test automation​ beste praktijken

Je kunt je leercurve verkorten door het delen van de best practices door automation in jouw development process in te stellen. Hier vind je enkele punten waarmee je rekening moet houden bij het plannen van uw test automation strategy. Verder kan je lezen over best practices voor test automation en overwegen om een ervaren organisatie in te huren om uw team te helpen om goed te starten. Hier zijn enkele praktische tips om te overwegen:

  1. Huur of creëer een toegewijd team;  
  2. Maak tests met het oog op betrouwbaarheid en onderhoudbaarheid; 
  3. Ontwikkel onafhankelijke en modulaire testcases;  
  4. Maak iedereen verantwoordelijk voor test automation;  
  5. Evalueer de tools ruim voordat u ze implementeert (lees meer in onze sectie tools en framework reviews); 
  6. Baseer test scripts op goede manual tests;  
  7. Gebruik waar mogelijk alternatieven voor UI-tests (omdat ze duur en schilferig zijn);  
  8. Test vroeg en test vaak en binnen redelijke grenzen. 

Als u hier niet klaar voor bent, omdat u niet zeker weet hoe u automation moet implementeren, kan spriteCloud jou helpen bij het opzetten van een test automation suite en uw testers trainen met onze test automation consultancy services.

Section 6

Test automation strategie​

Test automation is, net zoals alle andere processen, een medaille met twee kanten. Als het correct wordt uitgevoerd, kan automation de prestaties van uw testteam aanzienlijk verbeteren. Aan de andere kant kan automated testing ook een uitdaging zijn om het te implementeren en de kosten onder controle te houden en dat vooral met een onervaren team en te ambitieuze projectmanagers.

Uw strategie moet zich richten op het voorkomen van defecten die in de applicatie worden geïntroduceerd in plaats van op het louter detecteren van deze defecten. Dit komt doordat een defect dat is ontdekt in de eerdere Unit test fases, veel gemakkelijker te corrigeren is dan wanneer het later wordt aangetroffen, bijvoorbeeld tijdens UI-testen. Door deze kwaliteit boven kwantiteit te plaatsen, mag een nieuw ontwikkelde functie in een applicatie geen regression defects veroorzaken. Met andere woorden, een uitgave met één functie die volledig functioneert en zonder defecten is veel beter dan een uitgave met veel slechte eigenschappen. 

Tests robuust en flexibel houden (door ervoor te zorgen dat ze modulair van aard zijn en minder snel kapot gaan naarmate de complexiteit van de code toeneemt) is een proces dat vanaf het begin in uw automation strategy moet worden ingebouwd. In onze post over het werken met complexe workflows in Cucumber, geven we enkele tips voor het schrijven van test cases die gemakkelijk te onderhouden en hergebruiken zijn. 

Naarmate het project groeit en het systeem onder test (SUT) verandert, zullen de test cases en testscripts gaan afwijken en meer valse fouten veroorzaken, omdat ze het systeem minder nauwkeurig testen. Testtijd en -kosten stapelen zich op naarmate de tests die nodig zijn om een goed werkend systeem te garanderen, voortdurend worden aangevuld. Terwijl ontwikkelaars werken aan de ontwikkeling van een nieuwe functie (een klein deel van de code), moeten testers de hele code base opnieuw testen op defecten die door deze nieuwe code worden veroorzaakt. Elke release zorgt ervoor dat de codebase groter en groter wordt en bovendien is dit moeilijker te testen.

Showing the extra workload testers face at each sprint

Een goede automation strategy moet daarom rekening houden met het besef dat testgevallen zich zullen opstapelen en dat testen een knelpunt zullen creëren, als ze niet goed worden gepland en geanticipeerd.

Het doel van test automation is niet om manual testing te vervangen, maar om repetitieve taken te automatiseren, waardoor deze steeds groter wordende behoefte aan meer tests beheersbaar wordt. Het automatiseren van 80% van het testen en het handmatig testen van 20% zou een goede vuistregel moeten zijn. Naarmate het testen in complexiteit groeit naarmate het ontwikkelingsproject vordert, is het in een vroeg stadium belangrijk om goede beslissingen te nemen over automatisering. Om deze reden is het inhuren van experts of een consultancy organisation om te helpen bij het opzetten van test suites eigenlijk zeer kosteneffectief. 

De test automation pyramid

De test automation pyramid is een handige gids voor uw strategie. Deze piramide die in combinatie met de afbeelding in sectie twee wordt gebruikt, geeft een goed begrip van waar de testmiddelen van een project op moeten worden gericht voor een maximaal rendement op de investering. Naarmate u van de basis van de piramide naar de top gaat, worden tests tijdrovender, duurder en vatbaarder voor mislukking. Unit-tests moeten het merendeel van de uitgevoerde tests vertegenwoordigen, terwijl UI-tests minder vaak worden uitgevoerd.

The Test Pryamid, Again

Unit-tests zijn een belangrijk onderdeel van het schrijven van kwaliteitscode en dit type test wordt meestal door developers gedaan. Met behulp van de test-driven development (TDD) -strategie worden testcases geschreven voordat code wordt geschreven, waardoor dit de goede basis vormt voor uw automation strategy. Dit is de snelste manier voor een ontwikkelaar om erachter te komen dat de nieuwe code bestaande code heeft verbroken. Vanwege de snelle feedback en het eenvoudige karakter van de unit-test, moeten deze zo vaak mogelijk worden uitgevoerd.

API- of end-to-end-tests komen daarna in termen van frequentie en tijdsbesteding. Deze geautomatiseerde test layers worden gebruikt om de bedrijfslogica te testen zonder de gebruikersinterface (UI) te betrekken, wat meer complicaties kan veroorzaken. De meeste zaken van jouw code zouden getest kunnen worden door de vorige lagen van de piramide. 

User Interface (UI)-tests zijn vatbaarder voor valse fouten en zijn trager uit te voeren. Daarom is een juiste basis gecreëerd door de andere lagen in de test automation pyramide cruciaal en zal dit tijd, moeite en hoofdpijn besparen. 

Zoekt u enkele tips voor het debuggen jouw driver test automation scripts, doe dit dan via de opdrachtregel.  

Section 7

Test automation voor mobiele applicaties

De kans dat uw product of dienst ook via een mobiele applicatie moet worden gebruik, is vrij groot en wordt in de toekomst alleen maar groter. Test automation voor mobiele applicaties lijkt sterk op conventionele test automation, behalve dat de applicatie verschillende benaderingen hanteert en dat de tools verschillen voor het testen van die applicaties. 

Mobiele apps worden doorgaans op drie manieren aangeboden: 

  • Native: geïntegreerd in de apparaten en inhoud opgeslagen op het apparaat. Het is snel maar moeilijker te ontwikkelen en te testen.  
  • Web: ontworpen om eruit te zien als een native app, maar beperkt tot het weergeven van inhoud via een webbrowser. Hierdoor is het langzamer om inhoud weer te geven.  
  • Hybride: het beste van twee werelden, maar nog steeds afhankelijk van browser speeds  internetverbinding. 

Als u testing tools voor mobiele applicaties bekijkt, zal u doorgaans twee smaken tegenkomen:

  • Open-source tools, zoals Appium en Robotium.  
  • Tools op bedrijfsniveau, zoals SeeTest en Eggplant. 

De principes achter automation zijn vergelijkbaar, maar vereisen verschillende tools voor mobiele applicaties. Voor een meer diepgaande kijk op tools voor mobile applications automated testing, lees ons artikel over Mobile Automation Testing Tools.  

Test automatisering voor mobiele applicaties met Appium

We geven de voorkeur aan Appium als de mobiele applicaties getest moeten worden, tenzij onze klant natuurlijk een andere tool nodig heeft. Onze favoriete test stack bij spriteCloud is Cucumber / Gherkin, Ruby en (in het geval van automated testing voor mobiele apps) Appium.

Appium is geweldig voor mobiele apps, omdat zowel native als hybride apps getest kunnen worden voor Android als IOS. Dit betekent dat testers wat tijd kunnen besparen door de code te hergebruiken voor het testen van beide besturingssystemen. We houden zoveel van Ruby en Appium dat we een driedelig serie hebben geschreven om je te begeleiden bij het instellen en gebruiken van de stack.

 

Section 8

Test automation in CI/CD

Concurrerend zijn in een lucratieve software markt, betekent tegenwoordig sneller nieuwe producten en diensten bouwen dan andere organisaties. Software wordt ook complexer naarmate er meer integraties en functionaliteiten worden verwacht. Deze behoefte aan meer concurrentievoordeel heeft geleid tot de toegenomen acceptatie van methodologieën om de ontwikkeling te versnellen, zoals Agile en DevOps. Helaas, zoals blijkt uit enkele spraakmakende softwarefouten, leidt de behoefte aan snellere development cycles vaak tot een toename van defecten.

Wanneer softwareontwikkeling versnelt, moet het testen van software ook toenemen en test automation is de sleutel om te voldoen aan de eisen van snellere development cyclus door het gebruik van Continuous Integrations and Continuous Delivery (CI / CD) -pipelines. Door test automation voor CI / CD-pipelines toe te passen, kunnen ontwikkelteams snel testen en vroeg testen. 

Neem even de tijd om ons uitgebreide artikel te lezen over waarom test automation essentieel is in een CI / CD-pipeline en leer enkele tips die kunnen helpen bij het opzetten van test automation. 

Section 9

Test Automation Tools en Frameworks

Aan de ene kant is automated testing een krachtig proces dat de prestaties en testdekking van uw ontwikkelingsteam aanzienlijk kan verbeteren. Aan de andere kant kan automation moeilijk te implementeren, onderhouden en binnen het budget blijven, vooral met onervaren teams en te ambitieuze project managers. Zelfs gezien de uitdagingen van automation, als het goed wordt gedaan, kunnen de voordelen van test automation enorm opwegen tegen de risico’s van een fout. 

U leest dit misschien als een ervaren automation engineer die onderzoek doet naar de vele automation tools en frameworks, of als een nieuwkomer in het testen van automation, in de hoop alles te begrijpen. Wat uw ervaringsniveau ook is, we hopen dat deze verzameling recensies en demo’s die door ons team van a zijn gemaakt, nuttige automation engineers voor u zullen zijn. Bij spriteCloud houden we van open-source tools en daarom besteden we waar nodig veel tijd aan het werken met deze tools. Onze favoriete open-source test stack is het gebruik van Cucumber en Gherkin. We hebben veel geschreven over Cucumber en Gherkin, en dit hebben we omgezet in een handleiding die u kunt gebruiken.

Bij spriteCloud leveren we quality assurance consultant, software testen en cybersecurity services aan klanten variërend in grootte van kleine start-ups / scale-ups tot multinationale ondernemingen. Omdat een van onze kerndisciplines test automation is, vinden we het belangrijk om onze in-house kennis over automation te behouden en te ontwikkelen. We moedigen onze test engineers aan om hun kennis van tools, talen en processen voortdurend uit te breiden. 

De automation engineers van spriteCloud hebben de mogelijkheid om met veel bedrijven in veel verschillende industrieën te werken, wat resulteert in zeer uiteenlopende ervaringen. We zijn ook een organisatie zonder gereedschap, wat betekent dat wanneer we naar een klant gaan, we elk gereedschap gebruiken waarmee ze werken. Dit betekent dat onze engineers voortdurend nieuwe tools en frameworks moeten leren. 

Als u een beoordeling van een test automation tool of -kader wil aanvragen, gebruik dan het formulier op de contactpagina om dit te doen.

Hieronder vindt u onze beoordelingen van test automation tools en frameworks.

Calliope Pro

Nu we het toch over test automation tools hebben, is onze DevOps-tool voor het monitoren van testresultaten het perfecte compliment voor uw TA-praktijken. Zijn tool en framework zijn agnostisch, wat betekent dat het de meeste belangrijke test frameworks ondersteunt. Calliope pro is gemaakt door testers, voor testers, zodat u uw testresultaten als verhaal kunt vertellen en de feedbackcyclus kunt verkorten. 

A glimpse at the calliope reporting tool

Calliope Pro is voor jouw ontwikkelingsteam de enige locatie om testresultaten te delen, te vergelijken en te bewaken om zo snel en duidelijk de status van uw code te begrijpen en regressies te identificeren. Probeer vandaag nog Calliope Pro en ontdek de kracht van samenwerking. Lees meer over Calliope Pro

Section 10

Testing titans interview serie

Soms voelt het alsof testen nooit liefde krijgt en dat alle glorie naar de ontwikkelaars gaat. Onze Testing Titans-interviewreeks probeert dit te corrigeren door de sluier van de software testing wereld op te lichten en een licht te laten schijnen op de concepten, tools en mensen die de industrie vormgeven. Software testing en quality assurance zijn een cruciaal aspect van software development en moeten als zodanig worden behandeld. 

In onze interviewreeks kun je uitkijken naar interviews van zeer ervaren en invloedrijke experts op het gebied van DevOps, test automation, cybersecurity en softwareontwikkeling – allemaal vanuit het perspectief van software testing. Bekijk hieronder enkele van onze huidige interviews.  



Stay up-to-date on all things quality assurance, test automation, and cybersecurity.

Subscribe to our mailing list!