Browser Automation Tools: Welke kies je?

Nadat ik even op het internet heb rondgestruind, vacatures bekeken heb en de markt heb verkend kan ik rustig zeggen dat er een bizar aantal browser test-automation tools op de markt zijn. Als je een nieuw project begint: welke heb je dan in vredesnaam nodig? Ga je voor de meest gebruikte tool, of zijn er andere beweegredenen?

De Meest gebruikte Testtool is…

Selenium Webdriver. Er zijn vele tools die door de jaren heen gezegd hebben ‘Selenium Webdriver wel even van de troon te stoten’. Maar nu in 2021 is Selenium Webdriver na meer dan 10 jaar nog steeds de nummer 1, eenzaam aan de top. Het levert wel wat marktaandeel in door de grote influx van nieuwe automation tools die claimen makkelijker, sneller en beter te zijn, en in sommige gevallen is dit ook absoluut waar. Maar zelfs dan werkt nog steeds zo’n 75% van de test automatiseerders met Selenium Webdriver volgens Applitools.com. Volgens het Test Automation Landscape 2020 rapport ligt het gebruik eerder rond de 54%. De waarheid zal wel ergens tussenin liggen, maar in alle rapporten die ik heb gezien, staat Selenium Webdriver altijd bovenaan. Doordat zoveel van ons werken met Selenium Webdriver, is het ook makkelijk hulp te vinden bij complexe testproblemen. Dat is, denk ik, een van de redenen waarom de tool zo populair blijft. Ook helpt het dat alle grote browsers en een groot scala aan de meest gebruikte programmeertalen worden ondersteund door Selenium Webdriver.

En JavaScript dan?
Als we puur en alleen kijken naar Javascript, is volgens Applitools 47% van de gebruikers aanhanger van Cypress, ondanks dat het een vrij nieuwe tool is in vergelijking met de hierboven genoemde. Cypress timmert hard aan de weg en wordt steeds groter en handiger. De overige 53% van de JavaScript wereld wordt onderverdeeld in:
– WebdriverIO: 25%
– WebDriverJS: 23%
– TestCafe: 5%

Snelle searches naar Javascript FE Automation Tools levert een enorm scala aan verschillende software op. Protractor en Jest zijn blijkbaar vrij populair onder gebruikers als we Saucelabs en Codeburst mogen geloven, maar die worden door het applitools onderzoek niet meegenomen, dus neem deze percentages met een korrel zout.

Edit: aan het einde van 2022 wordt Protractor niet meer ondersteund volgens de ontwikkelaars.

“I’m not a robot…”


En de rest?
Hieronder een lijst van 59 van de testautomation tools, opgesteld door de Testingguild. Dit is geen complete lijst en is in willekeurige volgorde:

Selenium WebDriver
Cucumber
Serenity
UFT/QTP
UFT Developer (Formally named LeanFT)
Automation Anywhere
TestComplete
SpecFlow
Sikuli
AutoIt
Applitools
Watir
Powershell
qTest
Appium
Robot Framework
Ca Agile Designer
GraphWalker
Ranorex
HipTest
Oracle Application Testing Suite (OATS)
TestingWhiz
TestCafe
accelQ
Bellatrix
OpenTest
Oxygen
Boozang
TestProject
LEAPWORK
21Labs
GameDriver
Playwright
Pylenium.io
SeleniumBase
EndTest
Appsurify
Smashtest
Selenide
Scriptworks
Information
Galen
Tricentis
Espresso
TestIm
Cypress.io
WebDriver.IO
Mabl
Jest
Katalon Studio
Progress (Telerik)
Sahi
Gauge
RedwoodHQ
WinAppDriver
IBM Rational Functional Tester
Test.AI
Worksoft
TestArchitect
Eggplant

Zoals je al merkt zijn er nogal een aantal tooltjes te downloaden…

SpecFlow and WatiN Worst Practices: What *NOT* to do | Volare Systems
Ik heb na al die jaren nog steeds een voorkeur… Sorry, not sorry.

59?! Hoe selecteer je uiteindelijk de beste tool dat je project nodig heeft?

Voor we hier in duiken is het belangrijk te snappen, dat wat het internet ook dicteert dat je zou moeten gebruiken, misschien voor jouw project de meest gekozen tool niet de beste is. Vertrouw je test-instinct en bekijk andere tools. Misschien dat de meest voor de hand liggende tool nou net een belangrijk aspect van jouw project niet aankan, dan is het misschien beter om door te zoeken…

Allereerst, kijk naar de tests die geautomatiseerd moeten worden. Hebben we het over back-end tests? Ga je vooral in de Front-end testen? Voornamelijk API’s? Websites? Vervolgens doe je onderzoek naar, en analyseer je de automation tools die deze tests daadwerkelijk kunnen automatiseren. Weeg naast functionaliteit hier ook budget in mee. Postman is een fantastische tool, maar als je uiteindelijk inlog procedures moet testen met de gebruiker in het achterhoofd, zul je toch echt ook met een frond-end automation tool aan de slag moeten. Maar hou ook rekening met de taal; Als het complete project in Java wordt geschreven, ga dan niet de test automation schrijven in Javascript. Als er een front-end staat in .Net core, allicht zul je dan zeker SpecFlow mee willen nemen. Maak een lijst met tools die hier aan voldoen.

Requirements tijd! Als je kijkt naar je opgestelde lijst, welke voldoen aan je specifieke requirements? Kan dat met de tools? Is de ene tool beter hier in dan andere? Kijk naar de platformen, licentie kosten, open source of juist niet, behavior driven of juist niet, overdraagbaarheid, klant-preferentie, eventuele trainingskosten, hard en software requirements en support van de tool-leverancier. Door opties te elimineren wordt je lijst steeds korter en korter, tot je er twee of drie overhoudt. Deze tools zijn de beste kandidaat voor een pilot.

Sales Funnel Maken: Complete Uitleg, Voorbeelden & Templates [HowTo] |  Bedrijvenconsultant
Een grote lijst wordt door de Process of Elimiation steeds behapbaarder…

Kijk naar hoe snel je je deze tools eigen kan maken, kijk naar robuustheid en of de tool complexe problemen ook kan testen. Worden je requirements allemaal afgetikt? Of het overgrote deel? Kun je daar mee leven?

Bespreek de mogelijkheden met je team (en je stakeholders) en kies samen de beste. Als iedereen het er mee eens is kun je door gaan met het daadwerkelijke automatiseren! Ik kan niet genoeg benoemen dat het belangrijk is om je team mee te krijgen in je keuze! Immers, in een goed draaiend team moeten zij er ook mee kunnen werken en als ze er niet achterstaan is de kans aanzienlijk groot dat je project crasht zodra je hun hulp nodig hebt. Stakeholders moeten benaderd worden zodra er dingen als geld bij komen kijken. Sommige tools zijn betaald en ik ga er voor het gemak vanuit dat je dit niet zelf wilt betalen…

Concluderend: Er is geen beste tool op de markt. Je moet zelf de beste tool vinden voor jouw eigen test automatisering project doeleinde en dat kan erg simpel zijn of bizar ingewikkeld. De truc is van te voren genoeg te weten over je project en je requirements voor je testdoeleinde helder te hebben.

Bronnen:
https://applitools.com/blog/2020-front-end-automation-testing
– https://www.cypress.io/
– https://www.selenium.dev/documentation/en/webdriver/
https://codeburst.io/top-5-javascript-testing-frameworks-to-choose-out-of-in-2020-6903ae94461e
https://saucelabs.com/blog/top-5-javascript-test-automation-frameworks-in-2021
– https://testguild.com/automation-testing-tools/