L'automazione dei test delle applicazioni mobili è emersa praticamente simultaneamente con la diffusione di massa degli smartphone. Inizialmente, l'automazione era complessa, poiché gli strumenti differivano notevolmente da una piattaforma all'altra, creando problemi nella manutenzione di test universali.
All'inizio, l'automazione delle applicazioni mobili veniva effettuata attraverso strumenti separati per ciascuna piattaforma, ad esempio UI Automator per Android e UIAutomation/XCUITest per iOS. Questo portava a duplicazione degli scenari di test e costi aggiuntivi.
In seguito, sono emersi framework cross-platform, come Appium, che consentono di utilizzare codice comune per entrambe le piattaforme, ampliando la varietà di librerie e metodi di integrazione.
Le principali difficoltà:
Per l'automazione delle applicazioni mobili, si raccomanda di utilizzare strumenti cross-platform (Appium, Detox, ecc.) e di costruire i test seguendo il principio del riutilizzo del codice tenendo conto delle peculiarità della piattaforma. È importante accompagnare i test con mock di alta qualità e installazione rapida dei dati di test.
Caratteristiche chiave:
È possibile eseguire test per un'app iOS su una macchina Windows utilizzando Appium?
No, il test automatizzato completo delle applicazioni iOS è possibile solo su macOS, poiché strumenti come XCUITest/Xcode riconoscono solo il sistema Apple.
Perché non è consigliabile eseguire test Selenium/Webdriver direttamente per le applicazioni mobili?
Selenium/Webdriver sono destinati ai test di browser. Per le applicazioni mobili si utilizzano driver specifici (ad esempio, Appium) che emulano il funzionamento all'interno dell'applicazione.
È possibile fidarsi solo dei test sugli emulatori e non utilizzare dispositivi reali?
No, solo gli emulatori non coprono tutte le peculiarità della piattaforma: problemi di prestazioni, differenze nei sensori e nei comportamenti del sistema operativo si manifestano solo su dispositivi reali.
Il team di test automatizzati scriveva test separati per Android tramite UI Automator e tramite XCUITest per iOS, senza utilizzare un'infrastruttura cross-platform.
Vantaggi:
Svantaggi:
Il team ha implementato Appium con il pattern Page Object riuscendo a coprire il 90% dei test con logica comune, lasciando il comportamento specifico solo in metodi separati.
Vantaggi:
Svantaggi: