Automatisering van mobiele applicatietests is praktisch gelijktijdig ontstaan met de massale verspreiding van smartphones. Aanvankelijk was automatisering complex, omdat de tools sterk verschilden voor verschillende platforms, wat problemen creëerde bij het onderhouden van universele tests.
In het begin werd de automatisering van mobiele applicaties uitgevoerd met afzonderlijke tools voor elk platform, bijvoorbeeld UI Automator voor Android en UIAutomation/XCUITest voor iOS. Dit leidde tot duplicatie van testscenario's en extra kosten.
Later verschenen cross-platform frameworks — bijvoorbeeld Appium, dat een gemeenschappelijke code voor beide platforms mogelijk maakte, en de verscheidenheid aan bibliotheken en integratiemethoden breidde zich uit.
De belangrijkste moeilijkheden:
Voor de automatisering van mobiele applicaties wordt aangeraden om cross-platform tools (Appium, Detox enz.) te gebruiken en tests te bouwen op basis van hergebruik van code met inachtneming van de kenmerken van het platform. Het is belangrijk om tests te ondersteunen met kwaliteitsvolle mocks en snelle installatie van testdata.
Belangrijke kenmerken:
Kun je testen voor een iOS-app op een Windows-machine draaien met behulp van Appium?
Nee, volledige geautomatiseerde tests van iOS-applicaties zijn alleen mogelijk op macOS, omdat tools zoals XCUITest/Xcode alleen Apple-systemen erkennen.
Waarom is het niet aan te raden om Selenium/Webdriver-tests direct voor mobiele applicaties uit te voeren?
Selenium/Webdriver zijn bedoeld voor browser testen. Voor mobiele applicaties worden specifieke drivers (bijvoorbeeld Appium) gebruikt die de werking binnen de applicatie emuleren.
Kun je alleen testen op emulators vertrouwen en echte apparaten niet gebruiken?
Nee, alleen emulators dekken niet alle kenmerken van het platform: prestatieproblemen, verschillen in sensoren en besturingsysteemgedrag komen alleen tot uiting op echte apparaten.
Het geautomatiseerde testteam schreef afzonderlijke tests voor Android via UI Automator en via XCUITest voor iOS, zonder gebruik te maken van een cross-platform wrapper.
Pluspunten:
Minpunten:
Het team implementeerde Appium met het Page Object-patroon en kon 90% van de tests dekken met algemene logica, waarbij specifiek gedrag alleen in afzonderlijke methoden werd behouden.
Pluspunten:
Minpunten: