Please enable JavaScript.
Coggle requires JavaScript to display documents.
Teoria del testing en programacion - Coggle Diagram
Teoria del testing en programacion
Surge en los 1970s:
Teoria del testing
Enfasis en:
Detectar defectos mediante pruebas
Designar casos de prueba
Seleccionar subconjunto de casos de prueba
Efectividad de la estrategia de casos de prueba
Analisis de casos de prueba
Limitaciones del testing por Dijkstra
"Testing solo revela la presencia de errores, nunca su ausencia."
Teorias
Weyuker y Ostrand
Se basa en
Especificacion del programa
deja de lado
Programa en si
conceptos
Test ideal uniformal
Criterio confiable uniformal
Criterio valido uniformal
Gourlay
Un programa correcto es el que no tiene fallos
Testing no se puede usar para determinar si un programa es correcto o no.
Proceso ideal de desarrollo de software:
El cliente y el equipo de desarrollo especifican necesidades.
El equipo toma la especificacion e intentan escribir un programa para satisfacer las necesidades.
Un ingenerio de pruebas toma el programa y la especificacion, y selecciona un set de casos de prueba basado en ambos.
El programa es ejecutado con el set de datos seleccionado y el resultado comparado con el resultado esperado.
1 more item...
Se enfoca en la seleccion de casos de prueba y la interpretacion de los resultados.
Se asume que la especificacion es correcta, y se trabaja en base a eso.
Goodenough y Gerhart
1975
Fallas de programa
Falla logica: Se produce un resultado equivocado independiente de los recursos requeridos
Falla de diseño: Nuestra culpa al satisfacer el requerimiento
Falla de construccion: Nuestra falla para satisfacer un diseño
Falla de requerimientos: falla al capturar los requerimientos reales del cliente.
Falla de rendimiento: Falla del programa para producir los resultados esperados dentro de limitaciones
Surgen
Terminos:
Predicado de prueba: Descripcion de condiciones y combinacion de condiciones para el correcto funcionamiento de un programa
Dato de prueba: Valores de un dominio de entradas que satisfacen alguna seleccion de pruebas.
Problema
Mientras un programa va cambiando, tambien lo hace su test ideal.
Se basa en
La prueba idea
Adecuacion del testing:
Le da a los diseñadores y programadores mucha confianza en un componente de software o producto completo si pasa las pruebas.
Idealmente, las pruebas deben ser en base a un set de pruebas apropiado.
Pruebas apropiadas, son aquellas que cubren todos los aspectos de la computacion llevada por el programa y toda la computacion esperada por la especificacion.
Pruebas:
Mutacion de programa: Una mutacion es un programa obtenido haciendo un pequeño cambio al programa original. El set de pruebas es adecuado, si causa a cada programa mutado un resultado inesperado.
Siembra de fallas: Plantar un cierto numero de fallas en un programa y ejecutarlo con un cierto set de pruebas, si el 100% son encontrados se da confianza.
Para saber si se ha llevado a cabo o no, suficiente testing.
Limitaciones del testing
El testing se hace en base a pequeños conjuntos de pruebas generalmente, ya que si son muy grandes se produce un testing exhaustivo. Incluso si un programa pasa un determinado set de pruebas, no se puede decir que es completamente correcto.
Una vez seleccionado un subset del dominio de entradas, nos vemos en la obligacion de verificar si los resultados son correctos para entradas individuales. Es decir, la salida es examinada para saber si el programa fue correcto en base a la entrada. Si no hay mecanismo para determinar la correctitud de la salida del programa, entonces no vale la pena hacer pruebas.