Giancarlo Sudano di ObjectWay (e aggiungerei di OrangeDotNet) ci presenta le problematiche di testing e deployment di applicazioni.
Quando viene trovato un bug da parte di un tester quest’ultimo lo notifica al developer che ha il compito di fixarlo. Il developer di solito risponde: “ma da me funziona….”. Quindi il dev ha bisogno di info aggiuntive che per quanto possano essere ricche esiste il problema di riprodurre il bug sulla sua macchina: avviene il cosiddetto PING PONG Bug, il tester e il dev si palleggiano informazioni per ricreare il bug.
Gli ambienti di sviluppo ed esecuzione sono diversi: i programmatori sviluppano nel loro ambiente (ambiente di sviluppo), i tester nel loro (ambiente di test), ecc.. Una soluzione può essere unificare l’ambiente, ma diventa onoreso specie se ci sono più team che sviluppano in parallelo. Allora Virtualizziamo! Ma abbiamo bisogno di sistemi di testing che funzionino con la virtualizzazione in modo automatico: Microsoft ha creato Test and Lab Manager (client) e Test and Lab Management (server).
Test and Lab Manager è un client pensato per i tester scritto in WPF per poter pianificare e fare tracking di test. Posson testare windows form, wpf, web, web con javascript e web con silverlight.
Test and Lab Management è il server che permette di gestire lato server la fase di test delle applicazioni: integra SCVMM (System Center Virtual Manager Management) per la gestione delle macchine virtuali per gestire gli ambienti di test. Il tester può quindi decidere la macchina su cui fare i test!
La cosa interessante è che il tester fa i test e se trova un bug è possibile creare un bug in tfs (un work item di tipo bug) con tutte le info allegate, compreso il link allo snapshot della macchina virtuale su cui è avvenuto il bug!
Un’altro strumento figissimo è l’Intellitrace: possiamo loggare tutto ciò che ha fatto il tester e vedere in un certo momento i valori delle variabili! In spazio e tempo costerà un botto ma ho tutti gli strumenti che mi servono per eseguire il debug!
E se ho più team in parallelo che hanno bisogno della stessa configurazione delle macchine (stesso nome delle macchine ad esempio): si può fare! Sono macchine virtuali diverse che sulla rete si vedono con gli stessi nomi e quindi non devo cambiare niente nei file di configurazione!