Problema 7
7. Elaborar una batería de pruebas para un módulo que recibe como entrada una cadena de caracteres y determina
si puede ser una clave válida o no (por lo tanto devuelve un valor lógico, si o no). Una clave se considera
válida si cumple los requisitos siguientes:
- Esta formada por más de 4 y menos de 8 carácteres.
- Los caracteres permitidos son las letras a..z, A..Z, los dígitos 0..9 y el carácter %.
- Contiene al menos dos letras.
- Contiene al menos un carácter que no es letra.
- El primer y último carácter son letras.
- No aparece en un diccionario de palabras prohibidas (user%10a, user%aa, ..).
En primer lugar, vamos a nombrar los siguientes elementos relacionados con la entrada para
que la escritura de las condiciones sea más sencilla:
- n : Número total de caracteres de la cadena.
- nl : Número de caracteres de la cadena que son letras.
- nd : Número de caracteres de la cadena que son dígitos.
- ci : Carácter i-ésimo de la cadena.
- C : Conjunto de caracteres que son letras.
- D : Conjunto de cadenas de caracteres que pertenecen al diccionario de palabras prohibidas.
Este problema es especial en el sentido de que el módulo sólo proporciona dos valores
de la salida, si o no. Pdemos suponer que el módulo establece como
precondición que el número y tipo de los parámetros es el adecuado, ya que
no existe un valor de la salida que permita indicar que ha detectado que un error respecto al
número y tipo de los parámetros.
Por otro lado, existen dos posibilidades a la hora de realizar el análisis:
- Suponer que no hay entradas "erroneas". En este caso existirían dos condiciones derivadas
de las dos salidas distintas del módulo, clave válida y clave no válida.
- Suponer que las entradas "correctas" son aquellas que coinciden con claves válidas y las
entradas "erroneas" son aquellas que coinciden con claves no válidas. En este caso sólo
existirá una clase que distingue entre entradas "correctas" y "erroneas".
Eligiendo esta última posibilidad, la tabla de particiones de equivalencia sería
la siguiente:
La batería de pruebas que se obtiene es:
Regresar a la página de enunciados.