Testautomatisering Framework (TAF)

Voordat wordt ingegaan op wat een Testautomatisering Framework is, worden eerst de verschillende componenten die betrokken zijn bij testautomatisering op een rijtje gezet.

  • Te testen applicatie
  • Testtools zoals bijvoorbeeld Selenium of Fitnesse
  • Testmanagement tool waar de testgevallen & screenshots worden opgeslagen
  • Testomgeving waar de te testen applicatie op draait
  • Applicatie objecten: de verschillende onderdelen van een applicatie zoals bijvoorbeeld textbox, checkbox, radio button, dropdown, etc.
  • Applicatie modules: functionele flows die voor verschillende testgevallen worden gebruikt. Denk hierbij aan het inloggen van een gebruiker
  • Testdata: Dit is zowel de data voor het creëren van de startsituatie in bijvoorbeeld de database als de input data die gebruikt wordt bij het uitvoeren van de testgevallen.
  • Functionaliteit: Een stukje code voor een specifieke flow dat iedere keer opnieuw kan worden uitgevoerd. Denk hierbij aan een user login.
  • Testscript: een testgeval, gecodeerd in een bepaalde programmeertaal, die gebruik maakt van de testtool.
  • Resultaten: Resultaten van de testuitvoering inclusief logging, status, screenshots, etc.

Deze verschillende componenten moeten met elkaar kunnen communiceren om de applicatie geautomatiseerd te kunnen testen. Vragen die hierbij een rol spelen zijn:

  • Hoe kun je applicatie flows opsplitsen in verschillende functies?
  • Hoe identificeer en organiseer je applicatie objecten?
  • Waar wordt de testdata opgeslagen?
  • Hoe wordt de testdata toegankelijk gemaakt?
  • Waar vanaf worden de testscripts uitgevoerd?
  • Welke tools worden er gebruikt?
  • Welke screenshots en loggings moeten worden bewaard? Waar en in welk formaat?
  • Etc.

De antwoorden op bovenstaande vragen vormen een set van richtlijnen. Die set van richtlijnen wordt ook wel een Testautomatisering Framework (TAF) genoemd. De uitwerking van een TAF kan gebeuren op basis van de Generieke Testautomatisering Architectuur (gTAA).

Definitie
Een Testautomatisering Framework bestaat uit een reeks protocollen, standaarden en richtlijnen, die de regels voor het testen van een specifiek product bepalen. Hoe verschillende automatiseringscomponenten zullen samenwerken om testscripts uit te voeren en de resultaten op een coherente manier vast te leggen.

Een TAF biedt de gebruiker verschillende faciliteiten die hem helpen de testscripts te ontwikkelen, uit te voeren en over de resultaten te rapporteren. De volgende voordelen worden hiermee gerealiseerd:

  • standaard scripting
  • coherente benadering
  • team werkt op dezelfde manier
  • schaalbaarheid
  • modulariteit
  • minder foutgevoelig
  • begrijpelijk
  • herbruikbaar
  • minimaal handmatige handelingen
  • lagere kosten,
  • betere onderhoudbaarheid
  • etc.

Een TAF speelt een belangrijke rol bij testautomatisering. Het is hierbij wel van belang om te realiseren dat er tegenwoordig al een aantal standaard TAF’s beschikbaar zijn en dat er een TAF moet worden ingericht die geschikt is voor het project of de te testen applicatie.

Verschillende type van TAF’s

Naast dat er in de markt standaard TAF’s beschikbaar zijn, zijn er ook verschillende type van TAF’s.

Welk type er gebruikt kan worden is afhankelijk van:

Je zou verwachten dat een framework alle aspecten van automatisering aan moet kunnen en dat daardoor alle beschikbare TAF’s qua opzet gelijk aan elkaar zouden zijn. Dit is niet het geval. De verschillen worden onder andere veroorzaakt door:

  • Data intensive tests waarbij grote hoeveelheden testdata nodig zijn
  • Applicatie die meerdere gemeenschappelijke modules heeft die in meerdere testscripts hergebruikt moeten worden
  • Testscripts die al dan niet gebruik maken van keywords zoals klik, zoek, login, etc.
  • Etc.

Een goed geïmplementeerde TAF bevat alleen die onderdelen die gebruikt zullen worden met als doel een minimaal onderhoud van de TAF.

De 5 belangrijkste type TAF’s zijn:

  • Lineair
  • Modulair
  • Data-Driven
  • Keyword-Driven
  • Hybride

Lineair Framework

Dit is het meest eenvoudige type framework. Voor ieder testgeval wordt er een testscript gemaakt en de testscripts worden een voor een uitgevoerd. Dit maakt het mogelijk om een beperkt aantal handmatige testscripts om te zetten naar geautomatiseerde testscripts. Vaak gebeurt dit met de record&playback functionaliteit van de testtool.

Voordelen:

  • Er hoeft geen code geschreven te worden. De testers hebben daarom geen programmeerkennis nodig
  • Het maken van de testscripts gaat redelijk snel door gebruik te maken van record&playback

Nadelen:

  • Niet schaalbaar
  • Alle acties worden vastgelegd in het script wat de leesbaarheid niet bevorderd en de herbruikbaarheid beperkt.
  • De scripts kunnen geen gebruik maken van herbruikbare functionaliteit. Dit verlaagt de onderhoudbaarheid
  • De testdata is onderdeel van het testscript waardoor een testscript niet met verschillende testdata kan worden uitgevoerd. Dit zorgt er voor dat het aantal testscripts en de onderhoudbaarheid van de testscripts zal toenemen

Modulair Framework

Dit framework is gebaseerd op objectgeoriënteerde programmeermethoden en gebruikt het concept van abstractie. Voor het testen wordt de applicatie onderverdeeld in verschillende modules en voor iedere module wordt er een testscript gemaakt. De verdeling in modules gebeurt met behulp van een abstractielaag, zodat wijzigingen niet van invloed zijn op de andere modules. De testscripts van de modules worden vervolgens aangeroepen vanuit een overkoepelend testscript waardoor er uiteindelijk een volledige workflow of testgeval kan worden getest.

Modulair Testautomatisering Framework

Voordelen:

  • Bij veranderingen in de applicatie hoeft alleen het testscript voor de geraakte module te worden aangepast.
  • Het maken van testscripts voor testgevallen kost minder tijd omdat testscripts hergebruikt kunnen worden

Nadelen:

  • De testdata is nog steeds onderdeel van het testscript waardoor scripts niet met verschillende testdata kan worden uitgevoerd
  • Er is programmeerkennis nodig om het framework op te zetten

Data-Driven Framework

Bij een data-driven framework wordt de testdata gescheiden van het testscript. Het gebeurt vaak dat testgevallen verschillende keren uitgevoerd moeten worden met verschillende testdata. In dit geval is het belangrijk dat de testdata geen onderdeel is van het testscript. Dit is wel het geval bij een Lineair of Modulair Framework.

Bij een data-driven framework is het mogelijk om de input/output data voor een testscript te halen uit of op te slaan in een extern bestand. Dit kan een Excel sheet, TXT bestand, CSV bestand, SQL tabellen of een database zijn.

Data-Driven Testautomatisering Framework

Voordelen:

  • Testscripts kunnen meerdere keren worden uitgevoerd met verschillende testdata.
  • De onderhoudbaarheid wordt beter omdat de testdata gescheiden is van het testscript
  • De testdata kan onafhankelijk van het testscript worden ontwikkeld

Nadelen:

  • Veel programmeerkennis nodig om de externe databestanden te koppelen aan de testscripts
  • Het initieel opzetten van een data-driven framework kost veel tijd

Keyword-Driven Framework

Een keyword-driven framework is eigenlijk een uitbreiding op een data-driven framework. Niet alleen de testdata wordt losgetrokken van het testscript, maar ook bepaalde acties (code of keywords) worden apart van het testscript in een bestand opgeslagen. Een keyword geeft aan welke actie(s) moet(en) worden uitgevoerd op de applicatie. Ieder keyword gebruikt een stukje software om de acties daadwerkelijk uit te voeren. Deze software moet worden ontwikkeld door de testers of een developer.

Het ontwikkelen en onderhouden van dit framework vraagt om kennis en ervaring met ontwikkelen. Vervolgens is er voor het opstellen van testscripts een minimale technische kennis nodig.

Keyword-Driven Testautomatisering Framework

Voordelen:

  • Voor het opstellen van testscripts met een keyword-driven framework is minimale technische kennis nodig
  • Een keyword en de daaraan gekoppelde uitvoerings code kan in meerdere scripts worden gebruikt. Dit zorgt voor herbruikbaarheid en een betere onderhoudbaarheid.
  • De testscripts kunnen onafhankelijk van het te testen systeem worden gemaakt.

Nadelen:

  • De initiële kosten om dit framework te maken zijn relatief hoog.
  • Dit framework kan alleen ontwikkeld worden door iemand met brede programmeerkennis en ervaring
  • Wanneer het aantal keywords groot wordt, wordt de onderhoudbaarheid van dit framework groter.
  • Gedurende het project zullen er steeds nieuwe keywords worden toegevoegd waar code voor moet worden ontwikkeld.

Hybride Framework

Dit framework bevat alle mogelijkheden van de hiervoor beschreven frameworks. Hierdoor wordt het mogelijk de voordelen van andere frameworks te gebruiken en daarmee de verschillende nadelen te verkleinen.

Het ontwikkelen en onderhouden van een hybride framework kost wel meer tijd dan het implementeren van een van de andere genoemde frameworks.

Hybride Testautomatisering Framework

AAA

Ook interessant?

Issue tracking tools

Issue tracking tools

Issue tracking (bevindingenbeheer) is het managen van de bevindingen door de gehele levenscyclus van een bevinding. Helaas wordt er in ...
Generieke Testautomatiserings Architectuur

Testautomatisering versus geautomatiseerd testen

Wanneer er binnen het vakgebied testen wordt gesproken over automatisering, dan worden er regelmatig twee soorten automatisering door elkaar gebruikt ...
Testautomatisering Piramide (2)

Testautomatisering Piramide

Het effectief inzetten van geautomatiseerd testen vraagt om een weloverwogen strategie. Een van de grootste fouten die organisaties kunnen maken ...
Selenium onderdelen

Wat is Selenium Suite?

Selenium Suite is een test-framework (open-source) voor onder andere het testen van webapplicaties. Het is te vergelijken met HP Quick ...
Blijf op de hoogte van onze nieuwste ontwikkelingen, schrijf je hier in voor de nieuwsbrief!