2. Tecnicas de Pruebas de Software II Versión

28
INGENIERÍA DE SOFTWARE II 1

description

Tecnicas de Pruebas de Software II Versión

Transcript of 2. Tecnicas de Pruebas de Software II Versión

  • INGENIERA DE

    SOFTWARE II

    1

  • Pruebas de Software

    Contenido:

    1. Introduccin

    2. Enfoque estratgico a. Verificacin y Validacin

    b. Organizacin

    c. Visin General

    d. Criterios para completar las pruebas

    3. Prueba de software convencional

    4. Prueba para software orientado a objeto

    5. Prueba para webapps

    6. Pruebas de validacin

    7. Pruebas de sistema

    8. Depuracin

    2

  • Pruebas de Software

    1. Introduccin

    Una estrategia de prueba de software proporciona una gua que

    describe los pasos que deben realizarse como parte de la prueba,

    cundo se planean? Cundo se ejecutan? Cunto esfuerzo, tiempo y

    recursos requieren?

    Deben ser flexibles para promover su uso.

    Deben ser rgidas para alentar la planificacin razonable y gestin del

    proyecto.

    Es un conjunto de actividades que pueden planearse por adelantado y

    realizarse de manera sistemtica.

    3

  • Pruebas de Software

    2. Enfoque Estratgico

    Caractersticas Generales

    a. Para realizar una prueba efectiva, debe realizar revisiones

    tcnicas efectivas

    b. La prueba comienza en los componentes y opera hacia afuera,

    hacia la integracin de todo el sistema de cmputo

    c. Diferentes tcnicas de prueba son adecuadas para distintos

    enfoques de ingeniera de software y en diferentes momentos en

    el tiempo

    d. Las pruebas las realiza el desarrollador del software, y para

    proyectos grandes, un grupo de pruebas independiente

    e. Prueba y depuracin son actividades diferentes, pero la

    depuracin debe incluirse en cualquier estrategia de prueba

    4

  • Pruebas de Software

    2. Enfoque Estratgico - Verificacin y Validacin.

    La prueba de software es un elemento de un tema que usualmente

    se conoce como Verificacin y Validacin (V&V).

    La verificacin se refiere al conjunto de tareas que garantizan que el

    software implementa correctamente una funcin especfica.

    La validacin es un conjunto diferente de tareas que aseguran que el

    software que se construye sigue los requerimientos del cliente.

    Incluyen actividades de SQA: revisiones tcnicas, auditoras de

    calidad y configuracin, monitoreo de rendimiento, simulacin,

    estudio de factibilidad, revisin de documentacin, revisin de base

    de datos, anlisis y algoritmos, pruebas de desarrollo, de usabilidad,

    calificacin, aceptacin e instalacin.

    5

  • Pruebas de Software

    2. Enfoque Estratgico - Organizacin de las pruebas del software.

    El desarrollador de software es responsable de:

    a. Probar las unidades individuales o componentes

    b. Asegurarse que cada una desempea la funcin para la cual se

    realiz

    c. Puede realizar Pruebas de Integracin

    Grupo de Prueba Independiente (GPI)

    a. Remueve problemas que el constructor no identific

    b. Remueven el conflicto de intereses que pudiese presentarse

    c. Se les paga por encontrar errores

    d. El desarrollador y el GPI, interactan

    e. Es parte del equipo de proyecto de desarrollo del software

    6

  • Pruebas de Software

    2. Enfoque Estratgico - Visin General

    7

  • Pruebas de Software

    2. Enfoque Estratgico - Visin General

    8

  • Pruebas de Software

    2. Enfoque Estratgico - Criterios para completar las pruebas.

    Cundo terminan las pruebas ?

    Respuesta: Nunca se termina de probar, la carga simplemente

    pasa del desarrollador al usuario final.

    La ingeniera de software de salas limpias: sugiere el uso de

    estadsticas que ejecutan pruebas derivadas de una muestra

    estadstica de las posibles ejecuciones de un programa.

    El uso del modelado estadstico y la teora de la confiabilidad del

    software se utilizan para predecir cundo estn completas las

    pruebas.

    9

  • Pruebas de Software

    3. Prueba de Software Convencional.

    Visin incremental de las pruebas, comenzando con las unidades de

    programa individuales, avanza hacia pruebas de integracin y terminan

    con pruebas del sistema construido.

    3.1. Prueba de Unidad

    Enfoca los esfuerzos de verificacin en la unidad mas pequea del

    diseo del software: el componente o mdulo de software.

    La interface del mdulo se prueba para garantizar que los datos fluyan

    de manera adecuada hacia y desde la unidad de software. Se

    examinan las estructuras de datos locales para asegurar su

    almacenamiento e integridad.

    10

  • Pruebas de Software

    3.1. Prueba de Unidad

    11

  • Pruebas de Software

    3.2. Pruebas de Integracin Descendente

    Es un enfoque incremental a la construccin de la arquitectura.

    Integracin primero en profundidad.

    La ejecucin de las pruebas tendra este orden:

    M1, M2, M5,M8, M6, M3,M7, M4.

    M1

    M2

    M5

    M8

    M6

    M3

    M7

    M4

    12

  • Pruebas de Software

    3.2. Pruebas de Integracin Ascendente

    Comienza con la construccin y la prueba con mdulos atmicos (es

    decir, por componentes en los niveles inferiores dentro de la estructura

    del programa)

    Mc

    Ma

    D1

    D11 D12

    D121

    D1211

    D2 D21 D22

    D221 D222

    Mb

    D3

    D31

    D32

    Gru

    po

    1.

    Gru

    po

    2.

    13

  • Pruebas de Software

    3.2. Pruebas de Integracin Regresin

    Es la nueva ejecucin de algn subconjunto de pruebas que ya se

    realizaron a fin de asegurar que los cambios no propagaron efectos

    colaterales no deseados.

    Ayudan a garantizar que los cambios no introducen comportamiento no

    planeado o errores adicionales.

    Clases de pruebas:

    Muestra representativa de pruebas que ejercitar todas las funciones

    del software

    Pruebas adicionales enfocadas a las funciones del software que

    probablemente resulten afectadas por el cambio

    Pruebas que se enfocan en los componentes del software que

    cambiaron

    14

  • Pruebas de Software 3.2. Pruebas de Integracin Humo

    Es un enfoque de prueba de integracin que se usa cuando se

    desarrolla software de producto.

    Se disea como mecanismo de ritmo para proyectos crticos en el

    tiempo, permitiendo valorar el proyecto frecuentemente.

    Incluye las siguientes actividades:

    Construccin. Los componentes de software se integran.

    Descubrir errores paralizantes. Pruebas para exponer errores que

    evitarn la adecuada construccin

    Integracin entre construcciones.

    Beneficios:

    Minimiza el riesgo de integracin

    Mejora la calidad del producto final

    Simplifica el diagnstico y correccin de errores

    Facilidad para valorar el progreso

    15

  • Pruebas de Software 3.2. Pruebas de Integracin Productos del trabajo de las pruebas de Integracin.

    Especificacin de pruebas: Es el plan global de integracin del

    software y descripcin de las pruebas especficas.

    El producto del trabajo incorpora:

    1. Un plan de prueba

    2. Un procedimiento de prueba.

    La prueba se divide en:

    1. Fases y

    2. Construcciones

    Que abordan caractersticas:

    1. Funcionales y

    2. De Comportamiento

    16

  • Pruebas de Software 3.2. Pruebas de Integracin Productos del trabajo de las pruebas de Integracin.

    Criterios y pruebas que se aplican a todas las fases:

    1. Integridad de la interface (interna y externa)

    2. Validez funcional. Errores funcionales ocultos

    3. Contenido de la informacin. Errores asociados con las

    estructuras de datos.

    4. Rendimiento. Diseadas para verificar los lmites del rendimiento

    establecidos durante el diseo del software.

    17

  • Pruebas de Software

    4. Pruebas para software Orientado a Objeto Unidad de Contexto OO

    La prueba de Clase para software OO, es el equivalente de la prueba

    de unidad para software convencional. La diferencia radica, que tiende

    a enfocarse sobre el detalle de un mdulo y en los datos que fluyen a

    travs de la interface del mdulo.

    La prueba de clase la dirigen las operaciones encapsuladas por la

    clase y el comportamiento de estado de esta.

    18

  • Pruebas de Software

    4. Pruebas para software Orientado a Objeto Prueba de Integracin en el contexto OO.

    Prueba basada en Hebra. Integra el conjunto de clases requeridas

    para responder a una entrada o evento para el sistema.

    Prueba basada en uso. Comienza por la construccin del sistema

    al probar dichas clases, llamadas clases independientes, que usan

    muy pocas clases servidor.

    Prueba de grupo. El grupo de clases colaboradoras se ejercita

    para disear casos de prueba que intentan descubrir errores en las

    colaboraciones.

    19

  • Pruebas de Software

    5. Prueba para Webapps

    a. Revisin del modelo del contenido, para detectar errores

    b. Revisin del modelo de interface, asegurar aplicacin de casos de

    uso.

    c. Revisin del modelo de diseo, detectar errores de navegacin

    d. Revisin interface de usuario, para detectar errores en

    mecanismos de presentacin o navegacin.

    e. A cada componente funcional se le aplica una prueba de unidad

    f. Se prueban en varias configuraciones ambientales diferentes o

    dentro de su ambiente.

    g. Realizacin de pruebas de rendimiento

    h. Realizacin de pruebas de seguridad

    i. Prueba final: con una poblacin de usuarios controlada y

    monitoreada.

    20

  • Pruebas de Software

    6. Prueba de Validacin.

    Comienzan al terminar las pruebas de integracin, cuando se revisaron

    los componentes individuales.

    Aplica para todo tipo de pruebas de software.

    Las pruebas se enfocan en las acciones visibles para el usuario y las

    salidas del sistema reconocibles por el usuario.

    La validacin es exitosa cuando el software funciona cumpliendo con

    las expectativas razonables del cliente.

    21

  • Pruebas de Software

    6. Prueba de Validacin Criterios de Pruebas de Validacin.

    La validacin del software, se logra a travs de una serie de pruebas

    que demuestran conformidad con los requerimientos.

    El plan de pruebas indica las pruebas a ejecutar y el procedimiento de

    los casos especficos que se disean para garantizar que:

    a. Satisfacen los requerimientos de funcionamiento

    b. Logran todas las caractersticas de comportamiento

    c. Incluyen el contenido y presentado de manera adecuada, logrando

    todos los requerimientos de rendimiento.

    d. La documentacin es correcta y satisfacen la facilidad de uso

    22

  • Pruebas de Software

    6. Prueba de Validacin Revisin de la configuracin

    El objetivo es garantizar que todos los elementos de la configuracin

    del software se desarrollaron de manera adecuada.

    Tambin llamada auditora.

    23

  • Pruebas de Software

    6. Prueba de Validacin Pruebas Alfa y Beta.

    Se utiliza para descubrir errores que el usuario final es capaz de

    encontrar.

    Prueba Alfa. Se lleva a cabo en el sitio del desarrollador por un grupo

    representativo de usuarios finales. Se realizan en un ambiente

    controlado. El desarrollador est presente.

    Prueba Beta. Se realiza en uno o ms sitios del usuario final. El

    desarrollador no est presente. El cliente registra los problemas que

    se encuentran durante la prueba y los reporta al desarrollador.

    24

  • Pruebas de Software

    6. Prueba del Sistema

    El software incorpora otros elementos del sistema (hardware,

    personas, datos) y se lleva a cabo una serie de pruebas de integracin

    y validacin del sistema.

    Soluciones a potenciales problemas:

    a. Disear rutas de manejo de error

    b. Pruebas que simulen datos errneos

    c. Registrar resultados de las pruebas

    6. Participar en planificacin y diseo de pruebas

    25

  • Pruebas de Software

    6. Prueba del Sistema Pruebas de Recuperacin

    Prueba que forza al software a fallar en varias formas que verifica que

    la recuperacin se realice de manera adecuada.

    Se evala:

    a. El Reinicio

    b. Los mecanismos de puntos de verificacin

    c. La recuperacin de los datos

    d. La reanudacin de las correcciones

    e. Tiempo medio de reparacin

    26

  • Pruebas de Software

    6. Prueba del Sistema Pruebas de Seguridad

    Intenta verificar que los mecanismos de proteccin que se construyen

    en un sistema lo protegern de cualquier acceso o penetracin

    inapropiada.

    6. Prueba del Sistema Pruebas de Esfuerzo

    Ejecuta un sistema en forma que demanda recursos en cantidad,

    frecuencia o volumen anormales. Variacin Prueba de Sensibilidad.

    27

  • Pruebas de Software

    6. Prueba del Sistema Pruebas de Rendimiento

    Se disea para poner a prueba el rendimiento del software en tiempo

    de corrida, dentro del contexto de un sistema integrado. Ocurre a lo

    largo de todos los pasos del proceso de prueba.

    6. Prueba del Sistema Pruebas de Despliegue

    En ocasiones llamada prueba de configuracin, ejercita el software en

    cada entorno en el que debe operar.

    Examina todos los procedimientos de instalacin y el software de

    instalacin especializado.

    28