Testautomatisering, Tooling

FitNesse/Selenium is een ideale tool voor het automatiseren van testen. In deze blog vertel ik je wat dit framework kan en wat de voor- en nadelen zijn. Bovendien geef ik een aantal tips die jou op weg helpen wanneer je zelf aan de slag gaat met FitNesse/Selenium. Zorg bijvoorbeeld dat je goed voorbereid bent, begin klein én maak voldoende tijd vrij voor het opzetten en inrichten van dit framework.

Wat is FitNesse en wat is Selenium?

FitNesse en Selenium zijn twee losse open-source tools. FitNesse is een framework bestaand uit meerdere lagen waarmee testen worden gedefinieerd in een WiKi-oplossing. In deze voor gebruikers en testers vriendelijke oplossing kunnen de tests in een leesbaar formaat worden opgeschreven. Achter deze WiKi-oplossing verzorgen zogeheten fixtures de vertaling van de tests naar code die door testautomatisering kan worden uitgevoerd. Deze fixtures kunnen door ontwikkelaars maar ook door testautomatiseerders geschreven worden in de programmeertaal die voor het project gebruikt wordt. FitNesse is een framework gekoppeld aan andere tools en/of modules zoals bijvoorbeeld Selenium. Selenium is een tool voor onder andere het testen van webapplicaties. Het is een plugin voor in je browser waarmee je webpagina’s kunt testen.

Wat zijn de voordelen van FitNesse/Selenium?

Het FitNesse framework bestaat uit verschillende lagen en is modulair opgebouwd. Als metafoor gebruik ikzelf vaak het welbekende legospeelgoed. Een framework bestaat uit verschillende herbruikbare blokjes (modules) die je op meerdere manieren aan elkaar kunt klikken. Je kunt gebouwde blokjes onbeperkt aanroepen waardoor je niet bijvoorbeeld vier keer hetzelfde blok hoeft te bouwen/schrijven.

Doordat het FitNesse framework uit meerdere lagen bestaat, kunnen verschillende personen meewerken aan dezelfde test. Zo kan een programmeur bijvoorbeeld een BSN- of IBAN-generator bouwen in de favoriete programmeertaal en kan de tester deze fixture vervolgens in zijn eigen bouwblokken gebruiken. Een business analist kan zelfstandig, of met hulp van een tester, met kant en klare bouwblokken in begrijpbare mensentaal een eigen testscenario in elkaar draaien, zonder een letter te hoeven programmeren.

Een ander voordeel is dat je met de fixtures alles kunt aanroepen wat met de programmeertaal van het project ook mogelijk is. Denk hierbij aan SOAP-, XML-, of Rest-berichtenverkeer, maar ook het aanroepen van databases.

Bovendien is de tool zeer goed beheersbaar. Het kan onder een versiebeheertool zoals bijvoorbeeld Git op een lokale machine draaien, op een server óf in de cloud. Hierdoor kunnen meerdere mensen gelijktijdig aan het framework bouwen.

"Houd bij het inrichten van een framework rekening met zowel de technische als de functionele inrichting en denk vooraf goed na over belangrijke business- en architectuurbeslissingen."

Zijn er ook nadelen?

Ikzelf heb tot nu toe weinig echte nadelen ontdekt. Waar je rekening mee moet houden, is dat het veel tijd kost om FitNesse/Selenium op te zetten en in te richten. Dat geldt eigenlijk voor iedere testautomatiseringtool.

Waar je verder rekening mee moet houden, is dat het framework zelf geen Life Cycle Management heeft. Je stelt je eigen totaal framework samen en bij het gebruik van FitNesse moet je zelf het onderhoud en versiebeheer van de verschillende onderliggende componenten doen. In een java-project kan een software projectmanagement tool als Apache Maven helpen. Doe je dat niet, dan kan het voorkomen dat een onderdeel opeens minder goed werkt, juist op een moment dat het niet uitkomt.

Onze tips voor nieuwe gebruikers

Wil jij aan de slag met FitNesse/Selenium? Zorg dat je weet waaraan je begint, begin klein en maak voldoende tijd vrij. Verder is mijn advies om in ieder geval rekening te houden met de volgende punten:

  • Start met het ‘waarom’. Bedenk van tevoren goed wat je met het framework wilt bereiken en waarvoor je ‘m wilt gebruiken. Welk risico wil je afdekken? Weegt de investering van het automatiseren op tegen de tijd die je bespaart? Betrek hierbij de business en voer desgewenst een risicoanalyse uit. Wanneer een organisatie bestaat uit meerdere bedrijfsonderdelen – in het geval van een bank bijvoorbeeld: sparen, beleggen, pensioenen en verzekeren – bedenk dan goed of deze onderdelen (op termijn) allemaal FitNesse willen gaan gebruiken. Dan kun je hier namelijk bij het inrichten al rekening mee houden. Kortom: denk vooraf goed na over belangrijke business- en architectuurbeslissingen.
  • Houd bij het inrichten van het framework rekening met twee verschillende type inrichtingen. Allereerst heb je de technische inrichting: Waar gaat het framework draaien? Is dat in de cloud of enkel lokaal? En maakt het framework (op termijn) onderdeel van een (CI/CD) pipeline? Daarnaast is er de functionele inrichting: Dekken de verschillende onderdelen straks minimaal de belangrijkste risico’s af?
  • Begin nooit als tester alleen aan testautomatisering in het algemeen en FitNesse in het bijzonder. Betrek hierbij de verschillende disciplines zoals product owners, de business en DevOps. Testautomatisering moet gedragen worden in de hele organisatie. We willen een steeds kortere ‘time to market’. Testautomatisering is een investering die mogelijk uiteindelijk geld bespaart en een hogere kwaliteit oplevert. Maar houd er rekening mee dat deze investering tijd, budget en resources kost die op dat moment niet anders besteed kunnen worden.
  • Er zijn verschillende aanbieders die kosteloos een basis framework aanbieden. Ook voor FitNesse zijn er al kant en klare werkbare dozen die je prima kunt gebruiken als vertrekpunt.
  • Bekijk eens de website van FitNesse-goeroe en tevens collega Pascal Smeets. Ik heb zelf veel gehad aan de uitgebreide handleidingen en tips die je hier kunt vinden.
  • Wil je FitNesse/Selenium introduceren bij jouw opdrachtgever of werkgever? Zorg dan dat je al iets gemaakt hebt waarmee je kunt aantonen wat het voor het bedrijf doet. “Dit is wat jullie willen, dit is wat ik gemaakt heb, het werkt, zullen we het grootschalig gaan gebruiken?” Een goed voorbereide presentatie aan het MT, vergroot de kans op een ‘go’.

Heb jij een vraag over FitNesse/Selenium of kun je binnen jouw organisatie hulp gebruiken bij de inrichting of het gebruik ervan? Aarzel dan niet om contact op te nemen.

Wil je ons nieuwste Paarsz magazine per post ontvangen? Laat dan je gegevens achter.

Ontwerp zonder titel (19)

Werken bij Bartosz?

Vincent Verhelst

Geïnteresseerd in Bartosz? Dan ga ik graag met jou in gesprek. We kunnen elkaar ontmoeten met een kop koffie bij ons op kantoor. Of tijdens ontbijt, lunch, borrel of diner op een plek die jou het beste uitkomt. Jij mag het zeggen.

Mijn Paarsz