Generazione automatica della documentazione di test

Generazione automatica della documentazione di test

Vantaggi della Generazione Automatica

La generazione automatica della documentazione di test può avvenire mediante l’uso di appositi strumenti software.
La maggior parte di essi prevede l’analisi del codice sorgente, opportunamente predisposto, per estrarne alcune informazioni rilevanti, al fine di ricavare un certo tipo di documentazione in modo automatico.
Nell’implementazione dei casi di test, così come in qualsiasi altro ambito della programmazione, è buona norma fornire commenti in linguaggio naturale all’interno del codice, per facilitarne la lettura, per spiegarne il funzionamento e per favorire la collaborazione tra diversi sviluppatori.
Se tali commenti vengono specificati con una sintassi standard, può allora essere costruito uno strumento in grado di generare la relativa documentazione del codice in modo automatico, sfruttando la codifica di tali informazioni.
Questo non significa che basterà avviare lo strumento per aver risolto i problemi di creazione e aggiornamento della documentazione, ma anzi, che bisognerà prestare maggior attenzione alla stesura del codice da documentare, rispettando lo standard definito e rendendo i commenti più chiari, completi e dettagliati possibile.
In questo contesto, il commento assume un valore doppio, poiché oltre a spiegare il codice, è anche responsabile della sua documentazione.
Lo sviluppatore di una certa porzione di codice è la persona più adatta a spiegarne le caratteristiche, e se ciò avviene nel momento in cui il codice viene scritto, la generazione automatica permetterà di creare e aggiornare la documentazione in tempo reale.
Contestualmente al testing, è evidente che i vantaggi possono risultare molteplici, soprattutto in termini di risparmio di risorse.
I tempi sarebbero ridotti al minimo, velocizzando di conseguenza l’intero processo di testing, che, come visto in precedenza, ha la necessità di essere documentato in modo approfondito.
Il tempo risparmiato ha un grande valore nella fase che precede il rilascio di un prodotto, sia per motivi legati alle esigenze di eventuali clienti, sia per ragioni commerciali derivanti dalle caratteristiche del mercato informatico, in cui si tende ad anticipare la concorrenza.
Inoltre il tempo è denaro, nel ciclo produttivo del software, così come nella vita di tutti i giorni.
E’ facile pensare che una rapidità maggiore nella produzione della documentazione possa tradursi in uno snellimento dell’intero processo di testing, causando un risparmio anche di risorse umane, che potrebbero essere destinate ad un raffinamento ulteriore del codice e ad un innalzamento della qualità del prodotto software.

Generazione automatica della documentazione di test

Gli sviluppatori potrebbero concentrarsi sul codice, non dovendosi occupare di compiti gravosi e poco gratificanti come quello della stesura di documentazione.
Il vantaggio di poter creare e aggiornare documenti di test rapidamente e con uno sforzo minore si adatta perfettamente a quelle che sono le esigenze del testing di un applicativo, che viene spesso reiterato più volte e subisce variazioni in corso d’opera.
Inoltre, operando direttamente sullo strumento adibito alla generazione, è possibile ottenere una documentazione più approfondita, completa e coerente, senza dover prestare attenzione a ogni singolo elemento di documenti complessi come quelli che riguardano il testing, evitando, o perlomeno riducendo il rischio, di errori e imprecisioni.
L’automatizzazione, tra l’altro, favorisce la riusabilità di gran parte del lavoro svolto, in quanto è concentrato sullo strumento di generazione.
In un contesto tradizionale, dove lo sforzo consiste nel produrre documenti ad hoc per ogni singolo applicativo, ciò è chiaramente impossibile.
Inoltre, se consideriamo la generazione automatica di documentazione di test, in un contesto di prodotti Software Open Source, i vantaggi presentati risultano addirittura essere amplificati.
In questo ambiente, dove spesso il codice appare frammentato e poco omogeneo, la possibilità di produrre e aggiornare la documentazione, scaricando l’onere di tale compito sui commenti dei singoli sviluppatori, risulta essere di fondamentale importanza.
Ciò non è dovuto solo al fatto che risulta difficile scrivere un documento riferito ad un codice di questo tipo, ma soprattutto perché permette di avere una certa uniformità nella stesura documentazione.
La standardizzazione dei commenti e l’uniformità della documentazione possono anche contribuire alla creazione di un modello del processo di testing condiviso tra i vari sviluppatori, supportando le varie fasi con esempi concreti della relativa documentazione inserita da altri e sviluppando delle regole comuni.

Framework e Tool Esistenti per la generazione automatica

La generazione automatica della documentazione di test può avvenire mediante appositi tool creati a tale scopo, oppure attraverso un testing framework, ovvero una struttura di supporto su cui possono essere organizzati, progettati e valutati i test.
I tool di questo tipo, ad oggi maggiormente diffusi, sono Javadoc e Doxygen.
Il primo è stato sviluppato dalla Sun Microsystems nel 1990, durante lo sviluppo del linguaggio Java e delle sue librerie.
Il gran numero di sorgenti spinse gli sviluppatori a creare questo strumento per la generazione automatica di documentazione tecnica in formato HTML (HyperText Markup Language), formato pratico e veloce per la consultazione.
Il tool venne poi distribuito insieme al kit di sviluppo Java, per la documentazione di progetti scritti in questo linguaggio.
Con il susseguirsi delle versioni, il tool divenne sempre più ricco e completo, introducendo, ad esempio, la possibilità di definire delle estensioni per personalizzare il contenuto e il formato di output della documentazione.
Doxygen, invece, fu sviluppato a partire dal 1997 da Dimitri van Heesch come progetto Open Source ed è un sistema multipiattaforma per la generazione di documentazione tecnica di un qualsiasi prodotto software. Questo tool può quindi essere utilizzato su svariati sistemi operativi ed è in grado di operare con codice sorgente scritto in diversi linguaggi: C++, C, Java, Objective C, Python, IDL, PHP e infine C#.

Sia Doxygen che Javadoc sono stati creati con l’intento di analizzare il codice sorgente ed estrarre informazioni dalla dichiarazione di strutture dati e da commenti scritti con una particolare sintassi, usate per la generazione di API specifications (Application Programming Interface).
Quindi, all’interno del processo di testing, entrambi i tool sembrano essere adeguati al supporto della fase di implementazione, consentendo la generazione della documentazione tecnica relativa ai test case realizzati.
Tuttavia, l’adozione di questi strumenti, non permetterebbe comunque di ottenere in modo automatico la documentazione delle altre fasi del processo.
L’elevato grado di estensibilità del tool Javadoc, però, lo rende particolarmente interessante in questo contesto e verrà pertanto approfondito più avanti.
Anche diversi framework di testing Open Source forniscono supporto ad una o più specifiche fasi di tale processo, ma nessuno di essi rende disponibile la gestione, la creazione e l’aggiornamento di tutta la relativa documentazione.
Ad esempio, Testopia fornisce un interessante funzionalità in grado di estendere Bugzilla, un tool dedicato al debugging, associando test case, relativi log di esecuzione e summary report dei difetti riscontrati.
Fitness, invece, è un altro tool che permette di semplificare la gestione di documenti, risultati di test e la creazione collaborativa di test di accettazione, ma oltre a evidenziare dei limiti per alcune tipologie di testing, non permette la generazione automatica di tutta la documentazione.
Anche framework più complessi, come TPTP o Salome-TMF, pur supportando l’intero processo di testing, non prevedono la generazione automatica di tutti i documenti.

 

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 *