Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Rosario Turco
Il termine “Continuous Testing” originariamente fu introdotto dal Program Analysis Group al MIT a seguito
di 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 lo
usano” 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 inizia
su 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. L’apporto umano su
attività ripetitiva è bassissimo, mentre è alto su aspetti qualitativi di verifica dei risultati e del
comportamento atteso per il business in questione.
I simulatori devono essere semplici e facili da configurare e magari open source (primo fra tutti SOAPUI
ad esempio per SOA su http/https, JMS etc) oppure per Java esistono molti plug-in per Eclipse, IntelliJ
etc., da usare con JUnit e magari anche con i tools di verifica vulnerability come Fortify, di analisi statica
e dinamica o altro.
L’obiettivo fondamentale da comprendere è di sfruttare al massimo gli IDE o i RAD per la compilazione ed
il testing (system test o Load test).
Il concetto, difatti, è che maggiore è il tempo che passa dallo sviluppo, per individuare vulnerabilità o
difetti, più aumenteranno le modifiche ed i test da fare. Però molti di questi problemi sono risolvibili
spesso 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 di
release tra un kit e l’altro (… qui penso all’open source e al meraviglioso SOAPUI adatto a catena di test
di 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à da
kit a kit. Anche il refactoring, favorito dalle Metodologie Agili, trae beneficio da una tale pratica.
Questo è favorito dalla metodologia Agile che ha come principio fondamentale: “fare cambiamenti
incrementali”. Il Continuos Testing ottiene, quindi, un grande beneficio soprattutto da metodologie
incrementali e light.
1. SOAP-UI
http://www.soapui.org/
http://www.soapui.org/IDE-Plugins/eclipse-plugin.html
Personalmente ho visto i miracoli che può fare SOAPUI anche nei Load Test e nelle catene di test e
scusate la mia preferenza open source.
L’importante anche qui è iniziare. Il costo iniziale è ammortizzato nel tempo e costerà sempre meno la
qualità che si otterrà. Specializzarsi permetterà basso effort e ottima qualità (parafrasando il WU-WEI
cinese).