Problema 5
5. Se desea probar un módulo que calcula el máximo común divisor de dos valores enteros mayores que cero que recibe como entrada. Se sabe que el módulo utiliza un algoritmo que requiere realizar comparaciones de igualdad, mayor y menor entre los parámetros.
Si el módulo recibe un número de parámetros distinto de dos, los tipos de los parámetros no son los adecuados o alguno de ellos es negativo o cero, el resultado devuelto por el módulo es el valor -1.
Crear la tabla de particiones de equivalencia y la batería de pruebas que se deriva de ella, añadiendo los casos de prueba adicionales obtenidos por el análisis de valores límite.
La tabla de particiones de equivalencia constará de tres condiciones derivadas de la distinción entre entradas correctas y entradas erroneas, y otras tres derivadas de la sospecha de que las entradas cuyos parámetros son iguales entre sí, el primero es mayor y el primero es menor se tratan de manera diferenciada en el módulo. Estas tres últimas condiciones deben asumir que el número de parámetros es dos y que su tipo de datos es entero, ya que si no la formulación de las condiciones carecería de sentido. Sin embargo, la condición de que sean mayores que cero no tiene porqué asumirse.
En la tabla se muestran en color azul las expresiones que definen la partición derivada del tratamiento diferenciado en el módulo, y que por lo tanto se mantienen tanto en las clases "correctas" como en las "erroneas". La clase 9 se expresaría en realidad como { a > b; a > 0; b > 0 }, de ahí la conversión en dos clases erroneas (10.1 y 10.2), pero se simplifica a la forma en que aparece en la tabla ya que b > 0 y a > b implican el cumplimiento de a > 0. Lo mismo sucede con la clase 11.
De la tabla de particiones obtenemos la siguiente batería de pruebas:
Los casos obtenidos en el análisis de valores límite se derivan de elegir valores adicionales lo más cercanos posibles a las condiciones de las clases. Por ejemplo, dada la condición a > b, se escoge un caso de prueba donde a = b+1 (suponiendo que tengamos ya un caso de prueba con a > b+1).
Regresar a la página de enunciados.