Prueba de Escritorio

Es la etapa más importante en el desarrollo de un programa, por cuanto el realizar la prueba de escritorio nos permite saber :

  1. Si el programa hace lo que debería hacer
  2. Si no hace lo que debería hacer, nos permitirá detectar errores como ser:
    • Si algún paso o instrucción no esta en el orden correcto
    • Si falta algo
    • Si algo esta demás
    • Si los pasos o instrucciones que se repiten lo hacen más o menos veces de lo debido
    • Si las instrucciones están en un orden apropiado
    • Otros errores que pueden presentarse
  3. Elegir los datos apropiados para la prueba

La prueba de escritorio no es más que efectuar un proceso de simulación con el algoritmo desarrollado (ver que haría la computadora). Este trabajo se realiza en base a una tabla cuyos encabezados son las variables que se usan en el algoritmo y debajo de cada una de ellas se van colocando los valores que van tomando, paso a paso y siguiendo el flujo indicado por el algoritmo, hasta llegar al final.

Ejemplo:

  1. C <- 0
  2. S <- 0
  3. C <- C + 1
  4. S <- S + C
  5. Si C < 10 Entonces Ir a 3
  6. Mostrar “La suma es: “, S
  7. FIN

La prueba de escritorio para este ejercicio empieza con hacer una lista de las variables, C y S en el ejemplo.

Los números que se ven resaltados, son los que se generan en cada paso ( 3 y luego 4). Cada variable tiene vigente solo el último valor. En este momento el paso 3 cambio el valor de C de 0 a , de igual forma que el paso 4 cambio el de S de 0 a 1. Luego están vigentes los nuevos valores y se perdieron los anteriores.

Prosiguiendo, en el paso 5 al evaluar el contenido de C que es 1 se deduce que la condición se cumple, por lo que se va al paso 3 y se produce lo siguiente (nuevamente pasos 3 y 4):

y así sucesivamente, hasta que el condicional que obliga a la repetición ya no cumpla la condición, luego entonces ejecutar los pasos 6 y 7, para luego terminar.

En la prueba, haciendo un paréntesis, se puede advertir que las sumas se van haciendo correctamente, por lo que se deduce que se terminará con la suma correcta. Solo bastara verificar si termina apropiadamente.

Un punto a evaluar debe ser el verificar si la repetición se hace el numero esperado de veces, una vez más, o una menos, que es lo que frecuentemente ocurre con los condicionales que hacen la repetición en los algoritmos.

En la prueba de escritorio, si hay repeticiones, es suficiente probar un numero razonable de veces ( 5 o 10). Así por ejemplo, si el ejercicio pide calcular el promedio de 1000 números leídos, no será necesario probar con los 1000, será suficiente probar con 5 o 10.

La prueba consistirá en 2 etapas:

  • La primera, en probar inicialmente que el programa funcione correctamente, para lo que se elegir´ algunos datos fáciles de probar, cosa que siempre es posible.
  • La segunda, si se prueba que ya funciona, se buscaran otros datos (si los hay) que hagan que falle el algoritmo, en cuyo caso se habrán de detectar otros errores. Si el algoritmo no falla, podemos concluir que el programa esta terminado y revisado, por lo tanto correcto.

DATOS PARA LA PRUEBA DE ESCRITORIO

Los datos de prueba deben permitirnos verificar que el programa funciona bien con cualquier dato o para todos los casos, según el problema.

Por ejemplo, si el problema es: Dada una nota(en el rango 0 a 100), muestre el mensaje que le corresponde (el mensaje dirá APROBADO si es mayor o igual a 51, REPROBADO si es menor a 50 y CASO ESPECIAL si es mayor o igual a 50 y menor a 51).

En este caso por lo menos deberíamos tener 3 datos (valores) para probar (hay 3 casos posibles), es decir, uno para el caso APROBADO, otro para el caso REPROBADO y un tercero para el CASO ESPECIAL. Luego 40, 50.5 y 70 pueden ser 3 de esos datos. Con 40 verificamos que el mensaje será REPROBADO, con 50.5 el mensaje mostrado será CASO ESPECIAL y con 70 será APROBADO.

  1. Leer nota // suponemos que es un valor entre 0 y 100
  2. Si nota >= 51 Entonces Mostrar “APROBADO”
  3. Si nota < 50 Entonces Mostrar “REPROBADO”
  4. Si nota >= 50 y nota <51 Entonces Mostrar “CASO ESPECIAL”
  5. FIN

Otro ejemplo es el caso del número primo (dado N, diga si es o no in número primo). En este caso, necesitamos para probar el programa 2 valores, uno que si es primo y otro que no lo es, por ejemplo 8 y 11 (el primero generara el mensaje “NO ES” y el segundo “SI ES”)

  1. Leer N // suponemos entero y positivo
  2. C <- 0 : CD <- 0 // C es un simple contador y ND contador de divisores
  3. C <- C + 1
  4. Si N MOD C = 0 Entonces CD <- CD + 1 // contamos los divisores
  5. Si C < N Entonces ir a 3 // si aun el contador no llego a N
  6. Si C = 2 Entonces Mostrar “SI ES” Sino Mostrar “NO ES” // si C es 2, solo tiene 2
                                                                                               // divisores, luego ES PRIMO
  7. FIN