zondag 28 december 2014

Variabele testdata bij testscripts en testautomatisering

Het gebeurt regelmatig, maar het mag niet bestaan: variabele testdata. Een testomgeving waar je niet in staat bent om een oude database in een handomdraai terug te zetten. Of waar de testdata automatisch verouderd in de tijd, doordat deze tijdgerelateerd is. Het lijkt soms testautomatisering onmogelijk te maken en regressietesten in het algemeen zeker niet eenvoudiger. Toch zijn er manieren om ook in deze situaties, zowel handmatig als automatisch, een goede regressietest uit te voeren.

De datum in de testdata

Het meest voorkomende probleem en ook het meest eenvoudige is de datum in de testdata. Denk bijvoorbeeld aan personen die jonger moeten zijn dan 1 jaar of een actie die in een bepaalde periode loopt. Bij testen moet je op een bepaald moment een concrete datum invoeren. Maar in je testscript en in je testautomatisering heb je dit liever niet.

Voor een beschreven testscript is dit probleem eenvoudig op te lossen: zet geen concrete datum neer, maar beschrijf de datum. Bijvoorbeeld als "Vandaag + 7 dagen", "21e van de volgende maand" of "Volgende week donderdag". Op deze wijze kan iedereen die het testscript uitvoert, zelf een datum bepalen.

Bij testautomatisering werkt het niet anders, maar wel wat moeilijker. Veel testautomatisering hulpmiddelen zijn uit te breiden via een programmeertaal. En een functie toevoegen om een datum te berekenen op basis van een aantal voorwaarden, is vaak niet het moeilijkste programmeerwerk. Als je een beetje kan programmeren, kan je het zelf. Maar anders kan je met een uurtje tijd van een ontwikkelaar al heel veel functies aan je testautomatiseringstool toevoegen om de datum naar jouw wensen te berekenen en te gebruiken in je automatische testscript.

Voor Selenium IDE kan je bijvoorbeeld een functie maken die bij vandaag een zelf te bepalen aantal dagen optelt. Deze wordt vervolgens in een variabele opgeslagen. Voor diegene die Selenium IDE niet kennen: als je een variabele wil maken, geef je in de ene kolom de waarde op en in de andere kolom de variabele. Bij deze functie wordt in de eerste kolom het aantal dagen na vandaag gezet. Hierna wordt op basis van dit getal een nieuwe datum berekend. Deze datum wordt vervolgens omgezet naar een tekst die in een variabele wordt opgeslagen. Zie hieronder het resultaat.



Variabele testdata voor het testen

Niet elke testomgeving is professioneel genoeg om de testdata stabiel te houden. Je hebt niet altijd de mogelijkheid een oude database terug te zetten. En soms heb je te maken met externe testdata, waar je helemaal geen controle over hebt. In dat geval kan je je testscript, al of niet geautomatiseerd, niet steeds op dezelfde data baseren. Omdat de data in de toekomst anders kan zijn dan vandaag.

Het meest eenvoudig, maar wel het meeste werk, is om een voorbereidingstestscript toe te voegen. In dit testscript maak je alle testdata aan die je voor je test nodig hebt. Bijvoorbeeld een persoon die woont in Amsterdam of een actie die loopt vanaf vandaag voor twee weken. Voor de duidelijkheid is het handig om deze voorbereiding of in een geheel apart testscript te zetten of in het testscript apart te benoemen/markeren.

Omdat dit voorbereidingstestscript snel veel tijd gaat kosten, is het handig dit te automatiseren. Ook als je voor de rest (nog) geen testautomatisering. Het zijn vaak veel tijdrovende handelingen, maar de eisen voor de testautomatisering zijn veel lager. De automatisering voor het aanmaken van de testcase is heel eenvoudig. Elk gratis beschikbare record-and-play tool is geschikt. En je kan meteen je testautomatisering kennis opbouwen. Dus als testautomatisering nog een stap te ver is, overweeg dan serieus of dit misschien wel een stap is die te nemen is.

Maar soms kan je de data niet zelf aanmaken. In dat geval is het verstandig om in je testscript met variabelen te werken. In de testautomatisering werkt dit zeer eenvoudiger. Elke automatische testtool heeft mogelijkheden om variabelen aan te maken en deze verderop in het script te gebruiken. Zie hieronder een voorbeeld in Selenium IDE.



In een handmatig testscript zijn er meerdere opties. Als je handig bent met Excel, dan kan je de testdata in een apart tabblad zetten. Vervolgens gebruik je dit veld in je testscript wanneer je de waarde wilt gebruiken.

Heb je deze handigheid niet, dan kan je bovenin je testscript de testdata zetten. Wanneer je deze dan vervangt, gebruik je de "Vervang tekst" functionaliteit in je programma. De bovenin weergegeven testdata gebruik je om te weten wat de huidige data is. En wanneer je deze tekst vervangt voor de nieuwe waarde, vervang je deze meteen voor het hele testscript.

Als laatste kan je ook gebruik maken van variabelen in je testscript, bijvoorbeeld op de volgende wijze: "[Achternaam]". Deze variabelen kan je dan in een ander document een waarde geven. Deze laatste heeft als groot nadeel dat je twee documenten nodig hebt bij het testen. Maar deze methode is wel minder foutgevoelig dan het automatisch vervangen van tekst.

Vind de methode die bij jou en je bedrijf past. En maak het beste van variabele testdata.

Geen opmerkingen:

Een reactie posten

Opmerking: Alleen leden van deze blog kunnen een reactie posten.