Concetto: Osservazione e analisi di runtime
In questa linea guida viene illustrata l'osservazione e l'analisi di runtime. Si discuterà cioè dell'osservazione del software durante l'esecuzione di runtime e dell'analisi delle osservazioni rilevate, in cui i percorsi vengono tracciati attraverso i componenti software e poi aggregati per agevolare l'interpretazione del comportamento globale del sistema mediante inferenza statistica.
Relazioni
Elementi correlati
Descrizione principale

Introduzione

L'osservazione e la successiva analisi del comportamento di runtime di un componente software è una consuetudine importante per il corretto debug del software. La comprensione del comportamento di runtime del software implica due pratiche fondamentali:

  • Osservazione del software durante l'esecuzione di runtime.
  • Analisi delle osservazioni rilevate.

Le tecniche di osservazione e analisi di runtime sono di per sé indipendenti dall'attività di test, per quanto sia possibile osservare e analizzare il comportamento di runtime senza richiedere input di test predefiniti o ricorrere a tecniche di test per stimolare il comportamento delle applicazioni. Tuttavia, l'attività di test può essere combinata correttamente con le tecniche e gli strumenti di osservazione di runtime: ad esempio, gli strumenti che rendono automatica l'osservazione possono essere attivati durante l'esecuzione del test, migliorando la visibilità nel comportamento di runtime del componente che si manifesta in risposta al test.

Osservazione del comportamento di runtime

Mentre è importante osservare attentamente tutto il comportamento che si manifesta durante l'esecuzione di runtime del software, esistono in genere punti di osservazione significativi che sono utili da controllare nello specifico. Questi punti di osservazione significativi sono spesso:

  • Punti di decisione, in corrispondenza dei quali il percorso logico del software è in procinto di ramificarsi o si è appena ramificato.
  • Punti di completamento, in corrispondenza dei quali è stato completato un percorso logico importante, che in genere scaturisce in una variazione di stato nell'ambito del software.
  • Un punto di interfaccia tra due componenti di applicazione separati.
  • Un punto di interfaccia tra il software e il corrispondente ambiente di esecuzione, compresa qualsiasi interfaccia con i componenti hardware.

Questi punti di osservazione possono inoltre allinearsi ai punti di controllo in corrispondenza dei quali è preferibile modificare lo stato dell'applicazione o il flusso di controllo attraverso i percorsi logici. Queste considerazioni sono spesso ricordate come PCO (Points of Control and Observation, punti di controllo e osservazione).

L'osservazione di runtime esclude i metodi di osservazione statica come approccio primario, ad esempio la revisione del codice sorgente statico del software o delle relazioni tra i componenti principali del software rilevati in modelli visivi, e così via. Piuttosto, richiede un componente software eseguibile e offre informazioni preziose non disponibili attraverso le altre tecniche di debug e relative al comportamento del componente sviluppato quando è in esecuzione nell'ambiente di test oppure nell'ambiente di distribuzione finale. Le osservazioni rilevate dal comportamento di runtime possono essere successivamente correlate agli elementi statici per fornire un'ulteriore analisi approfondita.

Analisi delle osservazioni di runtime

L'analisi di runtime del software è semplicemente la capacità di interpretare il comportamento di un componente software analizzando i dati raccolti durante l'esecuzione di runtime del componente. Durante lo sviluppo del componente da parte di un implementatore, l'osservazione e l'analisi di runtime è un aspetto delle attività di debug svolte dall'implementatore stesso.

Supporto automatico di tool

Dato il volume potenziale di informazioni di basso profilo che possono essere rilevate dal comportamento di runtime, la velocità alla quale vengono generate tali informazioni e la conseguente difficoltà di interpretazione della mole potenzialmente vasta di informazioni, il supporto automatico di tool rappresenta un fattore chiave per la fattibilità di questa pratica. Sono diversi gli approcci che possono essere intrapresi per ottenere il supporto di tool, così come sono numerosi i tool disponibili in commercio che consentono di risparmiare tempo, fatica e denaro nella creazione di propri tool.

Per ulteriori informazioni sui tool di osservazione e analisi di runtime, vedere PurifyPlus.