Welke testtool gebruiken jullie? Dat is een veelgehoorde vraag in de testwereld. Tegenwoordig hoor je dan antwoorden als FitNesse, Tosca, Robot Framework of Protractor. Maar ook horen we vaak Selenium of Selenium Webdriver. Omdat Selenium binnen de testwereld bijna equivalent staat aan ‘testautomatisering’ en iedereen wel van Selenium heeft gehoord, is dit niet zo’n heel gek antwoord. Maar… Selenium is helemaal geen testtool
Serieus, ga maar eens naar de 'getting started' pagina van
Selenium <https://selenium.dev/documentation/en/>.
Je krijgt daar gelijk, in een programmeertaal naar keuze, code voor je neus.
Met Selenium bouw je je eigen applicatie om een browser aan te sturen. En als
je daarmee aan de slag gaat, dan merk je dat je heel veel dingen zelf nog uit
moet vinden. Wachten totdat knoppen zichtbaar worden, scrollen om een stuk
tekst te vinden en wachten totdat de pagina geheel geladen is. Het zijn
voorbeelden van situaties die je in Selenium in veel gevallen zelf moet
programmeren.
Het is dus ook geen wonder dat de meeste testtools van
tegenwoordig Selenium voor je aansturen. Dit geldt voor FitNesse, Protractor en
Robot Framework en nog vele andere. Deze tools bieden je allerlei extra lagen
bovenop Selenium, om het voor een automatiseerder gemakkelijk te maken om tests
te automatiseren.
Selenium is in feite niets meer dan een API, een application
programming interface, om browsers mee aan te sturen. Daar is op zich niks mis
mee, het is mooi dat het er is; het is ten slotte niet voor niets dat de meeste
UI testtools er gebruik van maken. Maar als je als tester aan de slag gaat met
testautomatisering, is 'vanilla Selenium' naar mijn idee een vreemde 'testtool'
om te kiezen. Je gaat dan in feite niet aan de slag met testautomatiseren, maar
je gaat je eigen testtool maken. En je bent dan het wiel, dat in alle bestaande
testtools al lang is uitgevonden, nog een keer aan het uitvinden. FitNesse
bijvoorbeeld, een tool die ik persoonlijk goed ken, heeft duizenden regels code
tussen de user interface en de Selenium API zitten om het leven van de
testautomatiseerder te vergemakkelijken. Ik kan je verzekeren: dat is echt niet
voor niets. Het is zonde om daar geen gebruik van te maken. En dit geldt
natuurlijk niet alleen voor FitNesse, maar net zo goed voor Protractor of Robot
Framework.
Naast alle uitbreidingen die testtools als FitNesse of Robot
Framework je bieden, komt daar nog bovenop dat Selenium alleen voor
browserautomatisering een API biedt. Dat beperkt je testautomatisering al
enorm, want je zou idealiter helemaal niet zo veel via de user interface moeten
automatiseren. Daarnaast biedt Selenium je geen andere mogelijkheid dan direct
de code in te duiken. Het is maar sterk de vraag of dat de beste keuze is. Hoe
groot is de programmeerkennis van degenen die met testautomatisering aan de
slag gaan?
Kortom, als je aan de slag gaat met testautomatisering, kies
dan geen Selenium, maar kies een testtool. Dat gaat je een hele hoop tijd, geld
en werk besparen. En mocht je er niet uit komen, dan kun je altijd contact met
ons opnemen.