Strumenti e tecniche per il controllo e il miglioramento della qualità del software Microsoft® Visual Studio® Team Suite introduce funzionalità di testing abbinate alla definizione e alla rilevazione delle metriche che permettono di ottimizzare e semplificare la produzione di software di qualità. www.microsoft.it/msdn/vsts2008 Per migliorare la qualità del software, prima di tutto bisogna definirla, poi misurarla Facile trovare immediato consenso sul concetto di qualità, ma quando ci si riferisce al software in che modo questa viene interpretata? Facilità d’uso, attinenza alle specifiche, mancanza di errori, prestazioni, strutturazione e codifica ottimali. Su questo argomento sono stati pubblicati innumerevoli manuali e teorie, ma al di là delle singole specificità l’elemento che li accomuna tutti è la necessità di scegliere dei parametri oggettivamente significativi e rilevarne i valori assoluti e il loro andamento nel tempo. In altre parole, le metriche del software. Microsoft Visual Studio Team System consente di rilevare le metriche relative al codice sviluppato in base a vari criteri compresi quelli di carattere intrinseco come la sua complessità e manutenibilità. Tali metriche possono essere monitorate a livello di singolo progetto o per intere soluzioni e forniscono indicazioni non solo sul piano della qualità, ma anche dell’efficacia di metodi e strumenti di sviluppo adottati dal team, divenendo così un importante fattore di incremento della produttività. Definizione ed esecuzione dei test Per l’impostazione e l’esecuzione dei test, Visual Studio Team Suite comprende una serie di strumenti specializzati e integrati con il resto della piattaforma per creare, eseguire e gestire i test e le attività ad essi correlate a livello di servizi e applicazioni Web, database e Unit Test rimanendo sempre all’interno dello stesso ambiente Visual Studio. Visual Studio Test Load Agent consente poi di generare test di carico per le applicazioni Web, i servizi e i database permettendo di migliorare la qualità testando il variare delle prestazioni mano a mano che aumentano i carichi di lavoro sui server.Tutti questi strumenti si interfacciano con Visual Studio Team Foundation Server, che costituisce lo strumento per la gestione e il controllo del ciclo di vita del software supportando e semplificando le fasi di versioning, gestione degli elementi di lavoro e collaborazione efficace tra i membri del team di sviluppo. Questo porta alla produzione e distribuzione di software di qualità. Cadono i confini tra sviluppo e rilascio Visual Studio Team Suite fornisce già pronte all’uso le funzioni per rilevare le principali metriche del software. • Indice di manutenibilità: è un valore compreso tra 0 e 100 che indica la facilità con la quale si può intervenire per modificare il software da manutenere. • Numero ciclomatico: misura la complessità strutturale del codice. Questo perché quanto più il flusso del programma è articolato, tanto più sarà difficile testarlo e apportarvi modifiche. • Livello di ereditarietà: indica il numero di classi utilizzate e la loro strutturazione. Quanti più livelli gerarchici sono presenti, tanto più sarà difficile capirne i metodi e le interazioni. • Linee di codice: sebbene poco significative sul piano oggettivo, specie nell’uso delle nuove tecnologie di sviluppo, continuano a essere uno dei parametri più utilizzati dalle aziende. Visual Studio Team System misura solo le righe di codice effettive, tralasciando commenti, informazioni e altro. Utilizzando Web Service e funzioni di orchestrazione che riconfigurano e aggregano dinamicamente le varie componenti del software, i confini tra le fasi di sviluppo e di deployment perdono di significato. Gli aspetti prestazionali divengono così sempre più critici per la qualità e il rispetto delle esigenze degli utenti. Con Visual Studio Team System si possono svolgere sia i test funzionali, sia quelli prestazionali, rimanendo sempre all’interno della piattaforma di sviluppo. • Visual Studio Team Suite mette a disposizione degli sviluppatori un insieme completo per testare le funzionalità delle applicazioni HTTP, XML, ASP.NET e dei Web Service. Dispone anche di uno strumento di Code Coverage per rilevare la percentuale di codice che è stata verificata nel corso dei test. • Visual Studio Test Load Agent, che comprende le componenti Agent e Controller, permette di simulare le attività simultanee anche di 1.000 utenti per unità, dotate di un unico processore o di tipo Dual Core. I risultati forniscono indicazioni sugli elementi che si comportano correttamente sotto carico, sugli errori e sulle componenti sulle quali occorre intervenire per evitare problemi. Analisi del codice Strumenti avanzati e potenti Visual Studio fornisce una serie di regole per l’analisi statica del codice .NET e C++ e per l’analisi dinamica del codice C++ che favoriscono l’uniformità del codice scritto da persone differenti e migliorano le performance, l’affidabilità e riducono la complessità. è possibile creare una Policy di Analisi del Codice per impedire il Check-In di codice non conforme ed è anche possibile inserire l’Analisi del Codice nelle Build automatizzate. Gli strumenti di Web Test inclusi in Visual Studio Team Suite consentono di definire test facilmente replicabili, riducendo considerevolmente il tempo di creazione, esecuzione e analisi degli esiti. I test possono esser condotti anche sulle applicazioni Visual C#® e Visual Basic® destinate ai dispositivi mobili di nuova generazione (Smartphone, PDA, ecc.). Infine, l’interazione con Team Foundation Server permette alla test factory di migliorare la collaborazione con la software factory integrandosi nel processo di sviluppo del sofware correttamente sotto carico, sugli errori e sulle componenti sulle quali occorre intervenire per evitare problemi. Misure rilevabili Microsoft Visual Studio Team System per il testing e la qualità del software Principali novità • Ampliamento delle funzionalità per la validazione dei test con inserimento di nuove regole e metriche • Simulazione delle applicazioni con fonti di dati provenienti da database o file CSV e XML • Gestione dei test di carico più efficiente con la possibilità di aprire o eliminare i risultati dei test direttamente dal repository • Registrazione delle richieste AJAX e dei Pop-up in JavaScript con Web Test Recorder • Migliore rappresentazione dei carichi di lavoro reali con Load Modeling Vantaggi • Risoluzione dei problemi di integrazione durante le fasi di sviluppo • Integrazione fra test e code coverage • Creazione di Bug e Work Item “al volo” • Integrazione del profiler con Unit e Web Test • Test del database Come funziona Rilevare le metriche Per avere un’idea concreta di quali metriche gestire e di come rilevarle, esaminiamo i passi principali e le voci da considerare: • Una volta analizzato il codice, Visual Studio ne presenta le caratteristiche tramite la finestra Code Metrics Results che include una Toolbar di gestione e le intestazioni di tutti i parametri rilevati. La prima colonna contiene in modo strutturato secondo una gerarchia ad albero tutti i dati rilevanti a diversi livelli di dettaglio. Le altre colonne contengono i valori. • Ottenere questi dati è molto semplice: basta premere il tasto destro del mouse su un progetto o una soluzione su Solution Explorer e scegliere la voce del menu: Calculate Code Metrics. I cinque parametri rilevati in automatico sono: il numero Ciclomatico, la profondità delle intersezioni dovute all’ereditarietà (Depth of Inheritance), le dipendenze tra classi (Class Coupling), le linee di codice (Lines of Code) e l’indice complessivo di manutenibilità (Maintainability Index). Espandendo la struttura ad albero si può partire dal progetto nel suo insieme, sino ad arrivare al singolo metodo all’interno di una classe. La colonna Maintainability, in aggiunta ai valori numerici, contiene un’icona il cui valore cambia in funzione del livello di manutenibilità: verde indica che la situazione è positiva, giallo che la manutenibilità è a rischio, rosso segnala la necessità di una revisione integrale del codice. Questo indice rappresenta una sintesi ponderata dei valori relativi alle tre metriche combinate: numero ciclomatico, linee di codice e complessità computazionale. Eseguire i test di carico Per creare l’ambiente di test nel quale effettuare le prove di carico, si può usare il Load Test Wizard che consente di definire carichi di lavoro utilizzando vari profili di utenza e di componenti tipo browser, reti e applicazioni, simulando nel modo più verosimile possibile la realtà nella quale si dovrà operare in seguito al rilascio deI sistema definitivo. Il Web Test di Visual Studio Team System è ora in grado di registrare i dati relativi anche alle richieste AJAX e ai Pop-up in JavaScript. I dati vengono presentati in due report che si differenziano per livello di dettaglio. Il Load Test Summary offre una vista d’insieme sull’andamento delle prestazioni del sistema sotto carico. Il Load Test Detail entra nello specifico delle singole componenti con dati che arrivano alla singola pagina o transazione. Il tutto in modo grafico e interattivo e totalmente integrato con l’ambiente per eseguire i test funzionali e lo sviluppo. Per saperne di più Visual Studio Team System è l’ambiente di progettazione, sviluppo, rilascio e testing più diffuso al mondo per applicazioni Windows® e Web, tradizionali e di nuova generazione. Semplificando la creazione di applicazioni per piattaforme Windows, Web, telefoni cellulari, PDA e Microsoft Office, Visual Studio Team System consente di realizzare innovative soluzioni di tipo individuale e per l’impresa, assicurando elevata qualità, buone prestazioni e grande produttività nelle fasi di sviluppo.Visual Studio Team System include una serie di funzionalità che migliorano la comunicazione e la collaborazione tra tutti i componenti dei team di sviluppo lungo le varie fasi del ciclo di vita del software. Questo vuol dire maggior qualità e produttività nello sviluppo di applicazioni e servizi. Visual Studio Team Foundation Server può inoltre gestire progetti realizzati in qualsiasi tecnologia ed è accessibile tramite Web Service aperti da qualsiasi piattaforma, attraverso plug-in disponibili per gli ambienti più diffusi. Per ulteriori informazioni e dettagli su Visual Studio Team System, visitare il sito: www.microsoft.it/msdn/vsts2008 © 2008 Microsoft. Tutti i diritti riservati. Tutti i marchi e i marchi registrati citati sono di proprietà delle rispettive società. Questa pubblicazione è puramente informativa. Microsoft - Centro Direzionale S. Felice - Pal. A - Via Rivoltana, 13 - 20090 Segrate (MI) Visitateci su Internet www.microsoft.com/italy/ Servizio Clienti 02.70.398.398, e-mail: [email protected]