Automazione del test: Migliorare e velocizzare il test con Capture and Replay

Automazione del test: Migliorare e velocizzare il test con Capture and Replay

Migliorare il test con l’approccio Capture and Replay

La valutazione dell’esito del test è la fase più critica dell’intero processo di test. In termini di copertura dei casi di test, solo se l’esito è positivo, comportamento atteso e osservato coincidono; in termini di code coverage, solitamente si raggiungono risultati accettabili anche con percentuali inferiori (70-80%). Pertanto bisogna trovare un modo per migliorare le prestazioni dell’intera fase di test, riducendo il rischio di avere alla fine comportamenti inaspettati. Come si potrebbe fare?
Esiste un approccio noto come “Capture and Replay” (cattura e replicazione) sul quale si basano molti strumenti di test all’avanguardia. Questa tecnica permette di migliorare l’intero processo, partendo dall’osservazione diretta dell’esecuzione dei programmi.

Automazione del test: Migliorare e velocizzare il test con Capture and Replay

La fase di Capture

Monitorando il comportamento di un’applicazione durante l’esecuzione è possibile memorizzarlo ed utilizzare le informazioni raccolte come casi di test: questa è la fase di Capture. E’ bene sapere però che la cattura dell’intera esecuzione è generalmente un evento irrealizzabile, poiché richiede di aver traccia di un volume di dati troppo consistente. Per questo motivo, si utilizza un sottoinsieme di dati d’interesse, detto insieme osservato, che comprende solo i dati che potrebbero intaccare il testing. Si definiscono i confini dell’insieme osservato e si applicano modifiche al codice per riuscire a catturare le interazioni tra insieme osservato e insieme non osservato: tali modifiche vengono chiamate sonde (probes). La tecnica non solo osserva il comportamento dinamico del sistema, ma attua anche variazioni all’interno del codice per poterlo monitorare. Difatti, proprio le sonde permettono la generazione dei dati da memorizzare nei file di log. I dati presenti in tali file sono dunque corrispondenti non all’intera osservazione, ma solo alle azioni del sistema che “attraversano” i confini. Interazioni tipiche sono: chiamate di metodi, accesso ai campi ed eccezioni. La fase di Capture descritta è spesso detta “cattura selettiva”.

La fase di Replay

La fase di Replay segue quella di Capture e prevede l’identificazione di tutte le interazioni e la successiva replicazione degli eventi generati. Il file di log, creato in fase di Capture, viene letto in maniera sequenziale: ciascuna istanza di cui è composto viene singolarmente analizzata. Successivamente, servendosi dei principi della gerarchia scaffolding, si esegue il test replicando l’evento registrato e riproponendo in tal modo il comportamento del sistema.

Infine, si effettua il confronto: se la simulazione produce un risultato identico alla prima istanza registrata del file di log, allora significa che l’esecuzione si è replicata identicamente nei due casi: il test non ha rilevato malfunzionamenti e si può passare alla entry successiva; altrimenti è presente di una discordanza di informazioni ed è necessario segnalarla: il test ha rilevato un malfunzionamento.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *