Iniziare con i test di regressione visiva utilizzando Appium

Pubblicato: 2023-09-17

Iniziare con i test di regressione visiva utilizzando Appium

Il software di oggi richiede un'esperienza utente fluida su più piattaforme e dispositivi. Uno degli aspetti più impegnativi in ​​questo ambito è mantenere l'integrità visiva della tua applicazione. È qui che entra in gioco il test di regressione visiva (VRT), che offre un modo semplificato per individuare bug visivi e incoerenze che altrimenti potrebbero passare inosservati. Per coloro che desiderano iniziare con VRT, Appium offre un framework robusto e scalabile per automatizzare questo tipo di test su un'ampia gamma di piattaforme.

Inoltre, servizi comeLambdaTest offrono una soluzione di orchestrazione ed esecuzione dei test basata sull'intelligenza artificiale per i test di regressione visiva, eliminando la necessità per i team di impostare e gestire la propria infrastruttura di test.Questo approccio cloud fornisce accesso su richiesta a vari browser e dispositivi reali, consentendo test simultanei su più ambienti, riducendo i tempi di esecuzione dei test e garantendo coerenza nell'aspetto e nella funzionalità delle applicazioni web. LambdaTest offre inoltre report di test dettagliati e integrazione con i framework di test più diffusi per l'identificazione e la risoluzione rapida dei problemi.

In questo articolo esploreremo le nozioni di base per iniziare con VRT utilizzando Appium in modo che tu possa elevare la tua strategia di test al livello successivo.

Cos'è il test di regressione visiva?

Il test di regressione visiva è una tecnica di convalida utilizzata per garantire che le modifiche apportate a un'applicazione non abbiano effetti negativi sulla presentazione visiva dell'interfaccia utente (UI) dell'applicazione. Il suo obiettivo primario è confermare che il layout e gli elementi visivi rispettino le aspettative predefinite, garantendo così un'esperienza utente visiva impeccabile. Questi controlli visivi comprendono vari attributi, come posizione, luminanza, contrasto e colore di pulsanti, menu, componenti, testo e altro. Questo metodo viene talvolta definito anche test visivo o test dell'interfaccia utente.

Come funzionano i test di regressione visiva?

Nella sua essenza, il test di regressione visiva funziona catturando istantanee dell'interfaccia utente prima di una modifica e confrontandole con schermate scattate successivamente. Eventuali disparità vengono successivamente evidenziate per l'esame da parte di un ingegnere di prova. In pratica, esistono varie tecniche per condurre test di regressione visiva. Alcuni di quelli più utilizzati sono elencati di seguito per te:

Test visivo manuale

Questo metodo prevede l'ispezione manuale dell'interfaccia utente senza l'uso di strumenti specializzati. Designer e sviluppatori dedicano del tempo durante ogni versione per ispezionare visivamente le pagine, cercando attivamente eventuali difetti visivi. Anche se questo approccio può essere laborioso e soggetto a errori umani se applicato a un'intera applicazione, è utile per i test dell'interfaccia utente ad hoc o esplorativi, soprattutto durante le prime fasi di sviluppo.

Confronto pixel per pixel

Questa tecnica esamina i due screenshot a livello di pixel, avvisando l'ingegnere del test di eventuali discrepanze. Il confronto dei pixel, noto anche come differenze di pixel, può identificare tutti i potenziali problemi, ma può anche segnalare molte differenze irrilevanti che sono impercettibili all'occhio umano e non influiscono sull'usabilità (ad esempio, variazioni di rendering, anti-aliasing o differenze di riempimento/margine ). L'ingegnere del test deve vagliare meticolosamente questi "falsi positivi" in ogni esecuzione del test.

Confronto basato su DOM

Questo metodo di confronto si basa sull'analisi del Document Object Model (DOM) prima e dopo un cambiamento di stato e sull'identificazione delle differenze. Sebbene sia efficace nell'evidenziare le modifiche relative al codice all'interno del DOM, non fornisce un vero confronto visivo. Spesso genera falsi negativi o positivi quando il codice rimane invariato, ma l'interfaccia utente si evolve (ad esempio, contenuto dinamico o contenuto incorporato) o quando il codice cambia ma l'interfaccia utente rimane statica. Di conseguenza, i risultati dei test possono essere incoerenti e richiedere un'attenta revisione per evitare di trascurare i difetti visivi.

Confronto dell'intelligenza artificiale visiva

I test di regressione visiva che utilizzano l'intelligenza artificiale visiva sfruttano la visione artificiale per percepire l'interfaccia utente in modo simile agli esseri umani. Un'intelligenza artificiale ben addestrata può assistere gli ingegneri dei test segnalando esclusivamente le differenze che un osservatore umano noterebbe, eliminando il laborioso compito di affrontare i problemi di "falsi positivi" comuni nei test di confronto pixel e DOM. Inoltre, l’intelligenza artificiale visiva può valutare contenuti dinamici e identificare problemi solo in aree o regioni impreviste.

Motivi per eseguire test di regressione visiva

Questa sezione spiega i motivi più validi per eseguire test di regressione visiva nella tua applicazione. Quindi, continua a leggere….

Garantire la coerenza visiva

I test di regressione visiva aiutano a garantire che l'interfaccia utente e gli elementi visivi della tua app mobile rimangano coerenti tra diverse versioni, dispositivi e piattaforme. Questa coerenza è importante per fornire un'esperienza utente fluida.

Convalida delle modifiche di progettazione

Quando vengono apportate modifiche alla progettazione dell'app, i test di regressione visiva possono verificare se tali modifiche sono state implementate correttamente e non hanno introdotto problemi visivi non desiderati.

Ciclo di feedback più veloce

I test di regressione visiva possono fornire un rapido feedback a sviluppatori e progettisti, consentendo loro di affrontare i problemi nelle prime fasi del ciclo di sviluppo. Ciò riduce le possibilità che difetti visivi critici raggiungano la produzione.

Esperienza utente migliorata

Problemi visivi e incoerenze possono avere un impatto negativo sull'esperienza dell'utente e offuscare la reputazione dell'app. Rilevando questi problemi attraverso i test di regressione visiva, puoi migliorare la soddisfazione degli utenti.

Test di regressione per le librerie dell'interfaccia utente

Se la tua app utilizza librerie o framework dell'interfaccia utente di terze parti, i test di regressione visiva aiutano a garantire che gli aggiornamenti a queste librerie non introducano modifiche visive indesiderate.

Passaggi per iniziare con i test di regressione visiva utilizzando Appium

Il test di regressione visiva utilizzando Appium prevede il confronto degli elementi visivi dell'interfaccia utente di un'applicazione per rilevare eventuali modifiche visive indesiderate tra le diverse versioni dell'app. Ecco i passaggi per iniziare con i test di regressione visiva utilizzando Appium:

Passaggio 1: configura Appium e l'ambiente di test

Innanzitutto, assicurati di avere Appium installato e configurato sul tuo sistema. Avrai anche bisogno della libreria client Appium per il tuo linguaggio di programmazione preferito (ad esempio Java, Python). Inoltre, installa tutte le dipendenze e gli strumenti necessari per il tuo ambiente di test.

Passaggio 2: preparare le immagini di prova

Prima di poter eseguire il test di regressione visiva, è necessario un set di immagini di base che rappresentino l'aspetto previsto delle schermate dell'app. Cattura queste immagini di base eseguendo la tua app su vari dispositivi/emulatori e catturando screenshot di ogni schermata. Archivia queste immagini in una cartella designata all'interno del tuo progetto.

Passaggio 3: implementare gli script di test

Scrivi script di test utilizzando la libreria client Appium per automatizzare il processo di acquisizione di screenshot ed esecuzione di confronti visivi. Gli script di test dovrebbero eseguire le seguenti operazioni:

  1. Inizializza il driver Appium per avviare l'app su un dispositivo/emulatore specifico.
  2. Naviga tra le schermate dell'app, eseguendo azioni che attivano modifiche all'interfaccia utente.
  3. Cattura screenshot utilizzando la funzionalità screenshot di Appium.
  4. Salva gli screenshot catturati in una cartella separata per il confronto.

Ecco un esempio di come potrebbe apparire il codice in Java utilizzando il client Appium Java:

```Java

importa io.appium.java_client.AppiumDriver;

importa io.appium.java_client.MobileElement;

importa io.appium.java_client.android.AndroidDriver;

importare org.openqa.selenium.remote.DesiredCapabilities;

importa java.net.URL;

classe pubblica VisualRegressionTest {

public static void main(String[] args) lancia un'eccezione {

// Imposta le funzionalità desiderate per il driver Appium

Limiti delle DesiredCapabilities = new DesiredCapabilities();

caps.setCapability("platformName", "Android");

caps.setCapability("deviceName", "emulator-5554");

caps.setCapability("appPackage", "your.app.package");

caps.setCapability("appActivity", "your.app.activity");

// Inizializza il driver Appium

Driver AppiumDriver<MobileElement> = nuovo AndroidDriver<>(nuovo URL("https://localhost:4723/wd/hub"), maiuscolo);

// Esegue azioni e acquisisce screenshot

// ...

// Salva gli screenshot per il confronto

// ..

// Chiude il driver

driver.esci();

}

}

```

Passaggio 4: implementare la logica del confronto visivo

Per i test di regressione visiva, è necessario un meccanismo per confrontare gli screenshot acquisiti con le immagini di base. Puoi utilizzare librerie di confronto di immagini come "Resemble.js" o "Pixelmatch" per eseguire confronti pixel per pixel e calcolare le differenze visive.

Fase 5: Asserzione e reporting

Negli script di test, implementa le asserzioni in base ai risultati del confronto visivo. Se le differenze visive superano una certa soglia, considerare il test fallito. Genera report dettagliati sui risultati del test, comprese eventuali differenze visive rilevate.

Passaggio 6: integrazione continua (CI)

Integra i test di regressione visiva nella pipeline CI/CD per assicurarti che vengano eseguiti automaticamente ogni volta che vengono apportate modifiche al codice o nuove versioni. Ciò aiuta a individuare le regressioni visive nelle prime fasi del processo di sviluppo.

Passaggio 7: mantenere le immagini di base

Man mano che la tua app si evolve, dovrai aggiornare le immagini di base per adattarle al nuovo aspetto previsto. Ciò garantisce che le modifiche legittime dell'interfaccia utente non vengano scambiate per regressioni.

In che modo gli utenti possono eseguire VRT utilizzando Appium su LambdaTest?

Ecco come gli utenti possono eseguire test di regressione visiva utilizzando Appium su LambdaTest:

Configura l'account LambdaTest

Per iniziare, crea un account sulla piattaforma LambdaTest se non ne hai già uno. Avrai bisogno di questo account per accedere alla loro infrastruttura di test. Quindi, assicurati di installare Appium e tutte le dipendenze, come discusso sopra.

Scrivi script di test

Sviluppa i tuoi script di test Appium per interagire con la tua applicazione mobile. Questi script dovrebbero includere i passaggi che consentono di navigare nell'app e acquisire screenshot di elementi o schermate chiave.

Configura le funzionalità LambdaTest

Modifica i tuoi script Appium per includere funzionalità specifiche di LambdaTest. Ciò include la specifica della piattaforma desiderata (iOS/Android), versione del browser, tipo di dispositivo e credenziali LambdaTest (nome utente e chiave di accesso).

Esegui test su LambdaTest

Carica i tuoi script di test Appium sulla piattaforma LambdaTest. LambdaTest fornisce una griglia Selenium in cui è possibile eseguire i test Appium. Questa griglia offre un'ampia gamma di dispositivi e browser reali per i test.

Esegui test

Esegui i tuoi test sulla griglia di LambdaTest attivandoli dalla loro interfaccia basata sul web. LambdaTest eseguirà i tuoi test sui dispositivi mobili e sui browser specificati, acquisendo screenshot in vari punti del flusso di test.

Confronto visivo

Dopo l'esecuzione del test, LambdaTest genera screenshot dei diversi stati dell'applicazione. Puoi utilizzare il loro strumento di confronto visivo integrato per confrontare questi screenshot con le immagini di base per identificare eventuali discrepanze visive.

Revisione e analisi

Analizzare i risultati VRT per identificare le differenze visive. LambdaTest fornisce approfondimenti sui cambiamenti visivi, evidenziando le aree in cui vengono rilevate discrepanze.

Reportistica automatizzata

LambdaTest offre funzionalità di reporting automatizzate per tenere traccia dei risultati dei test nel tempo, semplificando l'identificazione delle tendenze e la valutazione dell'impatto delle modifiche sull'aspetto visivo della tua applicazione.

Migliori pratiche per test di regressione visiva di successo utilizzando Appium

Ecco alcune best practice da seguire per eseguire con successo test di regressione visiva utilizzando Appium:

Seleziona una matrice di dispositivi e piattaforme affidabili

Scegli una serie di dispositivi, sistemi operativi e risoluzioni dello schermo che rappresentano le combinazioni più importanti utilizzate dal tuo pubblico di destinazione. Questa matrice dovrebbe coprire una vasta gamma di dispositivi per garantire che la tua app appaia coerente in varie configurazioni.

Controllo della versione per le immagini di riferimento

Mantieni un repository controllato dalla versione di immagini di riferimento che rappresentano l'aspetto visivo previsto della tua app su diversi dispositivi e piattaforme. Queste immagini di riferimento serviranno come base per il confronto durante i test di regressione.

Ambiente di test stabile e coerente

Assicurarsi che l'ambiente di test sia coerente per ogni esecuzione del test. Ciò include l'utilizzo delle stesse versioni del sistema operativo, delle versioni di Appium e delle stesse librerie in diverse esecuzioni di test. Evita di introdurre modifiche non necessarie nell'ambiente che potrebbero portare a falsi positivi nei test.

Isolare le modifiche dell'interfaccia utente dalle modifiche funzionali

Separa i test di regressione visiva dai test funzionali. Ciò ti consente di concentrarti esclusivamente sulle differenze visive senza essere distratto da problemi funzionali.

Tollerare la varianza visiva prevista

Non tutte le differenze visive sono bug. Imposta un livello di tolleranza per una variazione visiva accettabile per tenere conto di modifiche minori dell'interfaccia utente, come variazioni nel rendering dei caratteri che potrebbero non influire sull'esperienza utente complessiva.

Gestione dei contenuti dinamici

Gestisci con garbo contenuti dinamici come annunci, contenuti generati dagli utenti e dati in tempo reale. Potrebbe essere necessario escludere questi elementi dal confronto o aggiornare le immagini di riferimento per tenere conto di questi cambiamenti dinamici.

Strategie di attesa intelligenti

Implementa strategie di attesa intelligenti per garantire che gli elementi dell'interfaccia utente dell'app siano completamente caricati prima di acquisire screenshot. Ciò aiuta a evitare falsi positivi causati da schermate incomplete o parzialmente caricate.

Esecuzione parallela

Se possibile, esegui test di regressione visiva in parallelo su più dispositivi e piattaforme. Ciò riduce il tempo complessivo del test e garantisce un feedback più rapido sulle potenziali discrepanze visive.

Reporting e notifiche automatizzati

Imposta report e notifiche automatizzati per avvisare il team quando vengono rilevate discrepanze visive. Ciò garantisce un'azione rapida e riduce al minimo il tempo necessario per risolvere i problemi.

Manutenzione di prova regolare

Man mano che la tua app si evolve, aggiorna le tue immagini di riferimento e adatta i tuoi test per accogliere cambiamenti visivi intenzionali. Rivedi e mantieni regolarmente i tuoi test di regressione visiva per assicurarti che rimangano pertinenti.

Esaminare e convalidare i risultati

Prima di considerare qualsiasi differenza come un problema reale, esamina manualmente gli screenshot per verificare se le differenze sono bug reali o semplicemente falsi positivi causati da contenuti dinamici o modifiche visive minori.

Miglioramento continuo

Valuta continuamente la tua strategia di test di regressione visiva e adattala secondo necessità. Rimani aggiornato con gli strumenti, le librerie e le best practice più recenti per garantire l'efficacia del processo di test.

Conclusione

Che tu stia cercando di identificare modifiche indesiderate, ridurre lo sforzo manuale del QA o semplicemente migliorare la coerenza visiva tra diversi dispositivi e risoluzioni, VRT è uno strumento indispensabile nel tuo arsenale di test. Come con qualsiasi tecnologia, padroneggiarne le sfumature richiede tempo, ma i vantaggi in termini di tempo risparmiato, riduzione degli errori e un’esperienza utente più fluida possono essere immensi. Allora perché aspettare? Inizia oggi stesso con VRT e Appium e porta i test delle tue applicazioni mobili a un livello superiore.