Please enable JavaScript.
Coggle requires JavaScript to display documents.
Teoría del testing en programación - Coggle Diagram
Teoría del testing en programación
Conceptos basicos
Eficacia de las estrategias de selección de pruebas
Oráculos de prueba utilizados durante la prueba
Selección de un subconjunto de casos de prueba de todo el dominio de entrada
Priorizar la ejecución de casos de prueba
Diseño de casos de prueba de diferentes fuentes: especificación de requisitos, código fuente y dominios de entrada y salida de los programas
Análisis de adecuación de casos de prueba
Detección de defectos a través de la ejecución del programa.
Teoría de Weyuker y Ostrand
d existe algún D, el dominio de entrada del programa P y T que está incluido en D.
OK(P, d) = verdadero si y solo si P(d) es aceptable.
Criterio uniformemente válido: el criterio C es uniformemente válido iff
Criterio uniformemente confiable: El criterio C es uniformemente confiable iff
Selección de prueba uniformemente ideal
Un criterio de selección de prueba uniformemente ideal para una especificación dada es uniformemente válido y uniformemente confiable.
Un subdominio S es un subconjunto de D.
El criterio C es revelador para un subdominio S si cada vez que S contiene una entrada que se procesa incorrectamente, todos los conjuntos de prueba que satisfacen C no tienen éxito.
Teoría de Gourlay
La teoría establece una relación entre tres conjuntos de entidades
programas.
pruebas
especificaciones
Un método de prueba es una función M: P x S => T
Depende del programa: T = M(P)
Depende de la especificación: T = M(S)
Dependiente de la expectativa
Potencia de los métodos de prueba: Sean M y N dos métodos de prueba.
Para que M sea al menos tan bueno como N, queremos que ocurra lo siguiente
(FM y FN son conjuntos de fallas descubiertas por conjuntos de prueba producidos por los métodos de prueba M y N, respectivamente).
(TM y TN son conjuntos de prueba producidos por los métodos de prueba M y N, respectivamente).
Siempre que N encuentra un error, M también lo hace.
Dos casos: (a) TN está incluido en TM y (b) superposición de TM y TN
Adecuación de los testing
Algunos criterios apropiados para parar
El tiempo asignado para la prueba ha terminado.
Es hora de lanzar el producto.
Los casos de prueba ya no revelan fallas.
Dos métodos prácticos para evaluar la adecuación de las pruebas
Siembra de fallas
Siembra de fallas
Mutación del programa
Si un conjunto de prueba T no revela más fallas, nos enfrentamos a un dilema
P está libre de fallas
T no es lo suficientemente bueno para revelar (más) fallas.
Siembra de fallas
Si se revela el k% de las fallas X, T ha revelado el k% de las fallas desconocidas.
Implante un cierto número (por ejemplo, X) de fallas conocidas en P y pruebe P con T.
Los nuevos casos de prueba, además de los casos de prueba planificados, se diseñan mientras se realizan las pruebas. Sea el conjunto de prueba T.
Mutación del programa
Algunas mutaciones son defectuosas, mientras que otras son equivalentes a P.
Se dice que T es adecuado si hace que todas las mutaciones defectuosas produzcan resultados inesperados.
Una mutación de P se obtiene haciendo un pequeño cambio en P.
Limitaciones de las pruebas
La famosa observación de Dijkstra
Las pruebas pueden revelar la presencia de fallas, pero no su ausencia.
Los fallos se detectan ejecutando P con un pequeño conjunto de pruebas T, donde |T| << |D|, donde |.| denota la función "tamaño de" y "<<" denota "mucho más pequeño".
La prueba con un conjunto de prueba pequeño plantea la preocupación de probar la eficacia.
Probar con un equipo de prueba pequeño es menos costoso.
El resultado de cada prueba debe verificarse con un oráculo de prueba.
Verificar la salida de un programa no es una tarea trivial.
Hay programas no comprobables. Un programa no es comprobable si
Teoría de Goodenough y Gerhart
Las fallas del programa ocurren debido a nosotros
comprensión inadecuada de todas las condiciones con las que debe lidiar un programa.
-no darse cuenta de que ciertas combinaciones de condiciones requieren un cuidado especial.
Tipos de fallas del programa
Faltan rutas de flujo de control
Selección de ruta inadecuada
falla de rendimiento
Acción inapropiada o faltante
fallo lógico
falla de diseño
falla de construcción
Fallo de requisito
Predicado de prueba: Es una descripción de condiciones y combinaciones de condiciones relevantes para el correcto funcionamiento del programa
Condiciones para la confiabilidad de un conjunto de predicados de prueba C
Cada condición de bifurcación debe estar representada por una condición en C.
Cada posible condición de terminación debe estar representada en C.
Cada condición relevante para el correcto funcionamiento del programa debe estar representada en C.
Inconvenientes de la teoría
Dificultad para evaluar la fiabilidad y validez de un criterio.
Los conceptos de fiabilidad y validez se definen w.r.t. a un programa La bondad de una prueba debe ser independiente de los programas individuales.
Ni la fiabilidad ni la validez se conservan durante todo el proceso de depuración.
Teorema fundamental
(existe algún T incluido en D) (COMPLETE(T,C) y RELIABLE(C) y VALID(C) y SUCCESSFUL(T)) => (para todo d perteneciente a D) OK(d)
Conceptos Fundamentales
Criterio confiable: un criterio de selección de prueba C es confiable si cada prueba seleccionada por C tiene éxito o ninguna prueba seleccionada tiene éxito.
Criterio válido: un criterio de selección de prueba C es válido si y solo si P es incorrecto, C selecciona al menos un conjunto de prueba T que no tiene éxito para P.
Sea C un conjunto de predicados de prueba. Si d pertenece a D satisface el predicado de prueba c pertenece a C, entonces se dice que c(d) es verdadera.
COMPLETO(T, C) ≡ (para todo c perteneciente a C)(existe algún t perteneciente a T) c(t) y (para todo t perteneciente a T)(existe algun c perteneciente a C) c(t)
Resumen
Teoría de Gourlay
Sistema de prueba
Poder de los métodos de prueba (relación "al menos tan bueno como")
Adecuación de las pruebas
Necesidad de evaluar la adecuación
Métodos para evaluar la adecuación: siembra de fallas y mutación del programa
Teoría de Weyuker y Ostrand
Selección de prueba uniformemente ideal
Subdominio revelador
Subdominio revelador
Limitaciones de las pruebas
La prueba se realiza con un equipo de prueba T, s.t. |T| << |D|.
La observación de Dijkstra
Problema de prueba del oráculo
Teoría de Goodenough y Gerhart
Prueba ideal, Criterios de selección de prueba, Fallos de programa, Predicados de prueba