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.
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.
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.
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.
|