Problema 4


4. Disponemos de un módulo, busqueda, cuya función es buscar la aparición de un determinado valor entero dentro de un vector ordenado de enteros. En caso de encontrar el valor, el módulo devuelve la posición del vector donde se ha encontrado (se supone que al primer componente del vector le corresponde la posición 1, al segundo la posición 2, etc). En caso de no encontrarse dentro del vector, el módulo devuelve -1. Si existieran varias apariciones del valor buscado dentro del vector, el módulo devolverá la menor posición donde se encuentre.

Los parámetros del módulo son, en primer lugar el valor buscado, a continuación el vector y por último un valor entero que indica cual es el tamaño (número de componentes) del vector.

Ejemplo: busqueda(5, [1,3,3,5,5,5,9], 7) devolverá 4.

Se desconoce el lenguaje en que se ha implementado el módulo, y se consideran como casos no válidos (además de los habituales) aquellos en que el vector no se encuentre ordenado y cuando el tamaño del vector no corresponda realmente con el número de elementos que contiene.

Diseñar un conjunto de casos de prueba para el módulo anterior mediante pruebas de caja negra y análisis de valores límite.


Previamente definimos los siguientes conceptos y condiciones que se van a utilizar en la tabla:

La tabla de particiones de equivalencia sería:

Para las condiciones relacionadas con la salida, se ha asumido que el tamaño del vector coincide con el que nos proporcionan, ya que es de suponer que dentro del módulo se utilize ese valor para conocer el número de elementos del vector, y el problema de buscar un valor no tiene sentido si se contempla la posibilidad de acceder a posiciones fuera del rango permitido en el vector.

Por otro lado, si es posible buscar un valor aunque el vector no esté ordenado, por lo tanto no se asume la condición D.

Una posible batería de casos de prueba consistente con la tabla anterior sería:

Aunque no se pide en el problema, en la tabla siguiente se muestran algunos casos de prueba adicionales obtenidos mediante conjetura de errores:


Regresar a la página de enunciados.