“Un software senza bachi è un software che non fa quello per cui è stato progettato”.
Aggiungerei anche che probabilmente “è un software che non fa nulla”!
Detto questo è chiaro che il compito di uno sviluppatore è quello di creare un prodotto che rispecchia la progettazione e che esegue le operazioni, limitando il più possibile il numero di bachi.
Riveste quindi una particolare importanza nel ciclo di sviluppo del software la fase di test.
In quest post non parlerò del test del codice, standalone o lato server di una applicazione web, per il quale esiste l’ottimo JUnit (se sviluppate in Java), ma parlerò di test di funzionalità di Web application che permettano di scoprire se un link non esiste più, se la risposta ad una form è diversa oggi da ieri, etc.
Quello che si fa con questa tipologia di test è simulare l’interazione tra il browser dell’utente e il server che ospita l’applicazione.
Nascono con questo scopo due software/tool open source: HttpUnit e Canoo WebTest
Utilizzando il primo è necessario scrivere del codice Java da integrare in test case JUnit ed è quindi necessario l’intervento di un programmatore.
La scrittura di test di funzionalità per Canoo WebTest si riduce alla scrittura di un file xml (formato Ant) che può essere anche automatizzata utilizzando software esterni. Esiste a questo scopo un add-ons di Firefox (WebTest Recorder Sidebar) che crea il file xml in formato Ant da utilizzare con Canoo WebTest “registrando” l’interazione dell’utente con il sito.
Riporto l’esempio dal sito del tool che testa se la homepage Canoo WebTest appare come primo risultato della ricerca su google impostando come chiave WebTest.
Il file del test è:
<target name=”test“>
<webtest name=”check that WebTest is Google’s top ‘WebTest’ result“>
<invoke url=”http://www.google.com/ncr” description=”Go to Google (in English)“/>
<verifyTitle text=”Google” />
<setInputField name=”q” value=”WebTest” />
<clickButton label=”I’m Feeling Lucky” />
<verifyTitle text=”Canoo WebTest Homepage” />
</webtest>
</target>
</project>
Dandolo in pasto a Canoo WebTest si ottiene questo report esaustivo:

Alla prossima!