Skip to main content

I test di automazione sono diventati così integrati in alcune routine che alcuni tester si chiedono se sostituiranno completamente i test manuali. 

Non succederà tanto presto. 

Quando il team di Tesla ha progettato la Model 3, uno dei modi in cui volevano aumentare il ritmo di produzione era avere una linea di assemblaggio completamente automatizzata. L’IA avrebbe assemblato l’auto con quasi nessuna supervisione umana.

Want more from The CTO Club?

Create a free account to finish this piece and join a community of CTOs and engineering leaders sharing real-world frameworks, tools, and insights for designing, deploying, and scaling AI-driven technology.

This field is for validation purposes and should be left unchanged.
Name*

Il piano fallì in modo disastroso.

Le auto si scontravano tra loro, le portiere venivano forate nei finestrini e gli pneumatici non si montavano correttamente sui cerchioni. 

Cosa è successo? Si è scoperto che i robot non vedono molto bene. L’IA incaricata dell’assemblaggio della Model 3 non era in grado di adattarsi a complicazioni inaspettate o a piccoli disallineamenti. Se tutto non era perfettamente allineato, commetteva errori catastrofici. 

Lo stesso vale per i test di automazione nel QA. Alcune forme di test hanno troppe variabili e richiedono che il tester manuale sia in grado di correggere la rotta e risolvere i problemi all’istante. 

Cos’è l’Automation Testing?

L’automazione dei test significa che un tester QA utilizza uno strumento per eseguire un caso di test. Nel ciclo di sviluppo, lo stesso caso di test verrà eseguito molteplici volte.

Alcuni dei casi di test che richiederebbero a un team di tester QA ore per essere completati manualmente possono essere eseguiti da uno strumento di automazione in pochi minuti. Diversi strumenti di automazione dei test sono ormai diventati lo standard del settore. 

Il Lato Oscuro dell’Automation Testing

Altre industrie, mestieri e professioni hanno dovuto affrontare l’introduzione dell’automazione nei loro settori. Ogni volta che ciò è accaduto, sia che si tratti dell’aviazione col pilota automatico, della tessitura dei tappeti o dei test, i lavoratori di quel campo hanno perso la comprensione del “perché” dietro il loro lavoro.

Questo è un fenomeno che il professionista QA, Jan Jaap Cannegieter, ha notato stia cominciando a verificarsi anche nei tester. Il suo timore principale è che la semplicità offerta dall’automazione dei test e la sempre maggiore spinta ad automatizzare gran parte del processo di test porteranno a una generazione di tester che sanno quali azioni eseguire ma non comprendono il motivo. 

Molti tester conoscono tutto su determinati strumenti o linguaggi di programmazione, ma non sanno dirmi cosa testano e perché lo testano. E questa è una cosa negativa.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

Upgrade your inbox with more tech leadership wisdom for delivering better software and systems.

This field is for validation purposes and should be left unchanged.
Name*

Esempi di cattivo Automation Testing

Molti tester QA vedono lo stesso potenziale nei test automatizzati. Tipicamente, ciò significa che ci sono delle tendenze osservabili ed errori comuni che un tester può commettere. Ecco alcuni esempi ricorrenti di cattiva automazione nei test. 

Annidamento di test automatizzati

L’annidamento dei test automatizzati si verifica quando diversi test automatici vengono eseguiti uno sull’altro.  Quando ciò accade, diventa difficile capire cosa sia andato storto quando compare un errore. 

Nel breve termine, la maggior parte dei casi di automazione ha risvolti positivi. Il tester QA utilizza lo strumento giusto e lo esegue correttamente. 

Molti esempi di cattiva automazione emergono solo dopo sei mesi, quando i test automatizzati sono stati annidati all’interno di altri test automatizzati, che a loro volta si ritrovano all’interno di ulteriori test automatizzati. 

Test di automazione UI senza supervisione

I test dell’interfaccia utente garantiscono che non ci siano azioni possibili da parte dell’utente che possano mandare in crash il programma o causare malfunzionamenti. Eseguendoli manualmente, è spesso necessario coinvolgere molti tester e parecchio personale. Francamente, testare in questo modo è inefficiente, soprattutto man mano che il programma cresce e più funzioni richiedono test. 

Con l’automazione, il processo diventa più veloce ma può comunque richiedere l’intera potenza del computer del tester QA per una giornata. Per ovviare a ciò, i tester QA lanciano i test alla fine della giornata, lasciano lavorare il computer tutta la notte e al mattino trovano i risultati già pronti. Ha senso, vero? 

In apparenza sembra la soluzione intelligente. Il tester usa il proprio computer per altri test durante il giorno, poi di notte esegue i test automatici sull’UI.

È proprio perché è intuitivo che questo errore è frequente. Molte cose possono andare storte quando si esegue l’automazione senza alcun controllo umano.

Se qualcosa va storto all’inizio, tutti i risultati successivi saranno errati. Un’intera giornata di test non porterà alcuna informazione utile a causa di un errore che avrebbe potuto essere facilmente rilevato e risolto se qualcuno fosse stato presente a controllare che il test automatico stesse funzionando correttamente.

Sebbene i test automatizzati possano talvolta portare a falsi positivi, scegliere i giusti strumenti di automazione QA può ridurre significativamente tali episodi. 

Automatizzare le cose sbagliate

I test di automazione richiedono tempo per essere configurati. QA deve assicurarsi che gli strumenti di automazione siano adatti al progetto e che i tester QA sappiano utilizzare correttamente gli strumenti. 

Tutto ciò richiede molta organizzazione e tempo e, se il risultato finale è che un test normalmente eseguito una volta al mese viene automatizzato, non ne vale la pena. Prima di iniziare con i test automatizzati, assicurati che ciò che intendi automatizzare consenta un risparmio di tempo misurabile ai tester QA.

Non solo puoi automatizzare attività troppo rare per valere la pena, ma alcune attività semplicemente non possono essere facilmente automatizzate.

Sostituire i test manuali

I test automatizzati possono individuare solo ciò che sono istruiti a trovare. Se il font su una pagina web appare strano, ma il test controllava solo che tutti i link funzionassero, risolverà un problema (i link), ma non si accorgerà dell’altro (i font). 

I test manuali possono intercettare aspetti fuori dallo scopo iniziale del test. Il metodo del testing esplorativo è stato ideato proprio per offrire al tester QA lo spazio per trovare bug imprevisti mentre si presentano, anche se non era ciò che cercavano inizialmente. Focalizzato su un compito specifico, il testing automatico può essere accurato. Quello che non può essere, è esaustivo. 

Esempi di buoni test automatizzati

L'automazione dei test viene eseguita per minimizzare il rischio. Quando un tester QA può minimizzare il rischio e massimizzare l'efficienza, i test automatizzati dovrebbero assolutamente essere effettuati.  Non ha senso che un tester QA passi ore a controllare manualmente i link di un sito web quando uno scraper può svolgere la stessa attività in meno tempo e con meno probabilità di errore.

Una buona regola empirica per decidere quando utilizzare il test automatico invece di quello manuale è chiedersi se il test sarà veloce o continuo. Se il test deve essere eseguito in modo continuo, il test automatico è la scelta giusta. 

Le persone sono meno affidabili delle macchine quando si tratta di eseguire in modo coerente compiti ripetitivi ad alto livello. Desideriamo la novità e perdiamo attenzione quando facciamo la stessa cosa troppo a lungo. Ciò permette che gli errori sfuggano. 

Così, un tester QA si rende conto di aver: a) speso più tempo rispetto a quello che avrebbe impiegato con i test automatizzati e, b) svolto un lavoro peggiore, causando più problemi in seguito. 

Jason Huggins, fondatore del popolare strumento di automazione, Selenium, ha sviluppato il programma perché si è accorto che gran parte delle sue giornate da tester venivano spese ripetendo le stesse attività - attività che riteneva abbastanza semplici e lineari da poter essere eseguite anche da un robot. Così ha sviluppato uno script che testava automaticamente le funzionalità del browser. Fu un successo immediato e divenne rapidamente lo standard del settore. 

Anche i professionisti QA che sono scettici sul testing automatizzato sanno che in molte situazioni assolve una funzione importante. 

Perché il test manuale non morirà mai

Abbiamo visto i pro, i contro e gli aspetti più problematici dei test automatizzati. Sappiamo in quali situazioni funzionano bene e dove invece provocano guai nelle "catene di montaggio". Per un attimo, guardiamo ai test manuali e al motivo per cui sono ancora così importanti per i tester QA. 

I test automatizzati hanno bisogno di supervisione

Come già accennato sopra, con il problema della Model 3 di Musk e i rischi dei test automatici eseguiti durante la notte, le cose possono andare molto male se si lasciano incustoditi gli strumenti di automazione. 

I grandi vantaggi dei test automatizzati si ottengono quando questi vengono eseguiti insieme ai test manuali, o sotto la supervisione di un tester QA. Già solo per questo, i QA tester dovrebbero stare tranquilli che i test automatizzati non sostituiranno il loro ruolo nel prossimo futuro. 

Il test manuale utilizza il testing esplorativo

Quando un tester effettua un test esplorativo sta esplorando il software senza alcun piano definito. È una delle forme di test più popolari nella QA.

Il testing esplorativo può essere effettuato solo tramite test manuale. 

Il vantaggio del testing esplorativo è che permette al tester di adattarsi immediatamente a ciò che scopre, senza dover scrivere un altro caso di test. 

Il testing esplorativo consente anche collaborazione, creazione di ipotesi e collaborazione tutto in tempo reale. 

Man mano che la teoria agile dello sviluppo è diventata più diffusa, anche il testing esplorativo ha guadagnato rilievo. 

Il testing automatizzato manca della flessibilità e creatività necessarie per essere sufficientemente agile per il testing esplorativo. Funziona al meglio in un ambiente rigido dove conosce esattamente cosa cercare. Il testing esplorativo è l’esatto opposto: istruisce il tester QA ad andare ovunque ritenga opportuno. 

Cosa ne pensi?

Alcune persone giurano sul testing automatizzato, mentre altri pensano ancora che il manuale sia la strada migliore. Secondo te, come possono i team QA ottenere il massimo dai test automatizzati? Pensi che siamo pronti per l'IA nel testing?

Iscriviti alla newsletter di The CTO Club per ricevere gli ultimi articoli e aggiornamenti dagli esperti del settore.