Pruebas y depuraci贸n.

Cuando hablo de pruebas de c贸digo me estoy refiriendo a comprobar que la aplicaci贸n se ejecute como el cliente quiere que se ejecute. La depuraci贸n y pruebas en la aplicaci贸n posibilita que dicha aplicaci贸n sea mas robusta a fallo internos y externos y se garantiza una aplicaci贸n para el cliente. En este cap铆tulo vamos a centrarnos en la depuraci贸n de aplicaciones VB.NET mediante el depurador de VS.NET, forz谩ndo la aplicaci贸n al maximo.

En las pruebas a realizar sobre el software existen dos tipos de pruebas:

Prueba de caja blanca.
O de caja de cristal, su funcionamiento se basa en un an谩lisis exhaustivo de todos los procesos de un c贸digo fuente. Por asi decirlo, de todas sus rutinas, funciones, estructuras, etc., etc.

Pruebas de caja blanca

Pruebas de caja negra.
Esta prueba se realiza sobre la interf谩z sin necesidad de conocer la estructura. Solo interesa conocer la forma en la que se comporta la aplicaci贸n a la salida y a la entrada.

Pruebas de caja negra

As铆 que para realizar pruebas en nuestras aplicaciones, vamos a usar una serie de estrat茅gias.

Elipse de las estrat茅gias a seguir

Pruebas de unidad.

Estas pruebas se realizan para comprobar la unidad b谩sica del bloque del programa, es decir el m贸dulo o registro o subproceso de una funci贸n, por ejemplo. Por eso, para 茅stas pruebas se pueden utilizar pruebas de caja blanca o de caja negra, seg煤n el m贸dulo a analizar. El resultado de estas pruebas tienen por objetivo:

● Comprobar interf谩z del m贸dulo
● Comprobar integridad.
● Comprobar funcionalidad de los l铆mites establecidos.
● Comprobar estructuras de control
● Manejo de errores.

pruebas mixtas

Asi que sin m谩s vamos a crear una nueva aplicaci贸n de Windows Forms para realizar pruebas con ella. Abre un nuevo proyecto y nombralo como Depuraci贸n.

En la zona de declaraci贸n de clase crear la estructura como has est谩ndo haciendo hasta ahora de la carpeta ra铆z de la aplicaci贸n.

modulo unidad

Tambi茅n puedes ver que utilizo una instrucci贸n bucle WHILE para en el caso de que no exista la carpeta, salga un mensaje de ventana continuamente. Pero a lo mejor sabr铆as el porque de 茅ste aviso.

Pues si, muy bien si te has dado cuenta que estoy haciendo referencia en el bucle a un archivo en vez de a un directorio. Por eso aunque existiese el directorio, seguir铆a mostr谩ndo el mensaje de alerta. As铆 que si cambias File por Directory, ver谩s como, al crear un nuevo directorio en el Escritorio, ver谩s como no vuelve a salir el aviso.

Puntos de interrupci贸n.

Los puntos de interrupci贸n son una de las t茅cnicas de depuraci贸n m谩s importantes en el cuadro de herramientas de desarrollador. Establecer puntos de interrupci贸n donde desee pausar la ejecuci贸n del depurador. Por ejemplo, es posible que desee ver el estado de las variables del c贸digo o examine la pila de llamadas en un determinado punto de interrupci贸n.

Para establecer un punto de interrupci贸n simplemente en la zona izquierda del editor del c贸digo, se pulsa sobre la instrucci贸n que se quiere analizar.

punto de interrupci贸n

Volvi茅ndo a nuestro c贸digo pongo un punto de interrupci贸n en el bucle While.

Cuando ejecute la aplicaci贸n mediante el bot贸n Play, se mostrar谩 la ventana de c贸digo y se ejecutar谩 directamente desde la primera l铆nea de c贸digo escrito en tu aplicaci贸n.

depuraci贸n desde el principio

Ahora puls谩ndo la tecla F11, podr谩s ir pas谩ndo de una l铆nea a otra del c贸digo y la aplicaci贸n se ir谩 ejecut谩ndo de acuerdo cargues las l铆neas.

La ventaja de la depuraci贸n en tiempo de ejecuci贸n es que mientras vas carg谩ndo el c贸digo a tu gusto, el IDE de VB.NET te est谩 diciendo el valor actual de la variable o funci贸n que est谩s ejecut谩ndo. Para ello, voy a crear una variable que muestre el n煤mero de veces que se repite el mensaje en pantalla mientras no exista el directorio Pruebas.

control de mensajes

As铆 puedes ver que cada vez que ejecute, la ventana de alerta mostrar谩 el n煤mero de ventana que es.

control de mensajes

Asi que si pones un punto de interrupci贸n en la l铆nea que ves en pantalla y pulsas F11, directamente se interrumpir谩 la aplicaci贸n en ese punto. Si pasas el rat贸n sobre el punto, te saldr谩 un TollTip con el valor actual de la variable (que como acabamos de ejecutar la aplicaci贸n vale cero).

ToolTip del valor actual

As铆 que puedes ver que los puntos de interrupci贸n te servir谩n para algo m谩s que detener la aplicaci贸n en mitad de ejecuci贸n.

Try...Catch.

Otra forma de comprobar que nuestra aplicaci贸n se comporte como queremos y matizar una estructura de control es utiliz谩ndo un bloque Try Catch. As铆 que, parti茅ndo del siguiente bloque:

bloque try catch

Podemos establecer que dentro del bloque try pondremos el c贸digo que es susceptible a fallar. En el ejercicio, he puesto que si se muestran 5 o m谩s ventanas de aviso, entonces se muestre un error gracias al uso de la funci贸n err() de VB.NET. Esto hara que se cargue el bloque Catch y ejecute la instrucci贸n en dicho bloque.

funcionamiento del bloque try catch

Existe otro bloque despu茅s del Catch para en el caso de que no se de ninguna situaci贸n anterior y es el bloque Finally en el cual se pondr谩 el c贸digo para el caso de que ninguna condici贸n anterior sirva para ning煤n bloque. Pero eso ya lo iremos viendo m谩s adelante en otros cap铆tulos del curso.

Ahora si quieres ir a la pr谩ctica, crearemos una aplicaci贸n Amante en la cual aprovecharemos los fallos vistos para crear un virus (solo con fines did谩cticos y no destructivos).