Pruebas de Software

4,653 views

Published on

Slides acerca del proceso de puebas y testing en la ingenieria de software

1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
4,653
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
203
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

Pruebas de Software

  1. 1. PRUEBAS-1 Pruebas de software Técnicas de prueba del software Estrategias de prueba del software Autor: Manuel Collado Fecha: Marzo 2003
  2. 2. PRUEBAS-2 Introducción a las pruebas del software Técnicas de prueba del software Contenido Conceptos. Objetivos. Casos de prueba Pruebas de caja blanca Pruebas de caja negra
  3. 3. PRUEBAS-3 Introducción a las pruebas del software Pruebas: concepto y objetivos Comprobación del software Demostración (proof): manual o semiautomática Inspección manual del código Prueba o ensayo (testing): ejecutar y ver resultados Caso de prueba: ensayo individual Imposibilidad de pruebas exhaustivas Impracticable, demasiado costoso Imposible garantizar la ausencia de defectos Si se provocan fallos, seguro que hay defectos Si no aparecen fallos, puede que haya defectos, o no
  4. 4. PRUEBAS-4 Introducción a las pruebas del software Pruebas: concepto y objetivos Objetivos de las pruebas Encontrar defectos en el software Una prueba tiene éxito si descubre un defecto Una prueba fracasa si hay defectos pero no los descubre Pruebas de Verificación Ver si cumple las especificaciones de diseño Pruebas de Validación Ver si cumple los requisitos del análisis
  5. 5. PRUEBAS-5 Introducción a las pruebas del software Pruebas de “caja blanca” Concepto y terminología Pruebas en que se conoce el código a probar Caja blanca (clear box: caja clara o transparente) Se procura ejercitar cada elemento del código Algunas clases de pruebas Pruebas de cubrimiento Pruebas de condiciones Pruebas de bucles
  6. 6. PRUEBAS-6 Introducción a las pruebas del software Pruebas de cubrimiento Ejecutar al menos una vez cada sentencia Se necesitan varios casos de prueba Determinar posibles “caminos” independientes Cada condición debe cumplirse en un caso y en otro no. En general, se necesitan tantos casos como condiciones, más uno (número ciclomático) Puede ser imposible cubrir el 100% Código que nunca se ejecuta: condiciones imposibles Ejemplo: detección y notificación de errores internos en un código sin errores
  7. 7. PRUEBAS-7 Introducción a las pruebas del software Pruebas de condiciones Cumplir o no cada parte de cada condición Se necesitan varios casos de prueba Determinar expresiones simples en las condiciones Una por cada operando lógico o comparación Cada expresión simple debe cumplirse en un caso y en otro no, siendo decisiva en el resultado Puede ser imposible cubrir el 100% Expresiones simples no independientes
  8. 8. PRUEBAS-8 Introducción a las pruebas del software Pruebas de bucles Conseguir números de repeticiones especiales Bucles simples Repetir cero, una y dos veces Repetir un número medio (típico) de veces Repetir el máximo-1, máximo y ¡máximo +1! Bucles anidados Repetir un número medio (típico) los bucles internos, el mínimo los externos, y variar las repeticiones del bucle intermedio ensayado. Ensayarlo con cada nivel de anidamiento
  9. 9. PRUEBAS-9 Introducción a las pruebas del software Pruebas de “caja negra” Concepto y terminología Pruebas en que se conoce sólo la interfaz Caja negra (black box: caja opaca) Se procura ejercitar cada elemento de la interfaz Algunas clases de pruebas Cubrimiento → invocar todas las funciones (100%) Clases de equivalencia de datos Pruebas de valores límite
  10. 10. PRUEBAS- 10 Introducción a las pruebas del software Pruebas de clases de equivalencia Particiones de equivalencia Los datos se clasifican según las distinciones visibles en la interfaz del programa. Ejemplo: EsPrimo: Entero → Booleano Clase 1: primo ≥ 2 (2, 3, 5, 7, 11, ...) Clase 2: no_primo ≥ 2 (4, 6, 8, 9, 10, ...) Clase 3: valores singulares (0, 1) Clase 4: no definido (-1, -2, ...) Casos de ensayo con datos de cada clase
  11. 11. PRUEBAS- 11 Introducción a las pruebas del software Pruebas de valores límite Complemento a las particiones de equivalencia Varios casos de prueba por cada partición Valores típicos, intermedios Valores primero y segundo del rango Valores penúltimo y último Valores vecinos fuera del rango (en otra partición) Motivación Los programadores se equivocan con más frecuencia al tratar los valores en la frontera (Ej: > en vez de ≥)
  12. 12. PRUEBAS- 12 Introducción a las pruebas del software Estrategias de prueba del software Contenido Pruebas de unidades Pruebas de integración Pruebas de regresión Pruebas de validación
  13. 13. PRUEBAS- 13 Introducción a las pruebas del software Pruebas sin estrategia Motivación Las pruebas son incómodas La pruebas son aburridas “Estoy seguro de que lo he codificado bien” Probar todo junto, al final - Big-Bang Falla por todas partes Muy difícil diagnosticar las causas de los fallos Muy costoso de arreglar Resultado → productos finales defectuosos
  14. 14. PRUEBAS- 14 Introducción a las pruebas del software Actividades de prueba de software Actividades de desarrollo Análisis Diseño Codificación Integración Mantenimiento P. unidades Doc. Diseño Cod. Módulos P. integración Cód. Completo P. validación Doc. Requisitos
  15. 15. PRUEBAS- 15 Introducción a las pruebas del software Pruebas de unidades Se prueba cada módulo Módulo en pruebas Programa de prueba Otros módulos Otros módulos Reales o simulados (stubs)
  16. 16. PRUEBAS- 16 Introducción a las pruebas del software Pruebas de integración Integración ascendente Módulo en pruebas Otros módulos Otros módulos Reales, ya probados Otros módulos Programa de prueba
  17. 17. PRUEBAS- 17 Introducción a las pruebas del software Pruebas de integración Integración descendente Módulo en pruebas Otros módulos Otros módulos Reales, ya probados Otros módulos simulados (stubs)
  18. 18. PRUEBAS- 18 Introducción a las pruebas del software Prueba unidades + integración ascendente Dibujar Curva_C Pluma Papel Ejemplo
  19. 19. PRUEBAS- 19 Introducción a las pruebas del software Prueba unidades + integración ascendente Papel P_Papel Paso 1
  20. 20. PRUEBAS- 20 Introducción a las pruebas del software Prueba unidades + integración ascendente Pluma Papel P_Papel P_Pluma Paso 2
  21. 21. PRUEBAS- 21 Introducción a las pruebas del software Prueba unidades + integración ascendente Curva_C Pluma Papel P_Papel P_Pluma P_Curva_C Paso 3
  22. 22. PRUEBAS- 22 Introducción a las pruebas del software Prueba unidades + integración ascendente Dibujar Curva_C Pluma Papel P_Papel P_Pluma P_Curva_C Paso 4
  23. 23. PRUEBAS- 23 Introducción a las pruebas del software Pruebas de regresión Repetir las pruebas tras cada modificación Repetir sólo pruebas de verificación Pruebas de unidades Pruebas de integración Conservar y actualizar los programas de prueba Usar herramientas de ejecución automática de las pruebas
  24. 24. PRUEBAS- 24 Introducción a las pruebas del software Pruebas de validación Comprobar que se satisfacen los requisitos Se usan la mismas técnicas, pero con otro objetivo No hay programas de prueba, sino sólo el código final de la aplicación Se prueba el programa completo Uno o varios casos de prueba por cada requisito o caso de uso especificado Se prueba también rendimiento, capacidad, etc. (y no sólo resultados correctos) Pruebas alfa (desarrolladores) y beta (usuarios)

×