<Precedenti | Contenuti | Succ.>
Testing
Il testing è una fase importante in ogni tipo di sviluppo software, inclusi gli script. Nel mondo open source esiste un detto, "rilascia presto, rilascia spesso", che riflette proprio questo concetto. Rilasciando in anticipo e spesso, il software ottiene una maggiore visibilità per l'utilizzo e il testing.
L'esperienza ha dimostrato che i bug sono molto più facili da individuare e molto meno costosi da correggere se vengono individuati nelle prime fasi del ciclo di sviluppo.
Nel Capitolo 26 abbiamo visto come gli stub possono essere utilizzati per verificare il flusso di un programma. Fin dalle prime fasi dello sviluppo di uno script, rappresentano una tecnica preziosa per verificare l'avanzamento del nostro lavoro.
Diamo un'occhiata al problema di eliminazione dei file di cui sopra e vediamo come potrebbe essere codificato per un test semplice. Testare il frammento di codice originale sarebbe pericoloso, poiché il suo scopo è eliminare i file, ma potremmo modificare il codice per rendere il test sicuro:
se [[ -d $dir_name ]]; allora se cd $dir_name; allora
eco rm * # TEST
altro
echo "impossibile passare a '$dir_name'" >&2 exit 1
per altro
echo "nessuna directory: '$dir_name'" >&2 exit 1
fi
uscita # TEST
se [[ -d $dir_name ]]; allora se cd $dir_name; allora
eco rm * # TEST
altro
echo "impossibile passare a '$dir_name'" >&2 exit 1
per altro
echo "nessuna directory: '$dir_name'" >&2 exit 1
fi
uscita # TEST
Poiché le condizioni di errore generano già messaggi utili, non dobbiamo aggiungerne altri. La modifica più importante è l'inserimento di un eco comando appena prima del rm comando per consentire la visualizzazione del comando e del suo elenco di argomenti espanso, anziché l'effettiva esecuzione del comando. Questa modifica consente l'esecuzione sicura del codice. Alla fine del frammento di codice, inseriamo un exit Comando per concludere il test e impedire l'esecuzione di qualsiasi altra parte dello script. La necessità di questa operazione varia a seconda della progettazione dello script.
Includiamo anche alcuni commenti che fungono da "marcatori" per le modifiche relative ai test. Questi possono essere utilizzati per individuare e rimuovere le modifiche al termine dei test.