lunes, 13 de abril de 2015

Pruebas de escritorio, aliadas del programador

En el curso de Lógica de Programación hemos estado aprendiendo a escribir algoritmos, que no son más que un conjunto de instrucciones con las que pretendemos resolver un problema, las cuales posteriormente serán implementadas en algún lenguaje de programación.

Escribir un algoritmo para nuestros programas es importante porque representa la lógica entera en la que nos vamos a basar al momento de escribir el programa en un lenguaje específico. Sin embargo, ¿cómo podemos saber si la lógica de nuestro algoritmo es la correcta? ¿cómo saber si va a arrojar los resultados deseados? Después de todo, cuando escribimos un programa directamente en la computadora podemos ejecutarlo para ver si arroja los resultados esperados. Pero el algoritmo está en papel, asi que  ¿cómo podemos probarlo?

Ahi es donde entran en juego las pruebas de escritorio. Una prueba de escritorio es una herramienta muy útil que nos permite "ejecutar", en papel, un algoritmo determinado para ver si se comporta como esperamos y para verificar si los resultados son los deseados. Esta ejecución "a mano" se puede realizar mediante una tabla en la que registremos tanto las instrucciones como las variables, constantes y salidas que forman a nuestro algoritmo. Por cada instrucción que vayamos "ejecutando" manualmente, veremos cómo se van comportando las diferentes variables de nuestro programa y podremos ir registrando las salidas esperadas.

Veamos cómo funcionan con un ejemplo muy sencillo. El siguiente es un algoritmo para calcular el salario a pagar a un empleado y forma parte de la novena lección del curso de Lógica de Programación que encuentran en este mismo espacio. El listado de pseudocódigo es el siguiente:

algoritmo Calcular_Pago
var
   entero : num_empleado, horas_trabajadas
   real : pago_hora, pago_bruto, impuestos, pago_neto
   cadena : nombre_empleado
const
   tasa_impuesto = 2.3

inicio
   leer (num_empleado, nombre_empleado, horas_trabajadas, pago_hora)
   pago_bruto <- horas_trabajadas * pago_hora
   impuestos <- pago_bruto * tasa_impuesto / 100
   pago_neto <- pago_bruto - impuestos
   escribir("Desglose de nómina para el empleado " + nombre_empleado + " con número " +   num_empleado)
   escribir("Pago Bruto : " + pago_bruto)
   escribir("Deducciones : " + impuestos)
   escribir("Pago Neto : " + pago_neto)
fin

Una prueba de escritorio para este algoritmo, podría registrarse en una tabla como la siguiente:

(Clic para agrandar)
En esta tabla iremos registrando tanto las instrucciones como las constantes, variables y salidas de nuestro algoritmo, conforme lo vayamos "ejecutando". Creamos una columna para las instrucciones (la cual es opcional y se usa sólo si el algoritmo no es demaisado complejo), una columna para cada una de las constantes y variables y una columna para las salidas esperadas. Comenzamos con la primera instrucción:

(Clic para agrandar)
Esta primera instrucción consiste en leer los valores para nuestras variables de entrada, por lo que nos toca a nosotros proporcionar datos de prueba para procesarlos en el algoritmo. Incluimos también el valor de la constante porque ya está definido desde el principio. Una vez cargada la primera instrucción, continuamos con la segunda:

(Clic para agrandar)
Como vemos, en esta segunda instrucción nos ocupamos de hacer los cálculos para la variable pago_bruto, asi que registramos el resultado en la columna correspondiente. De este modo continuamos "ejecutando todas las instrucciones de nuestro algoritmo hasta lograr una tabla de la ejecución completa que debería verse algo así:

(Clic para agtrandar)
Podemos observar que hemos registrado también las salidas esperadas, las cuales ocurren sólo hasta que hemos terminado de procesar los datos de entrada.

Las pruebas de escritorio son una de las herramientas más útiles que tiene el programador en su arsenal, porque le permiten asegurarse de que su lógica de programación funciona como es esperado. Desde luego, esto no implica que el programa final vaya a estar libre de errores, pero sí nos ayuda a darnos una mejor idea de dónde podrían surgir.



0 comentarios:

Publicar un comentario

Copyright © IsraelCapetillo.com - Un blog de tecnología, noticias geek y más Compartido por Gooyaabi Templates | Powered By Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com