La prueba de caja negra o prueba de comportamiento es una estrategia (método) para probar el comportamiento funcional de un objeto (programa, sistema) desde el punto de vista del mundo externo, que no utiliza el conocimiento sobre la estructura interna (código) del objeto. siendo probado. En otras palabras, las pruebas de caja negra las realizan evaluadores que no tienen acceso al código fuente de la aplicación. La estrategia se refiere a los métodos sistemáticos de selección y creación de pruebas para un conjunto de pruebas. La estrategia de prueba de comportamiento proviene de los requisitos técnicos y sus especificaciones [1] .
Se entiende por "caja negra" un objeto de estudio cuya estructura interna se desconoce. El concepto de "caja negra" fue propuesto por W. R. Ashby . En cibernética, permite estudiar el comportamiento de los sistemas, es decir, sus reacciones a diversas influencias externas, y al mismo tiempo abstraerse de su estructura interna.
Al manipular solo con entradas y salidas, se pueden realizar ciertos estudios. En la práctica, siempre surge la pregunta de hasta qué punto el homomorfismo de la caja "negra" refleja la adecuación de su modelo estudiado, es decir, qué tan completamente se reflejan en el modelo las propiedades básicas del original.
La descripción de cualquier sistema de control en el tiempo se caracteriza por una imagen de la secuencia de sus estados en el proceso de moverse hacia la meta que enfrenta. La transformación en el sistema de control puede ser uno a uno y entonces se llama isomorfa, o solo uno a uno, en una dirección. En este caso, la transformación se llama homomórfica.
La caja "negra" es un modelo homomórfico complejo de un sistema cibernético en el que se respeta la diversidad. Sólo entonces es un modelo satisfactorio del sistema cuando contiene tal cantidad de información que refleja la diversidad del sistema. Se puede suponer que cuanto mayor sea el número de perturbaciones que actúan sobre las entradas del modelo del sistema, mayor será la diversidad que debe tener el controlador.
Actualmente se conocen dos tipos de cajas "negras". El primer tipo incluye cualquier caja "negra", que puede considerarse como un autómata , llamado finito o infinito. El comportamiento de tales cajas "negras" es conocido. El segundo tipo incluye tales cajas "negras", cuyo comportamiento solo puede observarse en un experimento. En este caso, de forma explícita o implícita, se expresa una hipótesis sobre la predictibilidad del comportamiento de la caja "negra" en un sentido probabilístico. Sin una hipótesis preliminar, cualquier generalización es imposible o, como dicen, es imposible sacar una conclusión inductiva basada en experimentos de caja negra. N. Wiener propuso el concepto de caja "blanca" para designar el modelo de caja "negra". La caja "blanca" consta de componentes conocidos, es decir, X, Y, δ, λ conocidos. Su contenido se elige especialmente para implementar la misma dependencia de entrada y salida que la caja "negra" correspondiente. En el proceso de investigación y generalizaciones en curso, hipótesis y establecimiento de patrones, se hace necesario ajustar la organización de la caja "blanca" y cambiar los modelos. En este sentido, al modelar, el investigador debe referirse repetidamente al esquema de relación de caja "negra" - "blanca".
Consideremos cómo se estudia e investiga el comportamiento de la caja "negra" del segundo tipo. Supongamos que se nos da algún sistema de control, cuya estructura interna se desconoce. El sistema de control tiene entradas y salidas .
La forma de estudiar el comportamiento de esta caja "negra" es realizar un experimento, cuyos resultados se pueden presentar en forma de tabla. una.
Este método de estudiar la caja "negra" se llama protocolo. Los valores de las cantidades de entrada a veces se pueden elegir arbitrariamente.
tabla 1
Estado de entrada | Estado de salida | Tiempo |
---|---|---|
............ | ............ | .... |
............ | ............ | .... |
Otra forma de explorar es alimentar algunas secuencias estándar a las entradas. Este método es especialmente atractivo porque permite comparar el comportamiento de varias cajas "negras" con la condición de elegir aquellas que cumplan con los requisitos.
El estudio de los sistemas de control está asociado a los conceptos de “ autómata probabilístico ”, “sistema probabilístico”, lo que requiere el estudio de sus propiedades probabilísticas. Para estos efectos, se puede construir una matriz de probabilidad (Tabla 2), en la que para cada entrada y cada salida se indique la probabilidad condicional , la cual se da en respuesta a [7] dada en la Tabla. 2.
El desarrollo de métodos para construir modelos matemáticos de la caja "negra" es uno de los problemas cibernéticos importantes. Siempre que exista un modelo matemático de la caja "negra", es posible atribuirla a cualquier clase, cuyos sistemas son isomorfos en comportamiento.
Crear una descripción matemática de la caja "negra" es una especie de arte. En algunos casos, es posible formar un algoritmo, según el cual la caja "negra" responde a una señal de entrada arbitraria. En la mayoría de los casos, sin embargo, se intenta establecer ecuaciones diferenciales que relacionen la reacción de la caja "negra" con sus entradas o, como se suele decir, con sus estímulos de entrada.
Para la ciencia, el método de la caja "negra" es de gran importancia. Con su ayuda, se hicieron muchos descubrimientos destacados en la ciencia. Por ejemplo, el científico Harvey predijo la estructura del corazón en el siglo XVII. Modeló el trabajo del corazón con una bomba, tomando prestadas ideas de un área completamente diferente del conocimiento contemporáneo: la hidráulica. El valor práctico del método de la "caja negra" radica, en primer lugar, en la posibilidad de estudiar sistemas dinámicos muy complejos y, en segundo lugar, en la posibilidad de sustituir una "caja" por otra. La realidad circundante y la biología brindan muchos ejemplos de cómo revelar la estructura de los sistemas utilizando el método de la caja "negra".
En este método, el programa se trata como una caja negra . El propósito de las pruebas es averiguar las circunstancias en las que el comportamiento del programa no cumple con la especificación . Para poder detectar todos los errores en el programa, es necesario realizar pruebas exhaustivas , es decir, pruebas en todo tipo de conjuntos de datos . Para la mayoría de los programas, esto no es posible, por lo que se utilizan pruebas razonables , en las que la prueba del programa se limita a un pequeño subconjunto de posibles conjuntos de datos. En este caso, es necesario elegir los subconjuntos más adecuados, los subconjuntos con mayor probabilidad de detección de errores.
Echemos un vistazo más de cerca a cada uno de estos métodos:
Partición equivalenteEl método se basa en dos principios:
El desarrollo de pruebas por este método se lleva a cabo en dos etapas : la selección de las clases de equivalencia y la construcción de la prueba.
Las clases de equivalencia se distinguen seleccionando cada condición de entrada, que se toma de los términos de referencia o especificación y se divide en dos o más grupos. Para ello se utiliza la siguiente tabla:
Condición de entrada | Clases de equivalencia adecuada | Clases de equivalencia incorrectas |
' | ' | ' |
La selección de clases de equivalencia es una forma heurística, pero hay una serie de reglas:
Definición de pruebas:
Las condiciones de contorno son situaciones que ocurren en los límites superior e inferior de las clases de equivalencia de entrada.
El análisis de valor límite difiere de la partición equivalente de las siguientes maneras:
El método requiere un cierto grado de creatividad y especialización en la tarea a realizar.
Hay varias reglas:
El análisis de valores límite, si se aplica correctamente, puede detectar una gran cantidad de errores. Sin embargo, definir estos límites para cada tarea puede ser una tarea difícil por separado. Además, este método no comprueba combinaciones de valores de entrada.
Análisis de causa y efectoPasos de construcción de prueba:
La tabla está anotada con restricciones y descripciones de combinaciones que no son posibles. La desventaja de este enfoque es el pobre estudio de las condiciones de contorno.
Suposición de errorUn probador con mucha experiencia encuentra errores sin ningún método, pero al mismo tiempo usa inconscientemente el método de adivinar el error. Este método se basa en gran medida en la intuición. La idea principal del método es hacer una lista que enumere posibles errores y situaciones en las que podrían ocurrir estos errores. Luego, en base a la lista, se compilan las pruebas.