Je hebt je automatische testen. En dan wijzigt er iets. Plotseling vallen er heel veel van je testen om. Dat wordt aanpassen. Dat wordt veel werk. Kan je ervoor zorgen dat het onderhouden van je automatische testen minder tijd kost? Het blijft altijd tijd kosten, maar ik heb gemerkt dat er trucjes zijn om de tijd te verminderen. Zowel zonder als met programmeerkennis.
Naamgeving
Hoe eenvoudig ook, aanpassen gaat een stuk eenvoudiger als je aan de hand van de naamgeving kan raden wat de inhoud is. Geef je bestanden en/of procedures altijd een naam, die de test of de testsuite beschrijft. Zo geef ik vaak de testsuite in Selenium een beschrijving van het scherm dat ik wil testen. En vervolgens de testen een korte beschrijving van de test. Bij voorkeur laat ik de naam van de testsuite terugkomen in de testcase. Zo zal ik een testsuite "Zoeken" noemen, omdat ik hier het scherm wil testen waar de zoekgegevens ingevoerd worden. En vervolgens noem ik de testcase "ZoekenPostcode", omdat in deze test ik wil nagaan of het zoeken op postcode goed werkt.
Houdt je naamgeving ook zo consistent mogelijk, zodat er automatisch een groepering ontstaat. Als je de testen "ZoekenPostcode", "NaamZoeken" en "SearchPlace" noemt, maak je het jezelf moeilijk. Begin de naam, als dit kan, met de groep waar het bestand en/of test een onderdeel van is. En geef daarna een omschrijving.
Door de naamgeving goed te kiezen, kan je raden wat de inhoud is. En hierdoor weet je of, bij een aanpassing in de applicatie, je dit onderdeel moet aanpassen of niet. Als je daarnaast al een soort van groepering hebt, kan je ook eenvoudig raden of er een hele groep aangepast moet worden. Bijvoorbeeld als je het zoekscherm hebt aangepast, zal je zeker moeten kijken naar alles wat begint met "Zoeken".
Groeperen en becommentariƫren
Bijna elk testautomatiseringsprogramma heeft de mogelijkheid om commentaar toe te voegen. Wanneer je dit consistent doet, kan je ook binnen een stukje automatiseringscode eenvoudig onderdelen herkennen. Ook dit maakt het weer eenvoudiger om te wijzigen stukken code te vinden. Zeker als je dit combineert met een goede groepering
Zelf groepeer ik zoveel mogelijk de volgende opdrachten bij elkaar: invoeropdrachten, schermwisselopdrachten en controleopdrachten. Alle opdrachten, die gegevens invoeren staan in een groep. Als dit teveel is, dan splits ik dit eventueel per component. Zo kan het invoeren van de zoekbox een groep zijn. Daarbinnen kan de datumcombobox weer veel handelingen vragen (selecteer jaar, selecteer maand, selecteer dag), waardoor dit een aparte groep kan worden.
Buttons die zorgen voor het openen van een dialoog of wisselen naar een ander scherm, zet ik in een aparte groep met schermwisselopdrachten. Deze groep bevat zowel het klikken op de button, het wachten op het nieuwe scherm als eventuele controle of het scherm geopend is.
Als laatste groepeer ik de controleopdrachten. Na invoer en/of schermwissel ga je de werkelijke test uitvoeren m.b.v. controles. Ook deze komen weer samen in een groep.
Deze groepen kan je vervolgens herkennen/groeperen door commentaar toe te voegen. Zelf doe ik dit bij voorkeur met een beschrijvend zelfstandig naamwoord gevolgd door "invoeren" of "controleren". Bijvoorbeeld "Zoekscherm invoeren" of "Kassabon controleren". Schermwissels hebben bij mij meestal het commentaar "Ga naar .....".
Door consistent te groeperen en commentaar toe te voegen, worden je testen goed leesbaar. Maar vooral leer je de onderdelen herkennen die terug komen. Als we weer uitgaan van een aanpassing in het zoekscherm, dan weet je dat elk onderdeel met het commentaar "Zoekscherm invoeren" hoogstwaarschijnlijk even gecontroleerd moet worden.
Search and replace
Een van de meest voorkomende aanpassingen is een element dat gewijzigd is. Eerst heette de button "btnSearch", maar nu heet het "btnSearch1". Er is namelijk een tweede toegevoegd.
Maak voor dit soort aanpassingen gebruik van Search and replace mogelijkheden. Dit kan binnen het automatiseringtool zijn, dat je gebruikt. Maar als je testtool geen mogelijkheid biedt, bijvoorbeeld omdat je Selenium IDE gebruikt, kan je ook een Search and Replace tool via internet downloaden en installeren. Belangrijkste is, dat je meerdere bestanden tegelijkertijd kan aanpassen.
Houdt er wel rekening mee dat je hierna al je testen moet controleren. Het is namelijk zeer goed mogelijk, dat je per ongeluk op een verkeerde plek iets hebt vervangen. Maar ondanks dit risico is deze manier van aanpassen vaak sneller dan alles handmatig opzoeken.
Herbruikbare functies
Als je kan programmeren en je programmeert zelf je testen, dan kan je je werk nog eenvoudiger maken. Door de groepering die je hopelijk hebt toegepast, komen automatisch groepen naar voren die vaak terugkomen. Hier kan je vervolgens functies van maken, die je vervolgens binnen je testen aan kan roepen. Ook hierbij is het verstandig de juiste naamgeving aan te houden.
Wanneer je veelgebruikte groepen in een functie weet te vatten, kan je deze binnen meerdere testen gebruiken. Bij een aanpassing is een aanpassing in deze functie vervolgens voldoende. Dat scheelt dan vervolgens weer een heleboel werk.
Geen opmerkingen:
Een reactie posten
Opmerking: Alleen leden van deze blog kunnen een reactie posten.