top 20 memory leak detection tools
Elenco e confronto dei migliori strumenti di rilevamento e gestione delle perdite di memoria per Java, JavaScript, C, C ++, Visual Studio su sistemi Linux, Windows e Android:
Questo tutorial ti introdurrà a un nuovo concetto che non è altro che Gestione delle perdite di memoria .
I nostri programmi di sistema tendono ad avere alcuni problemi di memoria durante l'esecuzione sulle macchine, il che a sua volta potrebbe causare la rovina delle allocazioni di memoria.
La perdita di memoria degrada le prestazioni del sistema riducendo la quantità di memoria disponibile per ogni programma nel sistema. Questi problemi di memoria sono generalmente determinati e risolti dai programmatori che accedono al codice sorgente del sistema software.
miglior programma per monitorare le temperature della cpu
I sistemi operativi moderni di oggi sono adattabili ai problemi di memoria. Riducono istantaneamente il consumo di memoria e liberano la memoria occupata dalle applicazioni una volta chiuse.
In questo tutorial, esamineremo di cosa si occupa esattamente la perdita di memoria e come gestire i suoi strumenti.
Cosa imparerai:
- I migliori strumenti di rilevamento e gestione delle perdite di memoria
- # 1) GCeasy
- # 2) Eclipse MAT
- # 3) Memcheck di Valgrind
- # 4) GlowCode
- # 5) AQTime di Smartbear
- # 6) WinDbg
- # 7) BoundsChecker
- # 8) Deleaker
- # 9) Dottor Memory
- # 10) Intel Inspector XE
- # 11) Assicurare ++
- # 12) Rilevatore di perdite visive per Visual C ++ 2008-2015
- # 13) Visual Studio Profiler
- # 14) Mtuner
- # 15) Rilevatore di perdite di Windows
- # 16) AddressSanitizer (A San)
- # 17) GCViewer
- # 18) Plumbr
- # 19) Validatore di memoria .NET
- # 20) C ++ Memory Validator
- # 21) Dynatrace
- Strumenti aggiuntivi per la perdita di memoria
- Conclusione
- Lettura consigliata
Cos'è la perdita di memoria?
# 1) Quando un programma per computer utilizza inutilmente la memoria e la alloca in modo improprio, alla fine provoca una perdita di memoria nel sistema.
#Due) A volte il sistema non rilascia l'allocazione di memoria indesiderata poiché non ha rilasciato la memoria anche dopo aver chiuso l'applicazione o il programma.
# 3) Quando un programma consuma più della memoria effettiva richiesta, di conseguenza, si verificheranno problemi di memoria e rallentamenti delle prestazioni del sistema.
# 4) In termini di programmazione orientata agli oggetti, se un oggetto è memorizzato nella memoria ma non è accessibile dal codice del programma (definito un oggetto e allocata la memoria ma otteniamo comunque un errore che indica che l'oggetto non è definito).
# 5) Esistono alcuni linguaggi di programmazione come C e C ++ che non supportano implicitamente la garbage collection automatica e possono creare tali problemi di perdita di memoria mentre ci si lavora (Java utilizza il processo di Garbage Collection per gestire la perdita di memoria).
# 6) La perdita di memoria riduce le prestazioni del sistema diminuendo la quantità di memoria disponibile, aumentando la quantità di thrashing e alla fine causando errori o rallentamenti del sistema.
# 7) Memory Leak Management è il meccanismo che viene eseguito nel sistema operativo per allocare la memoria in modo dinamico e rilascia quando non in uso.
Tipi di perdite di memoria
Le perdite di memoria possono essere classificate in diversi tipi e alcuni di essi sono spiegati di seguito.
- Membro dei dati trapelati: La memoria allocata per il membro della classe viene deallocata prima che la classe venga eliminata.
- Memoria globale trapelata: Perde la memoria che non fa parte della classe creata ma può essere utilizzata da varie funzioni e metodi.
- Memoria statica trapelata: Perde la memoria che è dedicata ad una funzione definita dalla classe creata.
- Perdita di memoria virtuale: Quando una classe base non è dichiarata come Virtual, i distruttori per l'oggetto derivato non possono essere chiamati.
- Chiamare il deallocatore sbagliato.
Gestione delle perdite di memoria
# 1) La perdita di memoria persiste quando non vi è alcun riferimento all'allocazione di memoria.
#Due) Tali perdite di memoria fanno sì che un programma venga eseguito più del tempo previsto e consuma la memoria in eccesso eseguendo continuamente in background o su un server.
# 3) I dispositivi portatili risentono maggiormente delle perdite di memoria poiché contengono una quantità minore di memoria e riducono la capacità di elaborazione di un dispositivo.
# 4) Possiamo prendere il fileEsempiodi .NET Memory Leak Management System come,
- CLR (Common Language Runtime) si occupa dell'allocazione delle risorse in .NET e le rilascia.
- .NET supporta 3 tipi di allocazione della memoria come:
- Pila: Memorizza variabili locali e parametri del metodo. Il riferimento a ogni oggetto creato viene archiviato in Stack.
- Heap non gestito: Il codice non gestito allocherà l'oggetto in uno stack non gestito.
- Heap gestito: Il codice gestito allocherà l'oggetto su uno stack gestito.
# 5) Il Garbage Collector verifica gli oggetti che non sono in uso e, una volta trovati, vengono rimossi dal Garbage Collector.
# 6) Garbage Collector gestisce l'albero o la struttura simile a un grafico per controllare le radici dell'applicazione per ogni oggetto accessibile direttamente e indirettamente e se vengono trovati oggetti che non sono presenti, lo inserisce semplicemente nella raccolta dei rifiuti.
Ora, esamineremo alcuni popolari strumenti di gestione delle perdite di memoria che sono ampiamente utilizzati per gestire le perdite di memoria.
******************
= >> Contattaci per suggerire un elenco qui.
*****************
I migliori strumenti di rilevamento e gestione delle perdite di memoria
Di seguito è riportato l'elenco degli strumenti di rilevamento e gestione delle perdite di memoria più comunemente utilizzati.
# 1) GCeasy
- Questo strumento gratuito risolve rapidamente i problemi di memoria ed è noto come un ottimo analizzatore di memoria.
- È il primo strumento di analisi dei log di Garbage Collection guidato dalla macchina.
- Supporta anche tutti i log di GC Android, utilizza l'algoritmo di apprendimento automatico per rilevare i problemi di memoria verificatisi e notifica anche i problemi futuri.
- Rilevamento automatico dei problemi, analisi GC in linea istantanea, analisi di registrazione GC unificata sono alcune delle caratteristiche importanti di questo strumento.
Clic Qui per accedere al sito ufficiale di GCeasy.
# 2) Eclipse MAT
- Eclipse MAT è noto come un analizzatore di heap Java veloce e caratterizzato.
- Questo strumento aiuta a ridurre il consumo di memoria e rilevare perdite di memoria.
- Genera report automatici che generano informazioni sull'errore che impedisce al Garbage Collector di raccogliere oggetti.
- L'obiettivo principale di questo strumento rimane il consumo elevato di memoria e gli errori di memoria insufficiente.
- Questo progetto include Eclipse Photon, Eclipse Oxygen, Neon, Kepler ecc.
Clic Qui per accedere al sito ufficiale di Eclipse MAT.
# 3) Memcheck di Valgrind
- Memcheck è in grado di rilevare i seguenti problemi di memoria in base a chiamate malloc, new, free ed delete memory:
-
- Memoria non inizializzata
- Puntatori persi
- Utilizzo della memoria liberata
- Accesso ad aree inadeguate nello stack
-
- Controlla e dirige automaticamente i parametri ovunque siano definiti.
- Memcheck di Valgrind è un software commerciale per rilevare errori di memoria.
- È utile per rilevare gli errori di memoria che si sono verificati in C e C ++.
- Inoltre, Memcheck controlla se il buffer definito dal programma è indirizzabile o meno.
- Memcheck tiene traccia dei blocchi heap per riconoscere il blocco non libero una volta che il programma è uscito.
Clic Qui per navigare al sito ufficiale di Memcheck.
# 4) GlowCode
- GlowCode è un analizzatore di memoria e prestazioni in tempo reale commerciale dedicato per Windows e .NET Framework.
- GlowCode identifica le perdite di memoria nelle applicazioni in esecuzione scritte in linguaggio conforme a C ++, C # o NET.
- Controlla anche il flusso delle prestazioni, la copertura del codice e il consumo eccessivo di memoria.
- Supporta Windows 10 e Windows Server 2016 e fornisce il rilevamento precoce dei problemi di prestazioni e memoria nel sistema in esecuzione.
- Supporta codice nativo, gestito e misto.
Clic Qui per accedere al sito ufficiale di GlowCode.
# 5) AQTime di Smartbear
- AQTime è lo strumento proprietario di Smartbear che supporta Delphi, C #, C ++, .NET, Java ecc.
- Rileva perdite di memoria, colli di bottiglia delle prestazioni e lacune di copertura del codice nel sistema dell'applicazione.
- Analizza in modo efficiente le informazioni sulla memoria e sulle prestazioni complesse per identificare il bug con la causa principale.
- L'approccio più veloce per rilevare perdite di memoria, gap di copertura del codice e colli di bottiglia delle prestazioni.
- Analisi Delphi dall'alto verso il basso dell'applicazione per identificare la memoria e la perdita di risorse.
Clic Qui per navigare nel sito ufficiale di AQTime.
# 6) WinDbg
- Windbg per Windows viene utilizzato per identificare i dump della memoria del kernel ed esaminare il registro della CPU.
- È disponibile in una build diversa per dispositivi Windows, applicazioni Web e desktop.
- La funzione di identificazione dei dump di arresto anomalo in modalità utente è nota come 'Debug post-mortem'.
- È possibile distribuire estensioni DLL per eseguire il debug di Command Language Runtime (CLR).
- Windbg viene fornito con Ext.dll precaricato che vengono utilizzati come estensione standard del debugger di Windows.
Clic Qui per accedere al sito ufficiale di Windbg.
# 7) BoundsChecker
- Questo è lo strumento proprietario per la memoria e lo strumento di convalida delle API per il software C ++.
- Ci sono due ActiveCheck e FinalCheck, ActiveCheck viene eseguito contro l'applicazione e Controllo finale serve per controllare la forma strumentale del sistema.
- ActiveCheck è in grado di rilevare perdite di memoria monitorando le chiamate API e COM.
- FinalCheck viene fornito con le funzionalità di ActiveCheck insieme alla capacità di rilevare l'overflow del buffer e la memoria non definita.
- Il rilevamento di sovraccarico della memoria è la caratteristica migliore per cui è noto BoundsChecker.
Clic Qui per accedere al sito ufficiale di BoundsChecker.
# 8) Deleaker
- Deleaker è uno strumento di rilevamento delle perdite di memoria proprietario autonomo ed è utilizzato anche come estensione di Visual C ++.
- Rileva anche perdite di memoria nell'heap e nella memoria virtuale e si integra facilmente con qualsiasi IDE.
- La versione standalone esegue il debug dell'applicazione per mostrare l'attuale allocazione degli oggetti.
- Supporta tutti i sistemi a 32 e 64 bit ed è completamente integrato con Visual Studio.
- Genera ricchi report ed esporta il risultato finale in XML.
Clic Qui per accedere al sito ufficiale di Deleaker.
# 9) Dottor Memory
- Dr. Memory è uno strumento gratuito di monitoraggio della memoria per Windows, Linux e Mac.
- Questo strumento è in grado di identificare la memoria non inizializzata e non indirizzabile e la memoria liberata.
- Dr. Memory definisce 3 tipi di errori:
-
-
- Ancora - posizione raggiungibile: memoria raggiungibile dall'applicazione.
- Perdita: memoria non raggiungibile dall'applicazione.
- Possibile perdita: Memoria raggiungibile tramite puntatori.
-
-
- Inoltre, definisce due tipi di perdite come un diretto e Indiretto perdita.
Clic Qui per accedere al sito ufficiale di Deleaker.
# 10) Intel Inspector XE
- Questo strumento proprietario aiuta a rilevare tempestivamente le perdite di memoria e aiuta a ridurre le spese per la risoluzione delle perdite di memoria.
- Noto come debugger degli errori per le applicazioni C, C ++ in esecuzione su Windows e Linux senza utilizzare alcun compilatore speciale.
- È anche disponibile come parte di Intel Parallel Studio XE e Intel System Studio.
- Intel Inspector XE esegue analisi statiche e dinamiche per identificare la causa principale delle perdite di memoria.
- L'analisi dinamica rileva le cause alla radice complesse di perdite di memoria che non vengono rilevate dall'analisi statica.
- Rileva la memoria danneggiata, l'accesso illegale alla memoria, la memoria non inizializzata e la memoria incoerente, ecc.
Clic Qui per accedere al sito ufficiale di Intel Inspector XE.
# 11) Assicurare ++
- Parasoft Insure ++ è il debugger di memoria commerciale proprietario per C / C ++.
- Rileva automaticamente imprecisioni, violazioni legate all'array, memoria non allocata.
- In grado di eseguire l'analisi dello stack quando si è verificata una perdita effettiva.
- Per l'insieme di codice testato, Insure ++ produce la sequenza di codice lineare e la sequenza di codice di salto.
Clic Qui per navigare al sito ufficiale di Insure ++.
# 12) Rilevatore di perdite visive per Visual C ++ 2008-2015
- Visual Leak Detector è uno strumento gratuito e open source per il rilevamento di perdite di memoria per C / C ++.
- Diagnostica rapidamente le perdite di memoria nell'applicazione C ++ e seleziona il modulo che deve essere escluso dalla perdita di memoria.
- Visual C ++ fornisce il rilevamento di perdita di memoria integrato dispone di un set completo di blocchi trapelati.
- Rapporti di perdita di memoria personalizzabili e dettagliati sono la caratteristica migliore di questo strumento.
- Abilita il codice sorgente documentato completo alla libreria.
Clic Qui per navigare verso the Sito ufficiale di Visual Leak Detector.
# 13) Visual Studio Profiler
- Visual Studio viene fornito con lo strumento di utilizzo della memoria che aiuta a rilevare perdite di memoria e memoria inefficiente.
- Questo strumento viene utilizzato per app desktop, app ASP.NET e app Windows.
- È possibile acquisire istantanee della memoria gestita e nativa e analizzare singole istantanee per comprendere l'impatto di un oggetto sulla memoria.
- È possibile utilizzare più di uno snapshot per trovare la causa principale dell'eccessivo utilizzo della memoria.
- Abilita il codice sorgente documentato completo alla libreria.
Clic Qui per navigare verso the Sito ufficiale di Visual Studio Profiler.
# 14) Mtuner
- Mtuner è un rilevatore di perdite di memoria utilizzato per applicazioni Windows e PlayStation.
- Fornisce funzionalità aggiuntive per la profilazione della memoria.
- Mtuner può gestire un numero di allocazioni al secondo con scalabilità lineare delle prestazioni.
- Mtuner viene fornito con la profilazione basata sulla riga di comando che è utile per tenere traccia dei cambiamenti quotidiani nell'utilizzo della memoria.
Clic Qui per navigare verso the Sito ufficiale Mtuner.
# 15) Rilevatore di perdite di Windows
- Windows Leak Detector è uno strumento di rilevamento delle perdite di memoria per applicazioni Windows.
- Alcuni dei principali rilevatori di perdite di Windows sono:
-
-
- Non è richiesto alcun codice sorgente e se è presente richiede meno modifiche.
- Può analizzare qualsiasi applicazione Windows scritta in qualsiasi lingua.
- Efficace e più adatto per applicazioni sviluppate in un modello ciclico.
-
-
- Questo strumento è costantemente in fase di sviluppo e presenta ancora alcune limitazioni:
-
-
- È possibile gestire un solo processo alla volta, la funzionalità di comunicazione tra processi verrà aggiunta in futuro.
- Analizza solo le funzioni HeapAlloc, HeapRealloc e HealFree.
-
-
Gli sviluppatori di sistema del sistema stanno lavorando per aggiungere più funzioni di memoria come HeapCreate.
Clic Qui per navigare verso the Sito ufficiale di Windows Leak Detector.
# 16) AddressSanitizer (A San)
- Questo strumento open source è progettato per rilevare perdite di memoria nel programma C / C ++.
- Lo strumento più veloce è costituito dal modulo di strumentazione del compilatore e dalla libreria run-time.
- Questo strumento rileva l'overflow del buffer di stack e heap e le perdite di memoria.
- LeakSanitizer è integrato con AddressSanitizer che svolge il lavoro di rilevamento delle perdite di memoria.
- Con LeakSanitizer possiamo specificare l'istruzione per ignorare alcune perdite di memoria inviandola in un file Suppression separato.
- Questo strumento è supportato su Linux, Mac, OS X, Android e iOS Simulator.
Clic Qui per navigare verso the Sito ufficiale di AddressSanitizer.
# 17) GCViewer
- GCViewer è uno strumento gratuito generato da JVM IBM, HP, Sun Oracle e BEA.
- Questo strumento viene utilizzato per analizzare e analizzare i file di registro GC.
- È possibile generare i dati in formato CSV come applicazione per fogli di calcolo.
- Funziona su Verbose Garbage Collection. La Garbage Collection dettagliata in breve è:
-
- Una garbage collection di generazione basata su eventi per ogni operazione.
- L'output Verbose Garbage Collection contiene l'ID incremento e il timestamp locale.
-
Clic Qui per navigare verso the Sito ufficiale di GCViewer.
# 18) Plumbr
domanda di intervista di test del software per esperti
- È uno strumento commerciale proprietario utilizzato per controllare le perdite di memoria e la garbage collection nell'applicazione JVM.
- Plumbr si basa su due importanti moduli come un agente e un portale.
- L'agente supporta JVM e invia informazioni sulla raccolta dei rifiuti e sulla perdita di memoria al portale.
- È possibile visualizzare le informazioni sull'utilizzo della memoria e sull'heap nel portale.
- Lo strumento utilizza un algoritmo di rilevamento basato sull'analisi dei dati sulle prestazioni.
Clic Qui per navigare verso the Sito ufficiale di Plumbr.
# 19) Validatore di memoria .NET
- .NET Memory Validator è un analizzatore di perdite di memoria commerciale, un profiler della memoria utilizzato per lo sviluppo di software e la garanzia della qualità.
- Noto come il modo più veloce per monitorare più allocazioni di memoria fornendo più approfondimenti come:
-
- Allocazioni: Visualizza le statistiche delle allocazioni con codice colore in base alla classe e
il metodo definito per l'allocazione della funzione. - Oggetti: La visualizzazione degli oggetti mostra l'oggetto con codice colore e l'allocazione della memoria
statistiche per le applicazioni in esecuzione. - Generazioni: Visualizza il numero di oggetti per tipo di oggetto per ogni oggetto
generazione allocata dall'applicazione. - Memoria: La visualizzazione della memoria mostra l'oggetto corrente con informazioni su
tipo di oggetto, dimensione di allocazione e stack di chiamate, timestamp. - Analisi: Questa visualizzazione mostra l'utilizzo della memoria.
- Allocazioni: Visualizza le statistiche delle allocazioni con codice colore in base alla classe e
-
- Le funzioni principali di questo strumento includono il rilevamento delle perdite di memoria, la gestione delle perdite di memoria, l'esecuzione di test di regressione per identificare le perdite di memoria.
- Il validatore di memoria .NET è compatibile con qualsiasi versione di .NET framework e CLR.
- Facile da usare, uno strumento configurabile, potente e multiuso per identificare le perdite di memoria.
Clic Qui per navigare verso the Sito ufficiale del validatore di memoria .NET.
# 20) C ++ Memory Validator
- Proprio come .NET Memory Validator, questo strumento è anche un rilevatore e analizzatore di perdite di memoria commerciale.
- Lo strumento di convalida della memoria C ++ fornisce più approfondimenti come:
-
- Memoria: Visualizza le informazioni sulla memoria allocata e persa e traccia i messaggi di errore. I dati vengono visualizzati in una struttura ad albero che può essere selezionata e filtrata.
- Oggetti: Mostra le statistiche degli oggetti con il tipo di oggetto e gli oggetti allocati, deallocati e riallocati.
- Copertura: Questa visualizzazione fornisce informazioni sull'utilizzo della memoria. Lo strumento viene fornito con filtri che rimuovono i file di terze parti.
-
- La funzione di unione automatica aiuta a unire più statistiche da più informazioni per formare una copertura composita per la suite di test di regressione.
- Oltre a queste informazioni, lo strumento fornisce la visualizzazione Timeline, Hotspot, Dimensioni e Analisi dell'applicazione.
- Strumento potente e configurabile compatibile con Microsoft C e C ++, Intel C ++ ecc.
Clic Qui per navigare verso the Sito ufficiale di C ++ Memory Validator.
# 21) Dynatrace
- Dynatrace è uno strumento commerciale che supporta la gestione delle prestazioni all-in-one e comprende il monitoraggio completo e l'analisi delle singole transazioni.
- Fornisce strumenti di rilevamento delle perdite di memoria per determinare il consumo di memoria.
- Gli strumenti di rilevamento di perdite di memoria Java di Dynatrace sono disponibili per le applicazioni scritte in Java e .NET Profiler Tools vengono utilizzati per le applicazioni in esecuzione in Java.
- Con la sua esclusiva vista hotspot, puoi trovare un oggetto che non utilizza la memoria in modo efficace.
- È possibile eseguire dump di tendenza della memoria sull'utilizzo della memoria. Questo strumento aiuta a identificare quegli oggetti che aumentano continuamente il consumo di memoria e non vengono deallocati correttamente dalla memoria.
Clic Qui per navigare verso the Sito ufficiale Dynatrace.
Strumenti aggiuntivi per la perdita di memoria
Questi sono alcuni strumenti ampiamente utilizzati per rilevare perdite di memoria. Anche in questo caso l'elenco non è ancora finito qui, ci sono anche altri strumenti che vengono utilizzati per raggiungere lo stesso scopo.
Li esamineremo in breve:
# 22) NetBeans Profiler :
NetBeans Profiler è uno strumento di profilazione Java proprietario sviluppato con funzionalità come memoria, thread, query SQL ecc. Oggi questo strumento è dotato di alcune funzionalità nuove e avanzate per gestire i dump dei thread.
URL: NetBeans Profiler
# 23) Mtrace :
Mtrace è integrato con glibc (GNUC è un progetto di libreria per l'implementazione di successo della libreria standard C) che viene utilizzato per rilevare perdite di memoria causate da chiamate insolite malloc / free.
Una volta chiamato, interrompe l'allocazione della memoria agli oggetti. Lo script Mtrace Perl viene utilizzato per analizzare il file di registro creato per rilevare eventuali perdite di memoria. Inoltre, se si fornisce il codice sorgente, è possibile comprendere la posizione esatta in cui si è verificato il problema.
URL: Mtrace
# 24) Java Visual VM :
Visual VM è uno strumento molto utile per gli sviluppatori per tracciare e tenere traccia delle perdite di memoria. Analizza i dati dell'heap e il garbage collector. Assicura l'uso ottimizzato della memoria e aiuta a migliorare le prestazioni dell'applicazione.
Offre funzionalità come Thread Analysis e Heap Dump Analysis per risolvere i problemi di runtime.
Qui abbiamo finito con i più diffusi strumenti di gestione delle perdite di memoria. Possiamo scegliere una o più aree di memoria critiche nel nostro sistema.
Inoltre, con l'uso di questo software, non solo possiamo rendere il compito più facile, ma possiamo anche ridurre il consumo di tempo necessario per rilevare le perdite di memoria, il che è relativamente un compito noioso.
URL: Java Visual VM
Conclusione
Gli strumenti di gestione della perdita di memoria riducono la percentuale di sforzi e il tempo dedicato alla gestione della memoria. La gestione dell'accesso alla memoria, l'allocazione e il rilevamento delle perdite sono un'attività così importante poiché la memoria è la spina dorsale di qualsiasi software per conservare e gestire i dati in modo efficiente.
Ancora una volta, senza un'adeguata allocazione della memoria, non è possibile nemmeno eseguire il sistema dell'applicazione. Per evitare errori di sistema e migliorare le sue prestazioni, è necessario eseguire la gestione della perdita di memoria.
Tenendo presente questa esigenza, molte organizzazioni utilizzano gli strumenti disponibili per questo, mentre alla fine renderanno le cose più facili per loro e per l'utente finale.
******************
= >> Contattaci per suggerire un elenco qui.
******************
Lettura consigliata
- Come risolvere la perdita di memoria nelle app Android utilizzando lo strumento DDMS
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Distribuzione Java: creazione ed esecuzione di file JAR Java
- Java Virtual Machine: come JVM aiuta nell'esecuzione di applicazioni Java
- Modificatori di accesso in Java - Tutorial con esempi
- Tutorial Java Reflection con esempi
- Introduzione al linguaggio di programmazione Java - Tutorial video
- 25 migliori framework e strumenti di test Java per test di automazione (parte 3)