• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content

Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Pruebas de Software

on

  • 4,508 views

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

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

Statistics

Views

Total Views
4,508
Views on SlideShare
4,508
Embed Views
0

Actions

Likes
4
Downloads
188
Comments
1

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • excelente
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Pruebas de Software Pruebas de Software Presentation Transcript

    • Pruebas de software Técnicas de prueba del software Estrategias de prueba del software Autor: Manuel Collado Fecha: Marzo 2003
    • Técnicas de prueba del software
      • Contenido
        • Conceptos. Objetivos. Casos de prueba
        • Pruebas de caja blanca
        • Pruebas de caja negra
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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
    • 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  )
    • Estrategias de prueba del software
      • Contenido
        • Pruebas de unidades
        • Pruebas de integración
        • Pruebas de regresión
        • Pruebas de validación
    • 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
    • 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
    • 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 )
    • 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
    • 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 )
    • Prueba unidades + integración ascendente
      • Ejemplo
      Dibujar Curva_C Pluma Papel
    • Prueba unidades + integración ascendente
      • Paso 1
      Papel P_Papel
    • Prueba unidades + integración ascendente
      • Paso 2
      Pluma Papel P_Papel P_Pluma
    • Prueba unidades + integración ascendente
      • Paso 3
      Curva_C Pluma Papel P_Papel P_Pluma P_Curva_C
    • Prueba unidades + integración ascendente
      • Paso 4
      Dibujar Curva_C Pluma Papel P_Papel P_Pluma P_Curva_C
    • 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
    • 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)