Geautomatiseerd testen met behulp van Browserstack

De meeste applicaties die wij ontwikkelen, worden gebruikt door een gevarieerd publiek. De variatie zit bijvoorbeeld in de voorkeurstaal van de bezoeker, zijn internetsnelheid en het device en browser waarmee hij de applicatie bezoekt. Dit zijn allemaal onderdelen waar we tijdens het ontwikkelen van een applicatie rekening mee dienen te houden.

Vooral het brede scala aan devices en browsers, waar we vandaag de dag mee te maken hebben, stelt ons tot een uitdaging. Hoewel we, in de meeste gevallen, geen rekening meer hoeven te houden met zeer verouderde browsers, hebben we wel te maken met een groeiend aantal devices waarmee de applicatie bezocht kan worden. Denk hierbij aan iPhones, iPads (iOS) en de vele varianten aan Android devices.

Onze uitdaging

De enige manier om (zonder automatisering) zeker te weten dat de applicatie correct werkt, is door deze handmatig te testen op de verschillende devices en browsers. Echter is het in de praktijk onmogelijk om alle devices aan te schaffen en bovendien tijdrovend om de applicatie op elk device te testen. Normaliter testen we de applicatie dan ook alleen op de meest gebruikte devices en browsers. Het testen doen we tijdens de ontwikkeling en voordat we een applicatie (of update) live zetten. De meeste browsers kunnen we simpel testen op de eigen laptop. Vervolgens pakken we enkele mobiele telefoons en tablets erbij ten behoeve van een volledige test. 

Dit alles is natuurlijk niet echt (lees: echt niet) efficiënt. Dat is dan ook de reden dat we continue bezig met het automatiseren van dit soort testen.

In het verleden maakten we al gebruik van Selenium om het testproces te automatiseren. Selenium stelt je in staat om de applicatie tegen echte browsers aan te testen. Met zo’n test geef je de browser, met behulp van code, instructies die uitgevoerd dienen te worden. Ook geef je mee wat het verwachte resultaat moet zijn van zo’n instructie. Een simpel voorbeeld, vertaald in leesbare tekst, om het filter van een webshop te testen:

  1. Ga naar: www.een-webshop.nl/boeken
  2. Klik op filter: ‘ICT boeken (113)’ (waarbij 113 het aantal boeken is wat voldoet aan dat filter)
  3. Verifieer: er zijn 113 producten gevonden

Het probleem van deze tests is dat deze echter maar in één browser wordt uitgevoerd. Als alle tests slagen, weet je dus wel dat de applicatie bijvoorbeeld goed werkt in Chrome, maar heb je nog steeds geen garantie dat alles ook nog werkt in bijvoorbeeld Internet Explorer. Het is dus nog steeds nodig om de gehele applicatie in alle veelgebruikte browsers en devices te testen.

De oplossing

Bij de realisatie van het platform van Dümmen Orange kwamen we al snel tot de conclusie dat het de moeite waard zou zijn om meer tijd te gaan besteden aan geautomatiseerd testen. Hoewel het implementeren van de tests uiteraard tijd kost, kan dit zich al snel terugbetalen naarmate de applicatie groeit en nieuwe features toegevoegd worden. Vervolgens zijn we op zoek gegaan naar een service die ons zou kunnen helpen met het geautomatiseerd testen tegen verschillende devices en browsers. Na wat onderzoek kwamen we uit bij BrowserStack Automate. Het voordeel van BrowserStack is, dat je de tests nog steeds ‘schrijft’ in de voor ons bekende Selenium tests. Het enige verschil is dat je in de test ook direct kunt aangeven op welke devices en browsers de test uitgevoerd dienen te worden.

Voor Dümmen Orange hebben we gekozen om de applicatie te testen in de laatste versies van Chrome, Firefox, Internet Explorer, Edge en op de iPad, iPhone en Galaxy S5. Omdat het aantal browsers/devices impact heeft op de totale testtijd, hebben we bewust voor deze beperkte set gekozen. Dit zorgt ervoor dat er momenteel een hoop tijd wordt bespaard bij wijzigingen: als de tests nog steeds slagen, weet je zeker dat het geteste onderdeel in deze browsers en devices correct werkt.

In het geval een test faalt, krijgen we daar melding van in onze applicatie monitor. Dit zorgt ervoor dat we direct weten dat er iets aan de hand is. Dit kan bijvoorbeeld betekenen dat een zojuist opgeleverde wijziging naar de testomgeving, ervoor heeft gezorgd dat een ander onderdeel van de applicatie niet meer correct werkt. We kunnen dit dan direct corrigeren en voorkomen hiermee dat de incorrecte wijziging op de productieomgeving wordt uitgeleverd.

Conclusie

Met behulp van BrowserStack besparen we dan nu ook veel tijd en kunnen we preventief problemen op een productieomgeving voorkomen!

Niet helemaal gevonden wat je zocht?

Geen probleem, waarschijnlijk hebben wij wel gewoon een antwoord voor je. Om het makkelijk voor je te maken
bellen wij je gewoon terug. Laat hier je gegevens achter en nemen zo snel als mogelijk contact met je op.