Cos'è test delle prestazioni?

Un gruppo eterogeneo di giovani che si sorridono in una sala conferenze

Autori

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Cos'è il test delle prestazioni?

Il test delle prestazioni valuta le prestazioni del sistema o dell'applicazione con carichi di varie dimensioni.

I criteri chiave includono velocità (quanto velocemente opera), stabilità (se funziona senza arresti anomali), scalabilità (la fluidità con cui vengono gestiti i carichi in aumento) e la reattività (quanto velocemente risponde ai prompt degli utenti).

Il concetto di prestazioni del software è alla base di tutti gli usi dei computer e le scarse prestazioni possono vanificare i migliori sforzi di un'organizzazione per offrire un'esperienza utente di qualità. Se gli sviluppatori non supervisionano adeguatamente i test delle prestazioni o non li eseguono con sufficiente frequenza, possono introdurre rallentamenti a livello di prestazioni. Questa situazione può soffocare la capacità di un sistema di gestire persino i carichi di traffico tipici durante i periodi normali.S Il tutto diventa ancora più problematico quando periodi imprevisti di picchi di utilizzi creano una domanda superiore.

Questa sfida potrebbe mettere a repentaglio le operazioni di un'azienda rivolte al pubblico. Lo sviluppo di una reputazione di qualità duratura richiede solitamente lunghi periodi di tempo. Tuttavia, questa reputazione può essere scalfita rapidamente e in modo permanente quando il pubblico inizia a chiedersi se un sistema o un'applicazione abbiano funzionalità affidabili. La pazienza dell'utente finale sta diventando sempre più limitata. Poiché la reputazione dell'azienda è spesso a rischio, c'è molto in gioco quando si parla di prestazioni.

Le ultime notizie nel campo della tecnologia, supportate dalle analisi degli esperti

Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e altro con la newsletter Think. Leggi l'Informativa sulla privacy IBM.

Grazie per aver effettuato l'iscrizione!

L'abbonamento sarà fornito in lingua inglese. Troverai un link per annullare l'iscrizione in tutte le newsletter. Puoi gestire i tuoi abbonamenti o annullarli qui. Per ulteriori informazioni, consulta l'Informativa sulla privacy IBM.

Le sei fasi del test delle prestazioni

Definiamo prima la metodologia utilizzata nella maggior parte degli scenari di test delle prestazioni. Sei passaggi, composti da più parti, definiscono il tipico processo di test delle prestazioni.

1. Definire i criteri e i requisiti delle prestazioni

Il primo passo nel processo di test delle prestazioni consiste nell'impostare parametri utili, come delineare gli obiettivi dell'applicazione a livello di prestazioni.

Bisogna quindi stabilire quali sono i criteri di prestazione accettabili (come tempi di risposta, produttività, utilizzo delle risorse e percentuali di errore).

Questa fase è anche il momento in cui il personale identifica indicatori chiave di prestazioni (KPI) per supportare in modo efficace le priorità aziendali e i requisiti a livello di prestazioni.

2. Progettare e pianificare i test

Non tutti i test devono essere utilizzati in ogni situazione. Gli sviluppatori o altri tester devono definire ciò che i test intendono analizzare.

Iniziano definendo gli scenari di utilizzo principali e progettando casi di test che riflettono le interazioni degli utenti nel mondo reale. Il passaggio successivo consiste nello specificare i dati di test e i workload che verranno utilizzati durante il processo di test.

Dopo avere bloccato queste variabili, i tester selezionano gli strumenti per il test delle prestazioni, gli script di test e le tecniche di test da utilizzare. Questa fase include l'impostazione del gating, ovvero il processo in base al quale determinate condizioni di qualità basate su codice consentono o negano l'accesso alle fasi di produzione successive.

Il test delle prestazioni esamina anche la larghezza di banda per confermare che le velocità di trasmissione dei dati possono gestire sufficientemente il traffico dei workload.

3. Creare ambienti di test

È necessario compiere un ultimo passaggio prima che il processo di test delle prestazioni possa iniziare ufficialmente. I tester creano un ambiente di test che imita accuratamente l'ambiente di produzione reale del sistema, quindi confermano che le applicazioni software sottoposte a test (AUT) siano state implementate all'interno dell'ambiente di test.

La preparazione finale prevede l'integrazione di strumenti di monitoraggio per acquisire le metriche delle prestazioni generate dal sistema durante il test.

4. Condurre i test

Dopo avere definito in modo chiaro i parametri del test, è il momento di eseguire il test delle prestazioni. I tester o l'automazione dei test eseguono gli scenari di prova scelti e queste prove vengono utilizzate insieme agli strumenti di test delle prestazioni.

I tester in genere monitorano le prestazioni del sistema in tempo reale in modo da poter verificare la produttività, i tempi di risposta e l'utilizzo delle risorse.g Durante gli scenari di prova, i tester monitorano il sistema per individuare eventuali colli di bottiglia nelle prestazioni o altre anomalie relative alle prestazioni che si riflettono nelle metriche di test.

5. Risultati dello studio

Successivamente, i tester valutano i dati sulle prestazioni raccolti durante il processo di test. Esaminano attentamente i dati raccolti e cercano le aree delle prestazioni che necessitano di miglioramenti.

I tester confrontano quindi questi risultati con i benchmark delle prestazioni stabiliti nella prima fase del processo di test. Grazie a questo confronto, i tester possono vedere dove i risultati dei test si discostano dalle prestazioni previste e dove potrebbero essersi verificati dei colli di bottiglia.

6. Ottimizzare, testare, ripetere

Dopo avere identificato i problemi di prestazioni attraverso l'analisi dei dati di test, gli sviluppatori lavorano sul codice per aggiornarlo con il sistema. Utilizzano ottimizzazioni del codice, aggiornamenti delle risorse o modifiche della configurazione per mitigare i problemi di prestazioni rilevati.

Dopo avere implementato le modifiche, gli sviluppatori ripetono la sequenza di test del software per confermare che le modifiche siano state applicate con successo. Gli sviluppatori ripetono le procedure fino a quando i risultati delle prestazioni non sono allineate ai benchmark definiti.

IBM DevOps

Cos'è DevOps?

Andrea Crawford spiega cos'è DevOps, il suo valore e in che modo le pratiche e gli strumenti DevOps ti aiutano a spostare le tue app nell'intera delivery pipeline, dall'ideazione alla produzione. Guidato dai principali leader di pensiero IBM, il curriculum è progettato con lo scopo di aiutare i leader aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti nell'AI che possono promuovere la crescita.

Chi trae beneficio dal test delle prestazioni?

Il test delle prestazioni va "dietro le quinte" per controllare l'output del sistema o dell'applicazione, quindi è logico che i team di sviluppo software siano gli utenti più comuni dei metodi di test delle prestazioni. In questo primo gruppo di utenti sono inclusi professionisti attivamente impegnati nel processo di sviluppo, ovvero sviluppatori, ingegneri del controllo della qualità (QA) e team DevOps. Ognuno ottiene qualcosa di unico dai test delle prestazioni:

  • Gli sviluppatori utilizzano i test delle prestazioni per individuare problemi di prestazioni nelle prime fasi del ciclo di vita dello sviluppo del software (SDLC), così da poter stabilire le priorità delle modifiche in fase di sviluppo e implementarle in modo più efficiente.
  • I team di controllo qualità si affidano ai test delle prestazioni per rendere più informate le loro attività e per determinare se la velocità operativa, la stabilità funzionale e le caratteristiche di scalabilità di un'applicazione funzionano sufficientemente con vari workload.

Il successivo gruppo di utenti non è costituito da sviluppatori, tuttavia lavora comunque a livello base con la gestione delle prestazioni del sistema quale componente principale del proprio lavoro:

  • I project manager utilizzano i test delle prestazioni per valutare i rischi e valutare gli impatti di sistema che potrebbero derivare dalle modifiche al sistema.
  • I Chief Technology Officer (CTO) o il personale con funzioni simili necessitano del test delle prestazioni per determinare come il cambiamento della domanda possa essere tradotto in una crescita nel lungo periodo.
  • I proprietari delle aziende vogliono soprattutto proteggere le fonti di guadagno. Il test delle prestazioni conferma che i tempi di caricamento sono sufficientemente rapidi e che un servizio clienti che non risponde non ostacola il processo di fatturazione.

Tuttavia, non è solo il management aziendale a eseguire i test delle prestazioni. Molte organizzazioni e aziende fanno uso frequente dei test delle prestazioni per vari scopi in aziende di qualsiasi dimensione:

  • Le grandi aziende che sperimentano regolarmente periodi di elevato volume di traffico dipendono dai test delle prestazioni per confermare che le loro applicazioni possono gestire workload pesanti. Questo approccio è particolarmente importante per le aziende che dipendono fortemente da piattaforme online con un'ampia base di utenti.
  • Le piccole aziende (e le startup) necessitano del test delle prestazioni quale parte delle attività di pianificazione della crescita. Queste organizzazioni utilizzano i test delle prestazioni per individuare futuri colli di bottiglia che potrebbero avere un impatto negativo sulla loro capacità di crescere con successo.
  • Le aziende (di qualsiasi dimensione) che si preparano a lanciare nuove applicazioni sono intelligenti se eseguono il test delle prestazioni per prevedere eventuali problemi con gli scenari operativi reali. Lo stesso vale per le aziende che apportano importanti modifiche ai sistemi IT.
  • Gli istituti finanziari hanno enormi responsabilità e devono far fronte a considerevoli normative di settore. Queste imprese utilizzano regolarmente i test delle prestazioni per garantire gli standard di base, soprattutto per quanto riguarda i periodi di elevato volume di transazioni.

Tipi di test delle prestazioni

Gli sviluppatori eseguono diversi tipi di test delle prestazioni per ricavare tipi specifici risultati sui dati e supportare una determinata strategia di test. Ecco i tipi di test più importanti.

Test di caricamento

Il test di carico indica il comportamento del sistema quando opera con i carichi previsti. L'obiettivo del test di carico è quello di mostrare il comportamento del sistema quando si verificano workload di routine in condizioni di lavoro normali con un numero medio di utenti simultanei.

Esempio: per un sito di e-commerce, un tester simula di essere un utente del sito e di passare attraverso le fasi di acquisto degli articoli, inserendo prodotti nel carrello e pagando per tali acquisti.

Test di scalabilità

Il test di carico mostra se il sistema è in grado di sostenere condizioni di carico regolari. La scalabilità sottopone invece il sistema a stress, aumentando il volume dei dati o i carichi utente gestiti. Mostra se un sistema è in grado di soddisfare un ritmo maggiore continuando comunque a fornire risultati.

Esempio: nella scalabilità verticale, uno sviluppatore potrebbe aumentare la CPU e la memoria di un server di database affinché possa gestire un volume maggiore di query di dati.

Stress test

Lo stress test è analogo a una prova di immersione condotta dall'equipaggio di un sottomarino. In questo caso, il sistema viene spinto fino ai suoi limiti operativi noti, e poi anche oltre, per determinare esattamente quanto possa sopportare prima di raggiungere il punto di rottura.

Esempio: il test di failover è una forma estrema di stress test che inizia con la simulazione dei guasti dei componenti. L'obiettivo è quello di vedere quanto tempo impiega il sistema per ripristinarsi e riprendere le operazioni.

Test di picco

Qui stiamo testando un diverso tipo di stress, ovvero quando il traffico degli utenti o il trasferimento del volume di dati subisce improvvisamente un forte e drastico picco di attività. Il sistema deve assorbire varie modifiche pur continuando con le normali operazioni.

Esempio: le aziende che gestiscono siti web devono prepararsi non solo alle interruzioni, ma anche all'ondata di utenti che cercano di accedere al sito contemporaneamente una volta che questo è tornato online. Devono anche valutare se il sistema è in grado di gestire quell'improvviso aumento della domanda. Il test del picco può calcolare la probabilità che tutto vada liscio.

Test di volume

Talvolta, nell'ambito delle prestazioni, parliamo di traffico degli utenti. Il test di volume, al contrario, riguardano il modo in cui un sistema gestisce grandi quantità di dati. Il sistema è in grado di elaborare i dati in modo completo e memorizzarli senza degradarli?

Esempio: una clinica medica conserva enormi volumi di informazioni sui pazienti e ha l'obbligo legale di poter accedere a tali cartelle cliniche e ai relativi dati. Questo costante afflusso di dati può mettere a dura prova un sistema. Il test di volume consente agli utenti di sapere se il proprio sistema è in grado di accettare costantemente più dati.

Test di resistenza

Può essere considerato come un test delle prestazioni nel lungo periodo. I veri colpevoli ricercati dal test di resistenza (chiamato anche soak test) sono il degrado dei dati e i problemi di perdita di memoria che spesso si verificano nell'arco di un lungo periodo di tempo.

Esempio: le piattaforme di social media funzionano 24 ore su 24 e l'uso continuo può presentare problemi a livello di stabilità della piattaforma, data storage e account utente. Il test di resistenza fornisce un quadro delle operazioni attuali, così come indicatori delle prestazioni future.

Gli strumenti di test delle prestazioni più utilizzati

Sviluppatori e tester possono scegliere tra numerosi strumenti progettati per il test delle prestazioni. Ecco alcuni dei più importanti:

  • JMeter: l'applicazione JMeter di Apache è un software open source molto apprezzato, progettato per il test delle prestazioni dei workload. Lo strumento può utilizzare gruppi di thread per generare utenti virtuali che eseguono il mirroring di scenari di traffico che coinvolgono utenti reali, incluse le condizioni con un sovraccarico di utenti. Queste situazioni estreme sono considerate uno studio di un sistema sottoposto a test (SUT). JMeter fornisce preziose metriche di test, come i tempi di risposta, che misurano la velocità con cui un sistema sottoposto a test (SUT) risponde alle richieste degli utenti. Tiene inoltre traccia dei tassi di errore, ovvero la percentuale di richieste non riuscite, e del throughput, indicando il numero di richieste che un SUT può gestire in un determinato intervallo di tempo.
  • LoadRunner: come per JMeter, LoadRunner crea una quantità enorme di utenti virtuali. LoadRunner genera quindi attività utente artificiali per questi milioni di utenti virtuali, come i messaggi tra componenti o le interazioni degli utenti con l'interfaccia utente. Tali interazioni sono memorizzate negli script di test generati da LoadRunner. Risulta che, nel 2025, più di 2.600 aziende utilizzavano Micro Focus LoadRunner come strumento per i test delle prestazioni e per le attività di controllo qualità.
  • Roadrunner: "PHP" una volta stava per "personal home page", tuttavia il termine si è trasformato nel significato di "preprocessore ipertestuale". Ora si riferisce a un linguaggio di scripting lato server (il che significa che gli sviluppatori eseguono il codice sui server e non sui browser web client). RoadRunner open source (da non confondere con LoadRunner, dal suono simile) funge da server di applicazioni PHP e gestore di processi. Semplifica le prestazioni delle applicazioni annullando la necessità del tempo di caricamento all'avvio e limitando la latenza. RoadRunner abilita un framework di analisi dinamica per i programmi Java che operano contemporaneamente. RoadRunner offre una application programming interface (API) che valuta i flussi di eventi.

Impatti dell'AI sul test delle prestazioni

Come per quasi tutte le questioni relative ai computer, l'intelligenza artificiale (AI) sta ora spingendo i test del software verso livelli di efficienza completamente nuovi. Sta rendendo il processo di test delle prestazioni complessive più veloce, più accurato e più facile da automatizzare.

In particolare, l'AI può impiegare cicli di test più brevi, riducendo i tempi di esecuzione dei test. Inoltre, grazie all'elevata precisione dell'AI, è in grado di notare i cambiamenti nelle prestazioni più lievi che potrebbero sfuggire ai tester umani. Attraverso l'analytics predittiva, l'AI può inoltre valutare le tendenze operative e i dati storici e prevedere dove e quando potrebbero verificarsi i prossimi colli di bottiglia. Può anche utilizzare il comportamento predittivo del sistema e persino regolare i parametri di test in base a esso.

Tuttavia, la cosa di gran lunga più significativa che l'AI ha fatto per le prestazioni (finora) è assisterne gli sforzi su larga scala promuovendo l'automazione. Questa automazione è sorprendente perché è perfettamente in grado di eseguire l'intero processo di test delle prestazioni.

L'AI non solo può automatizzare il modo in cui vengono eseguiti i test, ma può anche scrivere gli script di test destinati all'esecuzione. Inoltre, è in grado di interpretare i risultati dei test sul back-end e di offrire indicazioni per risolvere le situazioni problematiche.

Uno degli impatti più interessanti e promettenti dell'AI sui test delle prestazioni è il crescente uso della collaborazione uomo-AI. Questa collaborazione parte dal presupposto che l'istinto e la conoscenza umana abbiano ancora un ruolo vitale da svolgere. Di fatto, in alcune situazioni, seguire gli impulsi umani rappresenta ancora la direttiva principale.

Alcuni esperti sono convinti che i test delle prestazioni del futuro si basino su questo approccio ibrido, che abbina la mentalità e la potenza di elaborazione del computer al senso umano del contesto e delle sfumature.

Soluzioni correlate
IBM DevOps Accelerate

Automatizza la distribuzione del software per qualsiasi applicazione on premise, cloud o mainframe.

Esplora DevOps Accelerate
Soluzioni DevOps

Utilizza il software e gli strumenti DevOps per creare, distribuire e gestire app cloud-native su più dispositivi e ambienti.

Esplora le soluzioni DevOps
Servizi di consulenza cloud 

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.

Servizi cloud
Fai il passo successivo

Sblocca il potenziale delle DevOps per costruire, testare e distribuire app cloud-native sicure, con integrazione e distribuzione continua.

Esplora le soluzioni DevOps Scopri DevOps in azione