Pruebas De Programas

Páginas: 9 (2195 palabras) Publicado: 22 de octubre de 2012
Laboratorio de Programación

Pruebas de
Programas

Julio Villena Román
jvillena@it.uc3m.es

Introducción
Errores de software

Un error en un
programa puede ser
algo muy serio

http://www.wired.com/software/coolapps/news/2005/11/69355?currentPage=all
(http://www.elmundo.es/elmundo/2005/11/11/ciencia/1131725311.html)
http://www5.in.tum.de/~huckle/bugse.htmlhttp://www.cs.tau.ac.il/~nachumd/verify/horror.html
2

Introducción
¿Qué es probar?

Probar es descubrir el mayor número posible de
errores en un programa
¡Ojo! No es convencerse de que el programa
está bien...
Eso ya se hace en las fases anteriores del desarrollo
del programa (o lo intentan)

Probar un programa es buscarle fallos “a mala
leche”
El objetivo es poner en evidencia al programa

3Introducción
La prueba exhaustiva es imposible

Lo ideal sería probar el programa en todas las
situaciones posibles
Esto es imposible desde cualquier punto de
vista:
Humano
Económico
Incluso matemático: bucles infinitos

Explosivo número de combinaciones
Habría que probar todas las posibles
variaciones en los datos de entrada
No podemos alcanzar la perfección... pero algo
habrá quehacer
4

Introducción
Organización: Fases de prueba

Prueba de Unidades
Caja Blanca
Cobertura de segmentos
Cobertura de ramas
Cobertura de condición/decisión
Cobertura de bucles

Caja Negra
Cobertura de requisitos

Pruebas de Integración
Pruebas de Aceptación

5

Prueba de Unidades
Se trata de probar módulos sueltos
Fase informal previa:
Ejecutar pequeños ejemplos
Hayherramientas que analizan
automáticamente la sintaxis de los programas
(¡e incluso “opinan” sobre fuentes potenciales de
error!)

Fase de prueba sistemática:
Pruebas de caja blanca (o transparente): Se mira
con lupa la estructura del código escrito
Pruebas de caja negra: Se prueba la
funcionalidad del módulo sin atender a su
contenido
6

Prueba de Unidades
Caja blanca

Tambiénllamadas:
pruebas estructurales
pruebas de caja transparente

Su objetivo es probar exhaustivamente la
estructura del código
Cobertura: es una medida del porcentaje de
código que ha sido probado o “cubierto” con las
pruebas. Hay varios tipos:
Cobertura de segmentos
Cobertura de ramas
Cobertura de condición/decisión
Cobertura de bucles

7

Prueba de Unidades
Caja blanca

Cobertura desegmentos (o de sentencias)
Segmento: secuencia de sentencias sin puntos de
decisión
El nº de sentencias es finito. Hay que ser
precavido a la hora de elegir cuándo parar
No se suele pasar por todas las sentencias sino
por una mayoría elegida adecuadamente

Prueba de Unidades
Caja blanca

Cobertura de ramas
¿Qué ocurre con los segmentos opcionales?
if (condición) {
EjecutaEsto()
}Hay que probar cuándo la condición se cumple y
cuándo falla
Refinamiento: hay que recorrer todas las posibles
salidas de los puntos de decisión (y excepciones)

Prueba de Unidades
Caja blanca

Cobertura de condición/decisión
¿Qué ocurre cuando la expresión booleana es
más compleja?
if (condición1 || condición2) {
HazEsto()
}

Sólo 2 ramas, pero 4 posibles combinaciones
Hay quedefinir un criterio de cobertura sobre las
combinaciones

10

Prueba de Unidades
Caja blanca

Cobertura de bucles
Los bucles son una fuente inagotable de errores.
Pruebas para un bucle WHILE:
1. 0 ejecuciones
2. 1 ejecución
3. Más de 1 ejecución

Pruebas para un bucle DO/WHILE:
1. 1 ejecución
2. Más de 1 ejecución

Pruebas para un bucle FOR:
Son muy seguros: bastaejecutarlos una vez (si dentro
no se altera la variable de control o algo así)
… pero conviene examinarlos por si acaso

Prueba de Unidades
Caja blanca

¿Qué hacer en la práctica?
Acercarse al 100% de segmentos
Lograr una buena cobertura de ramas
La buena cobertura depende del tipo de programa:
Juegos basta con probar 60-80% del código
Aplicaciones críticas (sanitarias, centrales nucleares,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Métodos de Prueba de Programas
  • Pruebas De Cumplimiento Y Programa De Auditoria De Inventario
  • Desarrollo y Prueba De Un Programa Java
  • PLAN DE PRUEBA DE UN PROGRAMA
  • Programa De Metodologia De Pruebas De Suelos
  • Programa de prueba de 4°
  • Programas Y Pruebas De Auditoria
  • Programa

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS