Automated Testing (IT)Mobile QA Automation Engineer

Hoe automatisering van mobiele applicatietests te realiseren, rekening houdend met de kenmerken van platforms (Android/iOS) en verschillende benaderingen van automatisering?

Slaag voor sollicitatiegesprekken met de Hintsage AI-assistent

Antwoord.

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.

Geschiedenis van de kwestie

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.

Probleem

De belangrijkste moeilijkheden:

  • Verschillende benaderingen van automatisering voor Android en iOS — verschillende API's, beperkingen in beveiligingen en emulatie.
  • Ondersteuning van verschillende versies van apparaten, besturingssystemen en schermresoluties.
  • Langzame en onbetrouwbare werking van sommige frameworks, verschillen in het gedrag van de UI.

Oplossing

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:

  • Cross-platform en hergebruik van tests
  • Integratie met CI/CD voor snelle feedback
  • Gebruik van emulators, simulators en echte apparaten om verschillende scenario's te dekken

Vragen met een twist.

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.

Typische fouten en anti-patronen

  • Testen alleen uitvoeren op emulators
  • Dupliceren van testcode voor elk platform
  • Het negeren van het verschil tussen UI Android en iOS

Voorbeeld uit de praktijk

Negatief geval

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:

  • Snelheid van implementatie van tests in het begin
  • Maximale aanpassing aan elk platform

Minpunten:

  • Verdubbeling van de arbeidsinspanningen
  • Toename van fouten en verschillende scenario's op verschillende platforms

Positief geval

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:

  • Snelle ondersteuning van nieuwe scenario's
  • Minder code, minder fouten

Minpunten:

  • De eerste implementatiefase duurde langer
  • Er waren specialisten nodig met ervaring in mobiele automatisering