Een van de testautomatiseringsopdrachten waar ik zelf met het meeste plezier aan terugdenk, was een opdracht waarbij ik een integratietest heb gemaakt tussen een mobiele applicatie en een website. Dit werd gezien als een test, die niet geautomatiseeerd kon worden. Maar ik heb het voor elkaar gekregen, zelfs zonder nieuwe tools te introduceren.
Twee werelden
In het bedrijf waren er al twee testsuites met geautomatiseerde testen. Eén specifiek voor de website en één voor de mobiele applicatie. Het probleem was dat deze in de praktijk sterk met elkaar verweven waren. Vanuit de website werd via het lezen van een QR code of via een deeplink de mobiele applicatie opgestart om gegevens te controleren. Daarna werd de gebruiker weer teruggeleid naar de website. Waarna voor andere controles de mobiele applicatie weer opgestart moest worden. Zeker geen standaard scenario in mobiele app-ontwikkeling, waardoor een oplossing niet direct voor het oprapen lag.
Out-of-the-box met Appium
Ik wilde dit oplossen zonder nieuwe tools te introduceren. Door de combinatie van mobiele testen en website testen waren er al veel verschillende testtools in gebruik. De leercurve lag dan ook al hoog en ik wilde deze niet verhogen.
Daarom verdiepte ik me in de mogelijkheden van Appium, dat al werd gebruikt voor het testen van de mobiele applicatie. Ik wist uit ervaring dat je hiermee niet alleen mobiele applciaties kan testen, maar ook websites kan testen via een mobiele browser. Ik had er echter nog nooit naar gekeken of deze twee ook te combineren waren.
Mijn aanpak bestond dan ook uit vier stappen. Eerst de geautomatiseerde test voor de website omzetten naar een Appium variant, waarbij de website via de mobiele browser getest werd. Daarna via een proef of concept kijken of ik kon overschakelen van de website naar de mobiele applicatie en terug.
Toen dit werkte, heb ik een structuur voor herbruikbare code opgezet, zodat het overschakelen tussen website en mobiele applicatie eenvoudig aangeroepen kon worden. Die structuur heb ik daarna toegepast in de gewenste testen.
Eén test, twee werelden
Doordat het nu mogelijk was om het testen van mobiele applicatie en website te combineren, konden deze twee werelden ook in één geautomatiseerde test samenkomen. Een van de belangrijkste processen van het bedrijf kon daardoor getest worden zoals gebruikers het daadwerkelijk doorlopen. Dit maakte dat het proces als geheel veel betrouwbaarder getest kon worden, zonder gedwongen te zijn uit te wijken naar handmatige testen. Daarnaast kon deze integratietest nu ook meegenomen worden in de standaard regressie, waardoor die ook automatisch meer uitgevoerd werd.
Haal meer uit je tools
We hebben wel eens de neiging om bij de tools die we gebruiken vooral te focussen op hoe we ze vandaag inzetten, terwijl ze vaak veel meer mogelijkheden hebben. In andere situaties kun je ze misschien combineren met andere oplossingen en zo nog meer waarde uit je bestaande toolset te halen. Zorg er daarom voor dat je goed weet wat je tools kunnen, ook als je die mogelijkheden op dit moment nog niet gebruikt. En blijf openstaan voor andere tools en nieuwe toepassingen. Als je kennis van je toolset groter is dan je huidige gebruik, ontstaan er vanzelf meer mogelijkheden om nieuwe problemen op te lossen.