types automation testing
Impara i diversi tipi di test di automazione con alcune idee sbagliate sull'automazione del test:
In questa seconda parte di serie di tutorial sull'automazione dei test , Descriverò brevemente i tipi di test automatici e poi, cosa più importante, chiarirò alcune idee sbagliate sull'automazione dei test.
Cos'è il test di automazione?
I test di automazione possono essere definiti come un modo per eseguire una serie di test più e più volte senza doverli eseguire manualmente. L'introduzione di test di automazione nella tua strategia di test è un modo per risparmiare tempo e denaro.
Cosa imparerai:
Tipi di test di automazione
I tipi di test di automazione definiscono il tipo di suite di test che possono essere automatizzate. Molti tester confondono questo argomento con i tipi di framework di automazione che definiscono come progetterai la tua suite di test in un pacchetto di automazione che può essere eseguito comodamente.
In questo articolo, daremo uno sguardo da vicino ai tipi di test di automazione e, alla fine, daremo una breve occhiata ai framework di automazione.
Comprendiamo in dettaglio le classificazioni di cui sopra:
Automazione basata sul tipo di test
Automazione dei test funzionali:
I test funzionali vengono scritti per testare la logica aziendale alla base di un'applicazione. Automatizzare questi significa scrivere script per convalidare la logica di business e le funzionalità previste dall'applicazione.
Automazione dei test non funzionali:
I test non funzionali definiscono i requisiti non aziendali dell'applicazione. Questi sono i requisiti relativi a prestazioni, sicurezza, database, ecc. Questi requisiti possono rimanere costanti o possono essere scalati in base alle dimensioni del software.
Automazione basata sulla fase di test
Automazione dei test unitari:
Questi test vengono eseguiti durante la fase di sviluppo stessa, idealmente dallo sviluppatore dopo il completamento dello sviluppo e prima di consegnare il sistema ai tester per il test.
Automazione dei test API:
I test API vengono eseguiti durante la fase di integrazione. Questi possono essere eseguiti dal team di sviluppo o test e possono essere eseguiti prima o dopo la creazione del livello dell'interfaccia utente per l'applicazione. Questi test mirano al test in base alla richiesta e alla risposta su cui è costruita l'applicazione.
Automazione dei test basati sull'interfaccia utente:
I test basati sull'interfaccia utente vengono eseguiti durante la fase di esecuzione del test. Questi sono specificamente eseguiti dai tester e vengono eseguiti solo una volta prima che l'interfaccia utente dell'applicazione venga loro consegnata. Questi testano la funzionalità e la logica di business dell'applicazione dal front-end dell'applicazione.
Automazione basata sul tipo di test
Test unitari:
I test unitari sono i test creati per testare il codice di un'applicazione e di solito sono incorporati nel codice stesso. Si rivolgono agli standard di codifica come il modo in cui sono scritti i metodi e le funzioni.
Questi test sono scritti più spesso dagli stessi sviluppatori, tuttavia, nel mondo di oggi, potrebbe anche essere chiesto ai tester di automazione di scriverli.
L'esecuzione di questi test e l'assenza di bug da parte degli stessi significherà che il codice verrà compilato ed eseguito senza problemi di codice. Questi test di solito non prendono di mira gli aspetti funzionali dell'applicazione e poiché mirano al codice, è più appropriato automatizzarli in modo che possano essere eseguiti come e quando richiesto dallo sviluppatore.
Test del fumo:
Il test del fumo è un famoso test eseguito nel ciclo di vita del test. Questi sono test post-compilazione, vengono eseguiti immediatamente dopo che qualsiasi build è stata rilasciata dall'applicazione per garantire che l'applicazione sia ancora funzionante dopo che la build è stata completata.
Questa è una piccola suite di test ed è qualcosa che verrà eseguito più volte e quindi ha senso automatizzarla. Questi test saranno generalmente di natura funzionale e, a seconda del tipo di applicazione, è possibile scegliere uno strumento per loro.
Test API:
Il test delle API è diventato molto famoso negli ultimi anni. Le applicazioni basate sull'architettura API possono eseguire questo test.
Nel test delle API, i tester convalidano il livello aziendale dell'applicazione controllando le combinazioni richiesta-risposta per le varie API su cui è costruita l'applicazione. I test API possono essere eseguiti anche come parte dei test di integrazione riportati di seguito.
Test di integrazione:
miglior sito su cui guardare gli anime
Test di integrazione come suggerisce il nome stesso significa testare l'applicazione integrando tutti i moduli e verificando la funzionalità dell'applicazione.
Il test di integrazione può essere eseguito tramite test API o tramite il livello dell'interfaccia utente dell'applicazione.
Test dell'interfaccia utente:
I test dell'interfaccia utente vengono eseguiti dal livello dell'interfaccia utente o dal frontend dell'applicazione. Questi possono mirare a testare la funzionalità o semplicemente a testare gli elementi dell'interfaccia utente di un'applicazione.
L'automazione dell'interfaccia utente per testare la funzionalità è una pratica comune. Tuttavia, l'automazione delle funzionalità della GUI è una delle automazioni più complicate.
Test di regressione:
c ++ sleep ()
Una delle suite di test più comunemente automatizzate è la suite di test di regressione. La regressione, come forse già saprai, è il test che viene eseguito alla fine del test di un nuovo modulo per garantire che nessuno dei moduli esistenti ne sia stato influenzato.
Viene ripetuto dopo ogni nuova iterazione di test e i casi di test principali rimangono fissi con di solito alcune nuove aggiunte dopo una nuova iterazione. Poiché viene eseguito frequentemente, quasi tutti i team di test cercano di automatizzare questo pacchetto.
Automazione come integrazione continua:
L'integrazione continua potrebbe essere di nuovo in esecuzione sui test di regressione automatizzati stessi, tuttavia, per ottenere CI, consentiamo l'esecuzione della suite di test di regressione o identificata ogni volta che viene eseguita una nuova distribuzione.
Test di sicurezza:
I test di sicurezza possono essere sia funzionali che non funzionali di tipo di test che coinvolgono il test dell'applicazione per le vulnerabilità. I test funzionali comporranno test relativi all'autorizzazione, ecc., Mentre i requisiti non funzionali potrebbero testare per SQL injection, cross-site scripting, ecc.
Test delle prestazioni e controllo di qualità:
I test delle prestazioni sono test non funzionali che mirano a requisiti come il test di carico, stress, scalabilità dell'applicazione.
Prove di accettazione:
I test di accettazione rientrano ancora nei test funzionali che di solito vengono eseguiti per garantire se i criteri di accettazione forniti dal cliente sono stati soddisfatti.
Finora, abbiamo descritto il tipo di test che possono essere automatizzati e varie classificazioni degli stessi, tutte le classificazioni alla fine porteranno agli stessi risultati finali di una suite di test automatizzata. Come abbiamo detto prima, è necessaria una piccola comprensione di come questi siano diversi dai framework.
Una volta identificati i test che si desidera automatizzare dalla classificazione precedente, sarà necessario progettare la logica in modo tale da eseguire questi test senza problemi, senza troppi interventi manuali. Questo design di una suite di test manuale in una suite di test automatizzata è dove entrano in gioco i framework.
Ora esploreremo i 3 principali tipi di automazione del test
- Test unitario
- Test API
- Test della GUI
# 1) Test unitari automatizzati
Unit test automatizzati sono scritti per testare il livello di codice. I bug vengono identificati nelle funzioni, nei metodi e nelle routine scritti dagli sviluppatori.
Alcune aziende chiedono agli sviluppatori di eseguire personalmente i test unitari e alcune assumono risorse specializzate per l'automazione dei test. Queste risorse hanno accesso al codice sorgente e scrivono unit test per interrompere il codice di produzione.
A causa della presenza di unit test, ogni volta che il codice viene compilato, tutti gli unit test vengono eseguiti e ci dicono il risultato che se tutte le funzionalità funzionano. Se un test unitario fallisce, significa che ora è presente un bug nel codice di produzione.
Alcuni degli strumenti più popolari presenti sul mercato includono NUnit e JUnit . Microsoft fornisce anche un proprio framework per unit test chiamato MSTest . Scorri i siti Web di questi strumenti e ti forniranno più esempi e tutorial su come scrivere test unitari.
#Due) Test API / servizio Web automatizzati
Un'API (Application Programming Interface) consente al software di comunicare con altre applicazioni software. Proprio come qualsiasi altro software, le API devono essere testate. In questo tipo di test, la GUI di solito non è coinvolta.
Ciò che testiamo qui sono solitamente i problemi di funzionalità, conformità e sicurezza. Nelle applicazioni web, possiamo testare la richiesta e la risposta della nostra applicazione che se sono sicure e crittografate o meno.
Questo è uno degli esempi in cui possiamo utilizzare il test API. Lo strumento più popolare per il test delle API è SAPONE che ha sia la versione gratuita che quella a pagamento. Ci sono anche altri strumenti che puoi usare in base alle tue necessità.
# 3) Test GUI automatizzati.
Questo tipo di test automatizzato è la forma più difficile di automazione in quanto implica il test di un'interfaccia utente dell'applicazione.
È difficile in quanto le GUI sono altamente soggette a modifiche. Ma questo tipo di test è anche il più vicino a ciò che gli utenti faranno con la nostra applicazione. Poiché l'utente utilizzerà il mouse e la tastiera, anche i test GUI automatizzati imitano lo stesso comportamento utilizzando mouse e tastiera per fare clic o scrivere sugli oggetti presenti nell'interfaccia utente.
A causa di ciò, possiamo trovare bug in anticipo e può essere utilizzato in molti scenari come test di regressione o compilazione di moduli che richiedono troppo tempo.
Gli strumenti di test GUI più popolari includono Micro Focus Unified Functional Testing (UFT) , Selenio , Test completato e Interfaccia utente codificata Microsoft (che fa parte delle edizioni Ultimate e Premium di Visual Studio).
Proprio come i tipi di test di automazione, ci sono anche più tipi di framework.
Quadri di automazione
Alcuni framework di automazione comunemente usati includono:
- Lineare (registrazione e riproduzione)
- Basato sulle parole chiave
- Basato sui dati
- Modello a oggetti della pagina
- Modulare
Ulteriori letture => Quadri di automazione
Come puoi vedere il primo passo nel processo di automazione è identificare il tipo di automazione, quindi puoi identificare il framework da progettare e tenendolo a mente puoi selezionare gli strumenti più adatti alle tue esigenze.
Strumenti di automazione
In base al tipo di test a cui ti rivolgi e al tipo di framework che potresti voler costruire attorno ad esso, sono disponibili i seguenti strumenti:
- Selenio : Strumento molto potente per testare le applicazioni Web. Fornisce supporto per più browser.
- Junit e Nunit: Strumenti utilizzati principalmente per i test unitari dagli sviluppatori.
- QTP : Ottimo strumento per applicazioni non Web e viene fornito con un repository di oggetti integrato.
- Sikuli: Strumento open source per il test della GUI.
- Soap UI: Strumento per il test delle API.
- Stia tranquillo: Libreria per creare un framework di test API.
- appium : Strumento che supporta test mobili, test di app native, test di applicazioni web ibride e mobili.
- Jmeter : Uno strumento che viene utilizzato per i test delle prestazioni.
- TestNG: TestNG non è uno strumento di automazione in sé, tuttavia, fornisce un ottimo supporto ai framework di automazione costruiti con selenio, appium, tranquilli, ecc.
Ulteriori letture => Strumenti di automazione del test
Idee sbagliate sui test di automazione
Nel corso degli anni, ho sentito alcune idee sbagliate sull'automazione dei test. Penso che dovrei cancellarli anche in questo articolo.
Idea sbagliata # 1. L'automazione è qui per sostituire i tester manuali.
L'automazione del test serve ad aiutare i tester a rendere i test più veloci e in modo molto affidabile. Non potrà mai sostituire gli umani.
Pensa all'automazione dei test come a un'auto. Se cammini, impiegherai circa 20 minuti per raggiungere casa tua. Ma se usi una macchina, la raggiungerai in due minuti. Il conducente dell'auto sei ancora tu, un essere umano, ma .. l'auto aiuta l'umano a raggiungere il suo obiettivo più velocemente. Inoltre, la maggior parte della tua energia viene risparmiata, poiché non camminavi. Quindi puoi usare questa energia per eseguire cose più importanti.
Lo stesso vale per i test di automazione. Lo usi per testare rapidamente la maggior parte dei tuoi test ripetuti, lunghi e noiosi e risparmiare tempo ed energia per concentrarti e testare nuove e importanti funzionalità.
Come James Bach ha detto una citazione meravigliosa:
'Gli strumenti non testano. Solo le persone testano. Gli strumenti eseguono solo azioni che 'aiutano' le persone a testare. '
Gli strumenti possono fare clic sugli oggetti. Ma dove fare clic verrà sempre detto da un tester manuale. Penso che tu abbia capito il mio punto ora.
Idea sbagliata # 2 . Tutto sotto il sole può essere automatizzato
Se provi ad automatizzare il 100% dei tuoi casi di test, forse sarai in grado di farlo, ma se puoi farlo, il nostro primo punto diventa falso. Se tutto è automatizzato, cosa farà un tester manuale?
Confuso? Giusto?
In realtà, il punto è che non puoi automatizzare il 100% dei tuoi casi di test. Perché noi tester riteniamo che nessuna applicazione possa essere testata al 100%. Ci saranno sempre degli scenari che ci mancheranno. Ci saranno sempre bug che verranno solo quando la tua applicazione verrà utilizzata dai client.
Se l'applicazione non può essere testata al 100%, come puoi promettere un'automazione al 100%?
Inoltre, c'è una minima possibilità che tu possa automatizzare tutti i tuoi casi di test esistenti. Ci sono sempre scenari difficili da automatizzare e più facili da eseguire manualmente.
Per esempio , Un utente inserirà i dati, il secondo utente approverà i dati, il terzo utente visualizzerà i dati e al quarto utente sarà vietato visualizzare i dati. Questi scenari possono essere automatizzati, ma richiederanno molto tempo e impegno. Quindi sarà più facile se lo fai manualmente.
Ricorda, usiamo le auto per raggiungere distanze, ma potrebbero esserci segnali lunghi sulla strada, ci sarà il consumo di carburante, ci saranno problemi di parcheggio, costi di parcheggio e molto più mal di testa. In alcuni scenari, camminiamo e raggiungiamo la nostra destinazione :) .
Pertanto, non dovresti provare ad automatizzare tutto. Automatizza solo quegli scenari che sono importanti e quelli che richiedono molto tempo per essere eseguiti manualmente.
Idea sbagliata # 3 . L'automazione riguarda solo la registrazione e la riproduzione.
quanti provider di posta elettronica ci sono
Per favore, non vivere in un mondo fantastico. Questa fantasia è in realtà creata da false pubblicità di diversi fornitori di strumenti di automazione. Dicono che registri e riproduci i tuoi passi e i tuoi casi di test saranno automatizzati. Bene, questa è una grande bugia!
L'automazione è tutto e non solo registrazione e riproduzione. I tecnici dell'automazione pura normalmente non utilizzano affatto la funzione di registrazione e riproduzione. La registrazione e la riproduzione vengono generalmente utilizzate per avere un'idea di come lo strumento sta generando uno script per i nostri passaggi.
Una volta che conosciamo lo scripting, utilizziamo sempre lo scripting per creare test automatizzati. Ricorda, devi conoscere la programmazione se vuoi fare test di automazione . D'altra parte, non scoraggiarti se non conosci la programmazione. Proprio come qualsiasi altro compito, anche la programmazione può essere appresa con pratica e dedizione.
Conosco persone, che non provengono nemmeno da un background in informatica, ma imparano a programmare e ora sono fantastici ingegneri dell'automazione. In Microsoft, assumono tester che possono fare programmazione. Sono chiamati SDET (Ingegneri di sviluppo software per test). La prima riga della descrizione del lavoro dice 'SDET scrive molto codice ...'.
Per favore impara a programmare, non scappare da esso. Ti renderà un tester straordinario .
Conclusione
Spero che questo articolo ti abbia aiutato a chiarire alcuni concetti relativi all'automazione dei test.
Abbiamo coperto un alto livello di vari tipi di test di automazione, con vari modi per classificare.
Le principali classificazioni includono:
- Automazione basata sul tipo di test (funzionale o non funzionale).
- Automazione basata sulla fase di test (Unità, API o UI).
- Automazione basata sui vari tipi di test (Multiple testing types).
Abbiamo anche elencato i vari strumenti che possono essere utilizzati per questi tipi di test automatizzati.
Nel nostro prossimo articolo, discuteremo di procedura passo passo di come avviare l'automazione dei test nella tua organizzazione .
Tutorial PREV n. 1 | PROSSIMO Tutorial n. 3
Lettura consigliata
- Test di carico con HP LoadRunner Tutorial
- Migliori strumenti di test del software 2021 [Strumenti di automazione del test QA]
- I tester stanno perdendo la presa sui test a causa dell'automazione?
- Sfide dei test manuali e di automazione
- Processo di test di automazione in 10 passaggi: come avviare il test di automazione nella tua organizzazione
- Sei un esperto di test manuali o di automazione? Lavora part time per noi!
- 11 migliori strumenti di automazione per testare applicazioni Android (strumenti di test per app Android)
- I 10 migliori libri di test del software (manuali e libri di test di automazione)