Un programma che non è stato testato non funziona.
L'ideale di progettare e verificare un programma funzionante in prima
battuta non è ottenuto per la maggior parte dei programmi. Dobbiamo
puntare verso l'ideale, ma non dobbiamo pensare che queste verifiche
siano semplici.
“Come testare?” - E' una domanda alla quale non
si può dare una risposta generale; “Quando testare?”, invece ha
una risposta semplice, presto ed il più spesso possibile. Le
strategie di prova possono essere generate come parte della
progettazione e degli sforzi d'implementazione, o sviluppate in modo
parallelo ad essi. Ritardare un testing serio sino al termine
dell'implementazione è una prescrizione data per consegne ritardate
e rilasci incompleti.
Quando è possibile il sistema deve essere
progettato specificatamente per essere facile da verificare; in
particolare i meccanismi di test possono essere inclusi all'interno
del sistema stesso. A volte non viene realizzato a causa della paura
di creare costi eccessivi ed una ridondanza non necessaria del codice
quando si tratta di fare test di consistenza di grandi strutture
dati. Questa paura è mal riposta, in quanto l'eccesso di codice
necessario per i test, può essere rimosso prima della consegna del
sistema. I commenti sono qualcosa di utile in questo caso. Più
importanti di una serie di test è l'idea che la struttura di un
sistema debba avere una possibilità ragionevole per convincere noi
stessi e i nostri clienti che possiamo eliminare gli errori
attraverso un controllo statico, una analisi statica e le verifiche.
Quando una strategia per una tolleranza all'errore viene sviluppata,
una strategia di test può essere sviluppata come complementare e
vicina al relativo aspetto del sistema completo. Se la fase di
testing viene scartata durante la progettazione, durante i test,
quindi poco prima della consegna, potrebbero risultare problemi di
manutenzione. L'interfaccia tra le classi e le loro dipendenza sono
un buon punto per iniziare a lavorare sulla strategia di test.
Determinare quanto verificare è di solito
difficile. Comunque, poche verifiche sono un problema più comune
rispetto all'eccesso; esattamente quante risorse debbano essere
allocate per i test confrontandoli con la progettazione e
l'implementazione dipende dalla natura del sistema. Comunque come
regola di massima, si suggerisce di allocare più risorse all'inizio
dello sviluppo del sistema per verificarlo. I test inoltre devono
essere focalizzati sui problemi che hanno conseguenze disastrose e
che occorrono con frequenza.