Tutorial sui test di automazione: Guida introduttiva

Sommario

Che cos’è il test di automazione?

Come suggerisce il nome. il test di automazione richiede attività di test del software e le esegue tramite un set di strumenti di automazione o un framework. In parole semplici, è un tipo di test in cui uno strumento esegue automaticamente una serie di attività in un modello definito.

Toglie la pressione ai tester manuali e consente loro di concentrarsi su attività di valore superiore: test esplorativi, revisione dei risultati dei test, ecc. In sostanza, una macchina prende il sopravvento e implementa, banali, ripetitivi, compiti di tempo-confusione come test di regressione. I test di automazione sono essenziali per ottenere una maggiore copertura dei test entro scadenze più brevi e una maggiore precisione dei risultati.

Perché i test di automazione sono fondamentali in un ciclo di vita del software?

Immagina questo.

Il tuo primo giorno come QA, devi testare un’applicazione che include circa 100 campi che richiedono input. Quando si eseguono test esplorativi, è necessario inserire manualmente l’input in ciascun campo. Questo richiede circa 10 minuti per fare se si è veramente veloce.

Si preme Invia. Viene visualizzato un messaggio di errore. Sembra un’eccezione non gestita. Si segnala il bug e sentirsi veramente bene su un lavoro ben fatto. Ripeti il processo, trova qualche altro bug e hai un primo giorno generalmente produttivo.

Il giorno dopo, lo sviluppatore risolve i problemi e devi testare la nuova versione del software, ripetendo gli stessi passaggi del giorno prima. Bug risolto. Lavoro ben fatto. Una buona esperienza utente garantita, grazie ai vostri sforzi.

Il terzo giorno, gli sviluppatori hanno rilasciato una versione più recente con funzionalità più recenti. Ma al fine di garantire che le nuove funzionalità non hanno rotto le caratteristiche di lavoro più anziani, è necessario ripetere il processo di nuovo. Nessun problema trovato.

Un mese in poi, gli sviluppatori rilasciano continuamente versioni più recenti, il che significa che devi continuare a testare il software, ripetendo lo stesso processo (inserendo l’input del campo) ogni volta. Sei annoiato e stanco. La tua precisione inizia a vacillare, a causa della quale alla fine ti manca un bug, forse piuttosto ovvio.

Che ci crediate o no, questo è uno scenario abbastanza comune per la maggior parte dei QAS. Non è possibile fare la stessa cosa più e più volte ed essere perfetti ogni volta. È qui che entra in gioco il test di automazione.

Un software può testare un altro software?

Sì. Questo è il punto centrale dei test di automazione. Quando si tratta di test di regressione, investire sforzo manuale è inutile e dispendioso. Invece di aspettarsi che gli esseri umani ripetano gli stessi passaggi con la stessa velocità, precisione ed energia, è molto più logico programmare una macchina per fare lo stesso.

Quali test dovrebbero essere automatizzati?

Prima di creare una strategia di automazione dei test, diamo un’occhiata a quali test sono più fattibili per l’automazione:

  • Test di regressione: le suite di regressione sono in continuo aumento e richiedono che le stesse variabili vengano riempite numerose volte per garantire che le nuove funzionalità non manomettano le funzioni precedenti. Questo può essere facilmente automatizzato.
  • Test di funzionalità complesse: automatizza tutti i test che richiedono calcoli complessi, qualcosa di soggetto a errori umani.
  • Prova del fumo: Esegui suite automatizzate per verificare la qualità delle principali funzionalità. Ciò consente di risparmiare tempo offrendo una rapida analisi se una build richiede test più approfonditi.
  • Test basati sui dati: automatizza i test per convalidare le funzionalità che devono essere testate ripetutamente con numerosi set di dati.
  • Test delle prestazioni: automatizza i test che monitorano le prestazioni del software in circostanze diverse. Farlo manualmente sarebbe estremamente scrupoloso e dispendioso in termini di tempo.
  • Test funzionali: Ogni volta che uno sviluppatore invia un PR, i test funzionali devono essere eseguiti rapidamente e fornire un feedback immediato. Questo è impossibile da raggiungere senza l’automazione, soprattutto quando le organizzazioni si espandono.

Guida introduttiva ai test di automazione

Quando si passa dai test manuali a quelli di automazione, tenere a mente i seguenti punti:

  • Non puntare all’automazione di test al 100%. Non tutti i test possono essere automatizzati. Anche tra i test che possono essere automatizzati, non impostare un obiettivo iniziale di automazione completa.
  • Imposta un obiettivo realistico. Ad esempio, inizia spostando alcuni test sull’automazione. Scrivi casi di test più piccoli che possono essere facilmente riutilizzati in test futuri dello stesso software. Mappa casi di test con funzioni corrispondenti per fornire una migliore copertura di prova. Etichetta i casi di test in modo che i team possano avere chiarezza su cosa automatizzare e riferire in modo più efficace.
  • Esplora nuove aree dell’applicazione con l’automazione. Quando si eliminano le strategie di automazione, assicurarsi che i requisiti aziendali siano presi sul serio quanto le considerazioni tecniche.
  • Sapere cosa non automatizzare. Questo aiuta a decidere l’ambito dell’automazione all’inizio del processo di ideazione. I seguenti test sono meglio lasciati alla copertura manuale:

  1. Test dell’esperienza utente: gli strumenti non possono replicare alcun percorso utente nella sua interezza. È impossibile per un algoritmo prevedere come i singoli utenti interagiranno con un’applicazione. Per giudicare effettivamente la qualità dell’esperienza utente, attenersi ai tester umani. Prova a utilizzare strumenti di test interattivi manuali come BrowserStack Live.
  2. Test di accessibilità: Quando si verifica l’accessibilità di un’applicazione, non vi è alcun sostituto per l’uso umano. Uno strumento non può misurare l’accessibilità perché spesso le persone hanno opinioni diverse su ciò che conta come accessibile. Non è possibile per uno strumento di riconoscere se il flusso di lavoro del software sta fornendo un facile accesso per gli esseri umani reali.
  • Seleziona gli strumenti giustiil test di automazione dipende interamente dagli strumenti. Ecco cosa considerare quando si sceglie lo strumento giusto:
  1. La natura del software: È l’applicazione in fase di test web-based o mobile-based?
    Per testare il primo, utilizzare uno strumento come Selenium per automatizzare i test. Per quest’ultimo, Appium è uno dei migliori strumenti possibili per l’automazione.
  2. Esperienza del programmatore: scegli framework, linguaggi e strumenti che corrispondano al comfort e all’esperienza dei tester. Alcuni dei linguaggi più popolari utilizzati per i test di automazione includono Java, JavaScript, Ruby, C#, ecc.
  3. Open Source o no: a seconda dei vincoli di budget, si può scegliere di utilizzare strumenti open source come Selenium o Appium per scopi di automazione. Tuttavia, è importante ricordare che tutti gli strumenti open source non sono inferiori alle loro controparti disponibili in commercio. Ad esempio, Selenium Webdriver è uno strumento open source che è maggiormente favorito dai tester automatici di tutto il mondo.
  • Selezionare la griglia di test corretta

La griglia di test si riferisce all’infrastruttura su cui verranno eseguiti tutti i test automatizzati. Comprende una serie di dispositivi, browser e sistemi operativi (versioni multiple) su cui il software deve essere testato. È sempre meglio automatizzare i test su dispositivi e browser reali. Ciò garantirà che il software venga testato in condizioni di utilizzo reali.

Inoltre, la griglia di test ideale dovrebbe consentire test paralleli. Ciò significa che i tester dovrebbero essere in grado di eseguire più test su più dispositivi contemporaneamente. Ciò riduce il tempo di prova, accelera i risultati e offre risultati entro scadenze più brevi.

Qualcos’altro da decidere è se la griglia di test deve essere ospitata on-premise o sul cloud. Tieni presente che l’infrastruttura on-premise è quasi sempre costosa da configurare e mantenere. Richiede di tenere traccia di nuovi dispositivi, browser e sistemi operativi, aggiornandoli e mantenendoli di conseguenza. Questa è una sfida dal momento che più versioni di ciascuno vengono rilasciati ogni mese.

Al contrario, il test su una griglia basata su cloud è più semplice, poiché l’aggiornamento e la manutenzione sarebbero curati dall’organizzazione che offre la griglia. Ad esempio, BrowserStack offre una griglia di selenio cloud collegata a oltre 2000 dispositivi e browser reali per i test. Gli utenti devono semplicemente registrarsi e iniziare a testare su una robusta griglia di selenio che viene costantemente aggiornata per i migliori risultati possibili.

Real device cloud di BrowserStack fornisce oltre 2000 browser e dispositivi reali per test istantanei e on-demand. Il cloud fornisce anche integrazioni con strumenti CI/CD popolari come Jira, Jenkins, TeamCity, Travis CI e molto altro. Inoltre, esistono strumenti di debug integrati che consentono ai tester di identificare e risolvere immediatamente i bug. BrowserStack facilita anche il test di Cypress su oltre 30 versioni del browser con parallelizzazione istantanea e senza problemi.

Prova il test di automazione gratuitamente

Esempio di test di automazione

Quando si esegue manualmente il test del software, il tester utilizza un supporto e una tastiera per interagire con esso. Gli script e gli strumenti di automazione replicano questa interazione passo dopo passo.

In questo esempio, una calcolatrice è in fase di test per vedere se è possibile aggiungere due numeri e visualizzare il risultato. Manualmente, i passaggi per farlo sarebbero i seguenti:

Passo 1: Avvia Calcolatrice
Passo 2: Premere 2
Passo 3: Premere +
Passo 4: Premere 3
Passo 5: Premere =
Passo 6: Lo schermo visualizza 5
Passo 7: Chiudi Calcolatrice

Uno strumento di automazione può eseguire gli stessi passaggi con il seguente script:

//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}

Quando si esegue lo script di cui sopra, viene visualizzato lo stesso risultato esatto (5). Invece di dover passare attraverso i passaggi manuali, basta scrivere lo script e lasciare che lo strumento si occupi del resto.

Come passare dal test manuale all’automazione

Per cominciare: fai due domande.

  1. Cosa automatizzare?
  2. Come automatizzare?

Cosa automatizzare?

  • Automatizza i test necessari per un ciclo di rilascio frequente. Ciò può includere test di fumo, test di regressione e simili. Fondamentalmente, automatizzare i test che accelerano l’intero ciclo di test. Ricorda, un intervento manuale inferiore equivale a risultati più rapidi.
  • Automatizzare i test in base alla priorità tecnica e aziendale. Pensa in questo modo: l’automazione di questo test aiuterebbe il business? Automatizzare questo test aiuterebbe a semplificare le complessità tecniche? Se la risposta è sì a una domanda, automatizza.
  • Automatizza in base all’usabilità. Alcuni test, come i test di compatibilità cross browser funzionano meglio se eseguiti manualmente. La dipendenza dagli strumenti può anche limitare il potenziale di automazione per un determinato team o organizzazione di test.

Per saperne di più: 10 Test di automazione Best practice da seguire

Come automatizzare?

Per cominciare, tieni presente che non tutti i test possono essere automatizzati. Aderendo alle tre strategie nella sezione precedente, diventa più facile avviare test automatizzati in modo pratico.

  • Inizia piccolo. l’automazione al 100% non è l’obiettivo, e anche non è possibile. Scrivi casi di test più piccoli perché sono più facili da mantenere e riutilizzare. Spostare un piccolo numero di test su una piattaforma di automazione, eseguire i test, analizzare i risultati e decidere se il processo si è rivelato vantaggioso per il processo di sviluppo del software.
  • Se dall’operazione derivano vantaggi significativi, passare più test all’automazione. Inizia a spostare i test non solo in volume, ma aumenta anche il tipo di test automatizzati. Ricorda che questa è ancora una fase sperimentale. È possibile che alcuni test si dimostrino inefficienti nell’automazione e debbano essere spostati di nuovo ai test manuali.
  • Mappare i casi di test con ciascun metodo o funzione per ottenere una migliore copertura dei test. Etichettare i casi di test per facilitare l’identificazione, in modo che il team possa sapere rapidamente quali test automatizzare. Questo aiuta anche a implementare una migliore segnalazione.
  • Quando si avvia il test di automazione iniziare esplorando manualmente nuove aree dell’applicazione. Quindi, crea un piano di rischio che descriva in dettaglio ciò che deve essere automatizzato, in base alle priorità aziendali e tecniche.
  • Utilizza analytics per determinare le preferenze dell’utente finale. Crea un elenco di browser e dispositivi con cui è più probabile che gli utenti accedano al software. Ciò aiuta i test di automazione a coprire le interfacce giuste e ottimizza le prestazioni del software sulle giuste vie utente.

Prova i test automatizzati su Real Device Cloud

Test Automation Maintenance

Una volta creati, le suite di test di automazione devono essere mantenute. Man mano che il software si evolve e la base di codice si espande, gli script di automazione devono essere modificati e aggiornati per incorporare nuove funzionalità e funzioni. Anche minuscole modifiche nell’interfaccia utente possono interrompere i test e causarne il fallimento. Quando si progettano casi di test, i tester di automazione devono tenere conto dello sforzo e dei costi di manutenzione.

L’approccio test automation maintenance funziona da due prospettive principali:

  • Errore del test: durante il debug dei test non riusciti, cerca possibili problemi di manutenzione. Lo script di test non è stato adeguatamente aggiornato? Una modifica del codice software ha interferito con lo script di test? Questo è un modo semplice per identificare quali aree richiedono sforzi di manutenzione.
  • Modifica delle dipendenze o degli strumenti: Il team o l’organizzazione ha modificato API, strumenti di reporting, database, ecc.? In tal caso, potrebbe essere necessario modificare o aggiornare i test per allinearli con i nuovi set di strumenti. Per raggiungere questo obiettivo, sviluppatori e tester dovranno ovviamente essere addestrati sulla nuova infrastruttura in modo da poter tenere il passo con gli sforzi di manutenzione in futuro.

Quali sono gli elementi chiave di un’efficace strategia di automazione dei test?

I test di automazione sono parte integrante di qualsiasi ecosistema di test. Senza passare a una configurazione di automazione, i test completi diventano difficili, così come il rispetto di scadenze sempre più brevi. Di conseguenza, è importante avviare i protocolli di test di automazione il più presto possibile in modo da bilanciare e integrare i test manuali.

Prova i passaggi sopra descritti e sperimenta abbastanza per scoprire quali approcci producono risultati ottimali. Non preoccuparti di fallire un paio di volte prima di trovare il punto debole che consente un’automazione efficace senza compromettere la convalida umana.

Write a Comment

Il tuo indirizzo email non sarà pubblicato.