Skip to main content

L'obiettivo di ogni tester è avere fiducia nel software attraverso il testing continuo. Possiamo dormire sonni più tranquilli sapendo che si verificheranno meno bug nei prodotti grazie all'implementazione di un processo di test esteso. Selezionare le giuste strategie di testing è almeno importante quanto eseguire un numero sufficiente di test.

Una volta mi fu chiesto di creare un piano di test per un complesso dispositivo di rete. L'obiettivo era raggiungere una copertura del 100% delle diverse connessioni e delle loro combinazioni. Un rapido calcolo rivelò che preparare ed eseguire tali test avrebbe richiesto più di 40 mila anni.

Più i tuoi sistemi sono complessi, più è fondamentale trovare una strategia di testing che sia sia realizzabile che efficace.

Due approcci e punti di vista sul testing che recentemente sono stati spesso discussi sono noti come end-to-end testing e regression testing

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*

Lo scopo del regression testing è verificare che ciò che funzionava ieri continui a funzionare anche oggi dopo eventuali modifiche apportate. 

Nell'end-to-end testing, si testa un processo aziendale nella sua interezza, da qui il termine "end to end".

È un errore comune considerare queste due strategie come equivalenti, poiché anche il regression testing spesso implica l'end-to-end testing. Sarebbe però sbagliato presumere che i test end-to-end siano soltanto test di regressione.

Il regression testing dovrebbe essere svolto a tutti i livelli di test, a partire dai unit test. L'end-to-end testing include il regression testing, ma testare end-to-end è raramente possibile nei livelli più bassi di test perché è necessario avere tutte le parti coinvolte del processo pronte per testarlo nella sua interezza. 

Ogni tipo di testing serve a uno scopo distinto e differente. Ognuno ha i suoi benefici, le sue sfide e caratteristiche che lo rendono unico in funzione di diversi obiettivi software. 

Parlando di unit test, dai un'occhiata ai nostri consigli sui 10 migliori strumenti per unit testing.

End-To-End Testing: cos'è e cosa non è

L'end-to-end testing significa testare un flusso di lavoro dall'inizio alla fine. Molti flussi di lavoro o processi aziendali oggi si estendono su più applicazioni e sistemi. Ecco perché i concetti tradizionali di test delle applicazioni o test di sistema potrebbero non essere più sufficienti da soli.

L'end-to-end testing misura la funzionalità e le prestazioni del processo aziendale. Data la sua natura, non sempre è possibile effettuare l'end-to-end testing in un ambiente di test normale. Spesso è necessario invece un ambiente simulato o reale post-rilascio.

I test end-to-end identificano principalmente problemi, dipendenze e criticità di integrazione.

Questo tipo di testing può sembrare simile allo user acceptance testing (UAT) poiché consente ai tester di replicare il comportamento dell'utente finale, come simulare una transazione tramite un sito web, un tipico processo aziendale consumer. Tuttavia, nello sviluppo moderno e rapido, l'end-to-end testing deve essere un'attività continua e non soltanto un semplice sforzo di acceptance testing. 

Quando si esegue l'end-to-end testing, è fondamentale simulare un ambiente reale, che spesso include interazioni con database. Per ottenere un'esperienza senza intoppi, valuta l'uso di software di gestione database di livello superiore.

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*

I vantaggi e le sfide dell'end-to-end testing

La maggior parte delle aziende oggi lavora sia in cloud che fuori, motivo per cui è importante monitorare da vicino le integrazioni. In genere, l'end-to-end testing è ideale per sistemi eterogenei poiché permette di verificare ogni singolo sistema e livello, dal front-end dell'applicazione, al back-end, fino al database. 

Ed è proprio qui che incontriamo la difficoltà: è necessario che i tester creino ed eseguano molti test ripetitivi e duraturi, una sfida impegnativa. Un set di test più grande implica più tempo e sforzi nella fase di manutenzione. Chi si occupa di end-to-end testing spesso si ritrova sommerso nella creazione e manutenzione degli ambienti di test. 

Poiché l'end-to-end testing mira a simulare le interazioni degli utenti, non può essere svolto esclusivamente nell'ambiente di sviluppo. Tuttavia, l'ambiente di produzione non è sempre disponibile e potrebbe essere soggetto a interruzioni dovute ad aggiornamenti software.

La grande automazione dei test diventa quindi una necessità in un end-to-end testing efficace. I tester dovrebbero concentrarsi sulla progettazione dei test e sull'analisi dei risultati invece che sulla manutenzione dei test esistenti e sulla configurazione degli strumenti e degli ambienti. Una piattaforma di automazione dei test che riduca il carico di manutenzione, automatizzi la preparazione dei test e sia in grado di eseguire test in parallelo può far risparmiare molti sforzi e ancora più tempo.

Regression Testing

I test di regressione entrano in gioco quando il sistema ha subito delle modifiche. Chiunque abbia lavorato nel campo del testing software sa che una modifica in un punto può causare un malfunzionamento da un'altra parte.  

Vedrai il testing di regressione eseguito nella pratica dopo uno di questi scenari: aggiunta di nuove funzionalità, correzioni di bug, aggiornamenti o qualsiasi nuovo rilascio. I tester possono eseguire una selezione parziale o completa di casi di test già esistenti. 

Prendi questo esempio:

Immagina un processo aziendale che inizia con un consumatore che acquista qualcosa tramite un'app mobile. Il processo aziendale potrebbe essere gestito da un'applicazione Salesforce, il pagamento effettuato da un sistema esterno di elaborazione dei pagamenti e l'ordine effettivo processato in un'applicazione SAP. Alcune fasi del processo possono coinvolgere delle persone. 

Gli sviluppatori delle applicazioni coinvolte possono sviluppare le proprie parti in modo indipendente gli uni dagli altri, magari anche senza conoscersi tra loro. Un miglioramento in un'applicazione può causare un problema di incompatibilità in un'altra. Ed è proprio in questi casi che i test end-to-end e i test di regressione si uniscono in modo molto significativo.

Automatizzare i test di regressione nella pipeline di rilascio

I test di regressione completano una pipeline CI/CD perché valutano la stabilità del sistema ad ogni cambiamento. Nessuno ama dover rifare il lavoro o vedere un errore dopo che il software è già stato lanciato. 

Ma questi vantaggi portano con sé delle sfide, specialmente man mano che il software cresce insieme al business. I vecchi casi di test verranno eseguiti insieme ai nuovi, facendo crescere le suite di test e allungando i cicli di testing. L'automazione, e in seguito l'intelligenza artificiale aiuterà nell'esecuzione, nella manutenzione e nell'analisi dei test.

Test End-to-End vs Test di Regressione: Qual è quello giusto per la tua azienda? 

La risposta è entrambi. Non devi scegliere tra test end-to-end e test di regressione. 

Invece, dovresti stabilire quanto testing end-to-end effettuare, quanta parte di esso dev’essere di regressione e quanta di test per nuove funzionalità. 

Come già discusso sopra, i test end-to-end tendono ad essere lenti e a richiedere configurazioni di test complesse. Applicare automazione per ridurre i tempi è essenziale. 

Ma, proprio per la natura complessa dei test end-to-end, l’automazione deve essere costruita in modo che il tempo e lo sforzo necessari per mantenere l’automazione non annullino i benefici ottenuti. 

Un problema importante riscontrato dai tester è che l’esecuzione ripetitiva di grandi suite di test in un ambiente eterogeneo comporta cicli di test lunghi e un processo laborioso. Ma non c'è modo di evitarlo. 

I processi digitali di business continuano ad aumentare sia in numero che in complessità. Un ottimo team di testing dotato di strumenti di automazione moderni può davvero contribuire al successo dell’azienda. Sentiamo anche spesso che i team si trovano a dover utilizzare diversi strumenti per testare diverse app, quindi potrebbe essere utile trovarne uno che consenta di testare scenari multipli.

Ti potrebbe interessare anche: 10 migliori strumenti di visual regression testing per i team QA