come introdurre il “continuos testing” nei propri team

Upload: rosario-turco

Post on 09-Apr-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/7/2019 Come introdurre il Continuos Testing nei propri team

    1/2

    Come introdurre il Continuos Testing nei propri team

    Rosario Turco

    Il termine Continuous Testing originariamente fu introdotto dal Program Analysis Group al MITa seguitodi una ricerca, con la quale fu trovato che gli sviluppatori che usano un test continuo hanno una

    probabilit di terminare prima della consegna, di almeno tre volte maggiore, rispetto a quelli che non lousano e che il Continuos Testing permette di ridurre il tempo perso del 92-98%.

    Al di l di questi numeri dichiarati dalla ricerca del MIT, che vanno interpretati con cautela per chi iniziasu queste tematiche, ci sono oggettivi vantaggi, che riassumiamo di seguito.

    Minor Overhead

    I test non vanno lanciati manualmente, uno alla volta; ma vengono lanciati a gruppi. Lapporto umano suattivit ripetitiva bassissimo, mentre alto su aspetti qualitativi di verifica dei risultati e delcomportamento atteso per il business in questione.

    Riduzione dei difetti e riduzione delle modificheOggi esistono molti tools di aiuto di compilazione/test, da accoppiare al software o eventualmente daintegrare con propri simulatori, a seconda delle tecnologie in gioco.

    I simulatori devono essere semplici e facili da configurare e magari open source (primo fra tutti SOAPUIad esempio per SOA su http/https, JMS etc) oppure per Java esistono molti plug-in per Eclipse, IntelliJetc., da usare conJUnite magari anche con i tools di verifica vulnerability come Fortify, di analisi staticae dinamica o altro.

    Lobiettivo fondamentale da comprendere di sfruttare al massimo gli IDE o i RAD per la compilazione edil testing (system test o Load test).

    In tal modo si possono incrementare i feedback e la produttivit se si fa unoperazione di continua

    compilazione e di Continuos Testing. Questo perch si riduce il tempo tra lo sviluppo, lintroduzione di unerrore o una vulnerabilit di sicurezza e il rilevamento della stessa, a compile time o a Unit Testing!!!.

    Il concetto, difatti, che maggiore il tempo che passa dallo sviluppo, per individuare vulnerabilit odifetti, pi aumenteranno le modifiche ed i test da fare. Per molti di questi problemi sono risolvibilispesso a compile time e test unitario o col software auto-testato ( qui penso a JUnit ).

    Inoltre un test massivo e automatizzato di integrazione, di moltissimi test, permette grandi regressioni direlease tra un kit e laltro ( qui penso allopen source e al meraviglioso SOAPUI adatto a catena di testdi integrazione, a test unitari e a Load Test ).

    Il costo diventa basso pian piano se si accumulano di volta in volta i file di prova e migliora la qualit dakit a kit. Anche il refactoring, favorito dalle Metodologie Agili, trae beneficio da una tale pratica.

    Promuove le Best Practices

    E evidente che trovare un errore gi in fase di concepimento di una piccola parte di software realizzatapermette di fare modifiche migliorative senza stravolgere larchitettura del tutto, anche perch non ancora realizzata tutta lapplicazione. Compilare e testare continuamenteper piccole parti, sin dal testunitario, permette di verificare prima le cose e impiegare le migliori pratiche, quando il software ancoradi piccola dimensione (magari si tratta ancora di un metodo).

    Questo favorito dalla metodologia Agile che ha come principio fondamentale: fare cambiamentiincrementali. Il Continuos Testing ottiene, quindi, un grande beneficio soprattutto da metodologieincrementali e light.

    Fare i test velocementeLutilizzo di un test continuo aiuta a mantenere il test rapido e con una profondit di copertura maggioreed in poco tempo.

  • 8/7/2019 Come introdurre il Continuos Testing nei propri team

    2/2

    Esistono molti tools disponibili a seconda della propria piattaforma e tecnologia; alcuni sono ad esempio:

    1. SOAP-UIhttp://www.soapui.org/http://www.soapui.org/IDE-Plugins/eclipse-plugin.html

    2. CT-Eclipse (was Continuous Testing Plugin for Eclipse) Java/Eclipse3. ZenTest::Autotest Ruby4. Fireworks Java/IntelliJ5. Infinitest Java

    Ovviamente ne esistono molti altri ed ogni Team Leader o a seconda dei gruppi di revisione del progetto,in base alla propria tecnologia, deve scegliersi e progettare il proprio framework di test e gli strumentiche lo facilitano, adatto alle proprie tecnologie.

    Personalmente ho visto i miracoli che pu fare SOAPUI anche nei Load Test e nelle catene di test escusate la mia preferenza open source.

    Limportante anche qui iniziare. Il costo iniziale ammortizzato nel tempo e coster sempre meno laqualit che si otterr. Specializzarsi permetter basso effort e ottima qualit (parafrasando il WU-WEIcinese).

    Il consiglio finale fare tutto light e cum grano salis.

    http://www.soapui.org/http://www.soapui.org/http://www.soapui.org/IDE-Plugins/eclipse-plugin.htmlhttp://www.soapui.org/IDE-Plugins/eclipse-plugin.htmlhttp://www.zenspider.com/ZSS/Products/ZenTest/http://www.zenspider.com/ZSS/Products/ZenTest/http://swing1979.googlepages.com/fireworkshttp://swing1979.googlepages.com/fireworkshttp://www.infinitest.org/http://www.infinitest.org/http://www.infinitest.org/http://swing1979.googlepages.com/fireworkshttp://www.zenspider.com/ZSS/Products/ZenTest/http://www.soapui.org/IDE-Plugins/eclipse-plugin.htmlhttp://www.soapui.org/