jueves, 27 de abril de 2017

Pruebas

Las pruebas son un paso importante en todo tipo de desarrollo de software, incluidos los scripts. Hay un dicho en el mundo del software libre, "publica pronto, publica a menudo", que refleja este hecho. Publicando pronto y a menudo, el software está más expuesto al uso y a las pruebas. La experiencia nos ha demostrado que los bugs son más fáciles de encontrar, y mucho menos caros de arreglar, si se encuentran pronto en el ciclo de desarrollo.

En un tema anterior, vimos cómo podemos usar stubs para verificar el flujo del programa. Desde las primeras fases del desarrollo del script, son una técnica valiosa para comprobar el progreso de nuestro trabajo.

Echemos un vistazo al problema de eliminación de archivos anterior y veamos cómo puede codificarse para que sea más fácil la realización de pruebas. Probar el fragmento original de código puede ser peligroso, ya que su propósito es borrar archivos, pero podríamos modificar el código para hacer que la prueba sea segura:

if [[ -d $dir_name ]]; then
    if cd $dir_name; then
        echo rm * # TESTING
    else
        echo "cannot cd to '$dir_name'" >&2
        exit 1
    fi
else
    echo "no such directory: '$dir_name'" >&2
    exit 1
fi
exit # TESTING

Como las condiciones del error ya muestran mensajes útiles, no tenemos que añadir nada. El cambio más importante es colocar un comando echo justo antes del comando rm para permitir al comando y su lista de argumentos expandidos que se muestren, en lugar de que el comando realmente se ejecute. Este cambio permite la ejecución segura del código. Al final del fragmento de código, colocamos un comando exit para concluir la prueba y prevenir que cualquier otra parte del script se ejecute. La necesidad de esto variará segun el diseño del script.

También incluimos algunos comentarios que actúan como "marcadores" de nuestros cambios relacionados con la prueba. Estos pueden usarse para ayudarnos a encontrar y eliminar los cambios cuando se completa la prueba.

No hay comentarios:

Publicar un comentario