sábado, 28 de febrero de 2015

Depuración y pruebas de unidad

En programación tenemos varios términos importantes que no podemos dejar de lado.

El termino depurar hace referencia al intento de apuntar con precisión un error en el propio código para poder corregirlo.

Una prueba es una actividad que persigue comprobar si un código (un programa, método, etc) produce el comportamiento para el que ha sido diseñado.

Una prueba de unidad es un prueba por partes, es decir dentro de una aplicación se van examinando sus partes por separado, individualmente, para ver si con ellas se obtiene el resultado deseado. Podríamos decir que una prueba de unidad está contrapuesta a una prueba de aplicación ya que esta última prueba la aplicación completa y la prueba de unidad solo una parte concreta.

Es aconsejable ir probando el código a medida que lo vamos construyendo y no esperar a tener terminada la aplicación pues pudiera ser que siguiéramos construyendo sobre errores si no los detectamos teniendo que rehacer el código por completo con la consiguiente perdida de tiempo cuando nos diéramos cuenta del error o errores.

Para probarlo podemos hacer pruebas positivas y también pruebas negativas, las pruebas positivas son aquellas pruebas en las que esperamos que se produzcan casos exitosos en cambio las pruebas negativas son las que se espera que fallen al ejecutarlas.

Por ejemplo una prueba positiva para un método que suma 2 números sería el resultado correcto, le daríamos dos números y haría la operación correctamente. Una prueba negativa para ese mismo método sería introducirle un número y una letra y ver cómo el método da error al no poder sumarlos.

Es común que sólo se realicen pruebas positivas olvidando las pruebas negativas y eso es un error, debemos asegurarnos que nuestras aplicaciones funcionen independientemente de que se le den datos correctos (funcionaría correctamente) o datos erróneos (debería mostrar un mensaje de aviso o algo, pero no bloquearse o cerrarse).

Evitar los errores en aplicaciones muy grandes y que trabajan miles de personas en su desarrollo es muy difícil, vease grandes juegos, sistemas operativos, etc que sacan betas para que los prueben los usuarios y vayan detectando errores para poder ir haciendo parches para corregir esos errores.

¿Es imposible que una aplicación del tamaño comentando en el párrafo anterior no tenga ningún error? yo creo que no es imposible, pero si muy difícil, porque en una aplicación de esa envergadura entran en juego el diseño de la misma, las miles de personas que trabajan en ella, los diferentes departamentos, etc y coordinar todo eso es muy complejo.

No hay comentarios:

Publicar un comentario