Please enable JavaScript.
Coggle requires JavaScript to display documents.
Theory of program testing - Coggle Diagram
Theory of program testing
El enfoque principal de theory testing es:
Detección de defectos mediante la ejecución de programas.
Diseño de casos de prueba a partir de diferentes fuentes.
Especificación de requisitos.
Código fuente.
Dominio de entradas y salidas
Selección de un subconjunto de casos de prueba de todo el dominio de entrada
Eficacia de las estrategias de selección de pruebas
Priorización de la ejecución de los casos de prueba
Análisis de la adecuación de los casos de prueba
Una base teórica de las pruebas proporciona a los testers y desarrolladores una valiosa visión de los sistemas de software y del proceso de desarrollo.
Teoría de Goodenough y Gerhart
Conceptos fundamentales
Criterio válido
Es válido si un programa es incorrecto y de este, su resultado es un conjunto de pruebas, las cuales no tienen éxito en este programa.
Criterio fiable
Es fiable si, o bien todas las pruebas seleccionadas tienen éxito o bien ninguna prueba seleccionada tiene éxito.
Tipos de fallos en los programas
Fallos lógico
Fallo de requisitos
Fallo de construcción
Fallo de rendimiento
Falta de rutas o flujo de control
Selección inadecuada de las rutas
Si de la ejecución exitosa de una muestra del dominio de entrada podemos concluir que el programa no contiene errores, entonces la muestra constituye una prueba ideal.
Teoria de Weyuker y Ostrand
La validez y la fiabilidad de los criterios de selección de pruebas dependen únicamente de la especificación del programa, en lugar de un programa.
Selección de pruebas uniformemente ideal
Un criterio de selección de pruebas uniformemente ideal para una especificación dada es a la vez uniformemente válido y uniformemente fiable.
Teoremas
Un criterio C es uniformemente válido si y sólo si C es trivialmente válido.
Un criterio C es uniformemente confiable si y solo si C selecciona un solo conjunto de prueba.
Teoría de Gourlay
La teoría establece una relación entre tres conjuntos de entidades
Especificaciones
Programas
Pruebas
Proceso ideal para el desarrollo de un sofware
Un cliente y un equipo de desarrollo especifican las necesidades.
Se toma la especificación e intenta escribir un programa que la cumpla.
Se toma la especificación y el programa y se selecciona un conjunto de casos de prueba.
El programa se ejecuta con los datos de prueba seleccionados y el resultado de la prueba se compara con el resultado esperado.
Se dice que el programa tiene fallos si algunas pruebas fallan.
Se dice que el programa esta listo para usarse tras pasar con éxito todos los casos de prueba.
Adecuación de las pruebas
Las pruebas dan muchas confianza al equipo de desarrolladores tras pasar todos los casos de prueba.
En ausencia de la adecuación de las pruebas, los desarrolladores se ven obligados a utilizar medidas ad hoc para decidir cuándo detener las pruebas.
Entre los ad hoc tenemos
Detenerse cuando el tiempo asignado para las pruebas expire.
Parar cuando sea el momento de liberar el producto.
Se detiene cuando todos los casos de prueba se ejecutan sin revelar fallos.
Métodos prácticos para evaluar la adecuación de las pruebas
Fault seeding
Program mutation
Limitaciones de las pruebas
Verificar la salida de un programa no es una tarea trivial.
Las pruebas pueden revelar la presencia de fallos, pero no su ausencia.
Probar con un conjunto de pruebas pequeño es menos costoso.
Es demasiado difícil determinar la salida correcta.
Probar con un conjunto de pruebas pequeño plantea la preocupación de la eficacia de las pruebas.