domingo, 13 de septiembre de 2015

Set de Pruebas para un programa que multiplique dos números enteros.

Se llevó a cabo un set de 100 pruebas para, como el nombre sugiere, probar un programa cuya función es multiplicar dos números enteros, el programa en cuestión es el siguiente:















El programa es bastante sencillo, y el código que se va a utilizar para ponerlo a prueba es el siguiente:


















Como se puede notar, la forma en la que se va a probar el programa, es intentando enviarle como parámetros para la ejecución diversos tipos de datos, no únicamente de tipo int como espera recibir el programa, de esta forma se espera que se den errores y para ello se utilizaron los comandos try-catch para imprimir el error en cuestión y que la ejecución no se detenga.

Cada uno de los tipos de datos primitivos de java, que son 8 van a ser probados alrededor de 12 veces utilizando el comando for, el resultado va a ser impreso y así se podrá ver con qué tipos de dato el programa no pudo ejecutarse correctamente. Los resultados de las pruebas son los siguientes:




















Tras ver la ejecución de estas pruebas, puede notarse que únicamente con aquellos datos que eran enteros a pesar de no ser int, el programa funcionó correctamente, mientras que con aquellos datos que eran decimales o aquellos que ni siquiera eran números, el programa falló y se imprimió el error en cuestión, la excepción a esto fueron las pruebas con datos del tipo char, y esto se debe a que en el momento que se creaban los datos, se multiplicaban con un numero entero para que tomara el valor de un carácter del código ASCII, sin embargo al momento de castearlo, el valor que envió fue el numérico del carácter en el código ASCII, no el carácter en sí, es por esto que el programa funcionó a pesar de que teóricamente no debería de haberlo hecho.

Llevar a cabo sets de pruebas es una herramienta muy util, porque con ella podemos de ver que tipo de errores o vulnerabilidades tiene el programa y así durante su construcción corregirlos para que una vez que se lleguen a sus etapas finales de desarrollo, la cantidad de vulnerabilidades que tenga sea mínima y por lo tanto, más seguro.

No hay comentarios.:

Publicar un comentario