El análisis de valor límite es una técnica de prueba de software en la que las pruebas están diseñadas para incluir representantes de valores límite en un rango. La idea viene de la frontera . Dado que tenemos un conjunto de vectores de prueba para probar el sistema, se puede definir una topología en ese conjunto. Las entradas que pertenecen a la misma clase de equivalencia definida por la teoría de partición de equivalencia constituirían la base . Dado que los conjuntos de bases son vecinos, existiría un límite entre ellos. Los vectores de prueba a cada lado del límite se denominan valores límite. En la práctica, esto requeriría que los vectores de prueba se puedan ordenar y que los parámetros individuales sigan algún tipo de orden (ya sea orden parcial o orden total ).
Definicion formal
Formalmente los valores límite se pueden definir de la siguiente manera: - Que el conjunto de los vectores de prueba sea. Supongamos que hay una relación de ordenación definida sobre ellos, como. Dejarser dos clases equivalentes. Suponga que el vector de prueba y . Si o luego las clases están en el mismo barrio y los valores son valores límite.
En un inglés más sencillo, se prueban los valores de los bordes mínimo y máximo de una partición de equivalencia . Los valores pueden ser rangos de entrada o salida de un componente de software, también puede ser la implementación interna. Dado que estos límites son ubicaciones comunes para errores que resultan en fallas de software , con frecuencia se ejercen en casos de prueba .
Solicitud
Los valores de entrada y salida esperados para el componente de software deben extraerse de la especificación del componente. Luego, los valores se agrupan en conjuntos con límites identificables. Cada conjunto o partición contiene valores que se espera que el componente procese de la misma manera. La partición de rangos de datos de prueba se explica en la técnica de diseño de casos de prueba de partición de equivalencia . Es importante considerar particiones válidas y no válidas al diseñar casos de prueba.
La demostración se puede realizar utilizando una función escrita en Java .
class Safe { static int add ( int a , int b ) { int c = a + b ; if ( a > = 0 && b > = 0 && c < 0 ) { System . err . println ( "¡Desbordamiento!" ); } si ( a < 0 && b < 0 && c > = 0 ) { System . err . println ( "¡ Desbordamiento !" ); } return c ; } }
Sobre la base del código, los vectores de entrada de [ a, b ] se dividen. Los bloques que debemos cubrir son la declaración de desbordamiento y la declaración de desbordamiento y ninguno de estos 2. Eso da lugar a 3 clases equivalentes, a partir de la revisión del código en sí.
observamos que hay un tamaño fijo de entero, por lo tanto: -
- MIN_VALUE ≤ x + y ≤ MAX_VALUE
Observamos que el parámetro de entrada un y b ambos son números enteros, por lo tanto, orden total existe en ellos. Cuando calculamos las igualdades: -
- x + y = MAX_VALUE
- MIN_VALUE = x + y
obtenemos los valores que están en el límite, inclusive, es decir, estos pares de ( a, b ) son combinaciones válidas, y no ocurriría ningún desbordamiento o desbordamiento para ellos.
Por otro lado:-
- x + y = MAX_VALUE + 1
da pares de ( a, b ) que son combinaciones inválidas, se produciría un desbordamiento para ellos. Del mismo modo:-
- x + y = MIN_VALUE - 1
da pares de ( a, b ) que son combinaciones inválidas, se produciría un desbordamiento para ellos.
Los valores límite (dibujados solo para el caso de desbordamiento) se muestran como la línea naranja en la figura del lado derecho.
Otro ejemplo, si los valores de entrada fueran meses del año, expresados como números enteros, el parámetro de entrada 'mes' podría tener las siguientes particiones:
... -2-1 0 1 .............. 12 13 14 15 ..... -------------- | ------------------- | --------------- ----partición no válida 1 partición válida partición no válida 2
El límite entre dos particiones es el lugar donde cambia el comportamiento de la aplicación y no es un número real en sí mismo. El valor límite es el valor mínimo (o máximo) que se encuentra en el límite. El número 0 es el número máximo en la primera partición, el número 1 es el valor mínimo en la segunda partición, ambos son valores límite. Los casos de prueba deben crearse para generar entradas o salidas que caerán a ambos lados de cada límite, lo que da como resultado dos casos por límite. Los casos de prueba a cada lado de un límite deben estar en el incremento más pequeño posible para el componente bajo prueba, para un número entero esto es 1, pero si la entrada fuera un decimal con 2 lugares, entonces sería .01. En el ejemplo anterior, hay valores límite en 0,1 y 12,13 y cada uno debe probarse.
El análisis del valor límite no requiere particiones inválidas. Tomemos un ejemplo en el que se enciende un calentador si la temperatura es de 10 grados o menos. Hay dos particiones (temperatura ≤ 10, temperatura> 10) y dos valores límite para probar (temperatura = 10, temperatura = 11).
Cuando un valor límite cae dentro de la partición no válida, el caso de prueba está diseñado para garantizar que el componente de software maneje el valor de manera controlada. El análisis de valor límite se puede utilizar durante todo el ciclo de prueba y es igualmente aplicable en todas las fases de prueba.
Referencias
- El sitio web del Grupo de trabajo sobre normas de prueba .