Selenium is geen testtool!


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.

Vond je dit artikel interessant? Deel het op social media!