pruebas unitarias testing

Upload: crizthian-rojaz

Post on 21-Feb-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Pruebas unitarias Testing

    1/37

    Testing de Software

  • 7/24/2019 Pruebas unitarias Testing

    2/37

    Cuarta Unidad:TIPOS DE TESTING

  • 7/24/2019 Pruebas unitarias Testing

    3/37

    4.1 Pruebas Unitarias

  • 7/24/2019 Pruebas unitarias Testing

    4/37

    Comprender el significado de las pruebas unitarias

    Distinguir pruebas de caja negra vs. pruebas de caja blanca

    Lograr cobertura de la prueba adecuada

    Aprender un estndar de prueba

    Revise un plan de prueba de unidad

  • 7/24/2019 Pruebas unitarias Testing

    5/37

    Objetivo de la prueba: maximizar el nmero y gravedad de los defectos encontradogastado

    as: primera prueba

    Lmites de la prueba: Prueba slo puede determinar la presencia de defectos, no su

    utilizar las pruebas de correccin para establecer "ausencia"

  • 7/24/2019 Pruebas unitarias Testing

    6/37

    Funciones

    Modulus

    Combinacin de Mdulos

    2. InPruebas deIntegracintests

    3.

    Pruebas

    delSistema

    1.PruebasUnitarias

  • 7/24/2019 Pruebas unitarias Testing

    7/37

    M

    Combinacimtodos de

    Paque

    Incluye use

    Funcin

    Mdulo

    Module combination

    2. Pruebas deIntegracin

    3.

    Pruebas de

    Sistema

    1.Pruebas Unitarias

  • 7/24/2019 Pruebas unitarias Testing

    8/37

    Elaboration

    Unified Process

    Inception Construction Transition

    Requirements

    Analysis

    Design

    Implemen-tation

    Test

    Jacobson et al:

    USDP

    Prelim.

    iterations

    Iter.

    #1

    Iter.

    #n

    Iter.

    #n+1

    Iter.

    #m

    Iter.

    #m+1

    Ite

    #..

    b

  • 7/24/2019 Pruebas unitarias Testing

    9/37

    Elaboration

    Unified Process

    Inception Construction Transiti

    Requirements

    Analysis

    Design

    Implemen-tation

    Test

    Jacobson et a

    USDP

    Prelim.

    iterations

    Iter.

    #1

    Iter.

    #n

    Iter.

    #n+1

    Iter.

    #m

    Iter.

    #m+1.. ..

    Unit Tests Integration tests ... System

  • 7/24/2019 Pruebas unitarias Testing

    10/37

    Hoja de ruta para pruebas unitarias

    1. Plan de Pruebas

    Unitarias

    Requirimirntos

    Resultadados de

    Test

    Detalles de diseo

    . . . .

  • 7/24/2019 Pruebas unitarias Testing

    11/37

    Hoja de ruta para pruebas unitarias

    1. Plan forunit testing

    -- see section SSS

    Requerimientos

    Unit test plan

    2. Adquirir

    Conjunto

    de prueba

    -- see section SSS

    Productos de

    Pruebas previas

    3. Ejecutar

    Prueba unitria

    -- see section SSS

    Conjunto de Pruebas

    Resul

    de Pr

    Codigo bajo

    Prueba

    Detalles de diseo

    Identifiquepuntos con

  • 7/24/2019 Pruebas unitarias Testing

    12/37

    Black-, Gray-,& White-box Testing

    Black box requerimientos*

    salicom

    reque

    Entradasdeterminadas

    por...

    Resu

    * De fase previa

  • 7/24/2019 Pruebas unitarias Testing

    13/37

    Black box requerimientos

    salida recomparad

    cosalida requerid

    White box

    Gray box requerimientos &

    Elementos clave de diseo

    Entrada

    determinada

    por..

    Resultados

    elementos de

    diseo

    Confirmacinde comportamiento

    esperado

    En cuanto a lapruebas de caja

    negra y blanco

    Black-, Gray-,& White-box Testing

  • 7/24/2019 Pruebas unitarias Testing

    14/37

    Posibilidades de Prueba de entradade Test Input

    interest ra

    25%

    principal

    $100 $100M

    inflation

    estimate

    1%

    20%

    Infinitamentemuchos valores

    legales:

    elegir unamuestra finita.

    Infinitamente

    muchosvaloresilegales:

    elegirunamuestrafinita.

  • 7/24/2019 Pruebas unitarias Testing

    15/37

    Prueba de particionamiento de entrLmites

    tasa de

    interes0%

    25%

    principal

    $100 $100M

    inflacin

    estimada

    lmites

    1%

    20%

    particiones deequivalencia

    Una

    regin

    ilegal

    Rango de entradas vlidas

  • 7/24/2019 Pruebas unitarias Testing

    16/37

    Rangos de prueba: Casos elementale1. dentro del rango

    2. en los lmites

    Del rango

    3. fuera del rango

    ("Ilegal")

    range

  • 7/24/2019 Pruebas unitarias Testing

    17/37

    Cubrir cada declaracin no es suficie(Myers)

    u>1 and

    v==0

    x = x/u

    u==2 or

    x>0

    ++x

    No

    Yes

    No

    Yes

    ProgramaRequerido

  • 7/24/2019 Pruebas unitarias Testing

    18/37

    u>1 and

    v==0

    x = x/u

    u==2 or

    x>0

    ++x

    No

    Yes

    Cdigo implementado en

    diagrama de flujo

    if( (u>1) && (v==0) ) (1)

    x = x/u;

    if( (u==2) || (x>3) )

    ++x;

    u=2, v=0 and x=3

    ejecuta cada linea (1) - (4)

    dando la salida correcta x=

    Sin embargo, la lnea (3) esNo

    Yes

    Programa

    Requerido

    Cubrir cada declaracin no es suficie(Myers)

  • 7/24/2019 Pruebas unitarias Testing

    19/37

    Caminos de comprobacin

    Parameter &

    settings make

    sense?

    Parameter

    name toolong?

    N

    YN

    Set _name to

    defaultName"

    Y

    Truncate

    name

    Set _name

    to parameter

  • 7/24/2019 Pruebas unitarias Testing

    20/37

    Caminos de comprobacin

    Parmetros y

    ajustes tienen

    sentido?

    Parametro

    nombre

    demasiado

    largo?

    N

    YN

    Cobertura

    Decisin

    Set _name para

    defaultName"

    Y

    Trunca

    nombre

    Set _name

    al parmetro

  • 7/24/2019 Pruebas unitarias Testing

    21/37

    Pruebas basadas en Assert para max1.2

    public static boolean checkAssertion

    ( int loopSoFarP, int indexOfMaxP, double[] arrayP )

    {

    // Estableci por primera vez siguientes booleanos :

    boolean b1M = true; / * Significa valores de arrayP [] son inferio

    arrayP [indexOfMaxP] para todos los ndices

  • 7/24/2019 Pruebas unitarias Testing

    22/37

    public static boolean checkAssertion

    ( int loopSoFarP, int indexOfMaxP, double[] arrayP )

    {

    // Primero establecidas siguientes booleanos:

    boolean b1M = true; /* significa valores de arrayP [] son inferior

    arrayP [indexOfMaxP] para todos los ndices

  • 7/24/2019 Pruebas unitarias Testing

    23/37

    if

    ( // Loop has progressed up to index loopSoFarP

    ( 0

  • 7/24/2019 Pruebas unitarias Testing

    24/37

    /** Finds index & value of first of the largest array elements ... */public static void main( String[] mainArg ){

    double[] a = getArray();

    // Let I be the assertion (see section tbd of chapter 7) ... Estab

    int i = 0;int k = 0;boolean validityM = checkAssertion( i, k, a ); // assertion tes

    // Following preserves I . terminates . (section tbd of chaptewhile( i != a.length - 1 ){ ++i;

    if( a[i] > a[k] )k = i;validityM = validityM && checkAssertion( i, k, a ); // assertion tes

    }

    System.out.println( "First max value is " + a[k] + " at index " + k );System.out.println( "Validity: " + validityM ); // assertion re

    }

    La aplicacin de las pruas

  • 7/24/2019 Pruebas unitarias Testing

    25/37

    Planificacin de las pruebas unitaria1. Decidir sobre la filosofa de las pruebas unitarias

    ingeniero individual responsable (comn)?

    revisado por los dems? diseado y realizado por los dems?

    2. Decida qu / dnde / cmo documentar

    conjunto de documentos personales individuales (comn)?

    cmo / cundo incorporar a otros tipos de pruebas?

    incorporar en los documentos formales?

    utilizar herramientas / utilidades de prueba?

    3. Determinar el alcance de las pruebas unitarias (es decir, con antelacin).

    hacer no slo "de prueba hasta que el tiempo expira"

    priorizar, por lo que las pruebas importantes definitivamente realizan

    4. Decidir cmo y dnde obtener la entrada de prueba

    ver seccin por determinar.

    5. Estimar los recursos necesarios

    utilizar datos histricos si estn disponibles

  • 7/24/2019 Pruebas unitarias Testing

    26/37

    Realizar Prueba Mtodo (Humphrey1. Verifique el funcionamiento en valores de los parmetros normales (una prueba

    sobre la base de los requisitos de la unidad)

    2. Verifique la operacin en valores de los parmetros de lmite (caja negra)

    3. Verifique el funcionamiento fuera de los valores de parmetros (caja negra)

    4. Asegrese de que todas las instrucciones se ejecutan (cobertura de declaracin)

    5. Revise todos los caminos, incluyendo ambos lados de todas las ramas (cobertura

    6. Compruebe el uso de todos los llamados objetos

    7. Verificar el manejo de todas las estructuras de datos

    8. Verifique el manejo de todos los archivos

  • 7/24/2019 Pruebas unitarias Testing

    27/37

    Realizar Prueba Mtodo (Humphrey9. Compruebe la terminacin normal de todos los bucles

    (parte de una prueba de correccin)

    10. Compruebe la terminacin anormal de todos los bucles

    11. Compruebe la terminacin normal de todas las recurrencias

    12. Compruebe la terminacin anormal de todos recursiones

    13. Verificar el manejo de todas las condiciones de error

    14. Compruebe temporizacin y sincronizacin

    15. Verifique que todas las dependencias de hardware

  • 7/24/2019 Pruebas unitarias Testing

    28/37

    (1) D-Requirements3.2.EC.1.2 Cualidades de caracteresEncuentro

    Cada personaje del juego tiene el mismoconjunto de cualidades. Cada cualidaddebe ser un nmero de punto flotante nonegativo con al menos un decimal deprecisin. . .

    (2) Design GameCharacterrequerimientosUna clase abstracta con nombre deatributo ...

    . . . .

  • 7/24/2019 Pruebas unitarias Testing

    29/37

    Relacionar Pruebas paraRequisitos y Diseo

    (1) D-Requirements3.2.EC.1.2 Cualidades de caracteres

    Encuentro

    Cada personaje del juego tiene el mismo

    conjunto de cualidades. Cada cualidad

    debe ser un nmero de punto flotante no

    negativo con al menos un decimal de

    precisin. . . . Characters

    GameCharacter

    EncounterCharacter

    adjustQuality()

    (2) Diseo GameCharacteRequerimientos

    Una clase abstracta con nombre de a

    EncounterCharacters

    ... Contra este requerimiento

    Test este metodo ...

    Probar esta clase ...

    ... contra este requisito

    Aplicado a ...

  • 7/24/2019 Pruebas unitarias Testing

    30/37

    Unit test

    p

    Concentracin A

    Results in a

    zero value?

    1. Dentro del

    Rango

    No:

    Test 1.1Test 1.1.1

    Yes:

    Test 1.2Test 1.2.1

    La particin de la

    gama de pruebas

    unitarias 1 de 2Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

    Aplicado para ...

  • 7/24/2019 Pruebas unitarias Testing

    31/37

    Unit test

    Concentracin ag

    Results in a

    zero value?

    2. Fuera de

    Rango

    No:

    Test 2.1Test 2.1.1

    Yes:

    Test 2.2Test 2.2.1

    La particin de la

    gama de pruebas

    unitarias 2 de 2Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

    d l l b

  • 7/24/2019 Pruebas unitarias Testing

    32/37

    Una manera de realizar las pruebasUnitarias1. Mtodos de entrenamiento en combinacin 2-5, por lo general

    Elegir secuencias ms comunes primero

    incluir secuencias que puedan causar defectos

    Requiere salidas de computacin en los valores de los atributos resultantes

    2. Enfocado en pruebas unitarias en cada atributo inicializar, a continuacin, ejecutar secuencias de mtodo que la afectan

    3. Verifique que cada invariante de clase no se ha modificado Verifique que el invariante es cierto con los valores iniciales

    Ejecutar una secuencia (por ejemplo, el mismo que en 1.)

    Verificar que el invariante sigue siendo verdad

    4. Verifique que los objetos de transicin entre los estados esperados Planificar la secuencia de eventos / transicin de estado

    Configurar el objeto en el estado inicial estableciendo las variables

    Proporcionar primer evento y consultar ocurri esa transicin. etctera

    S i d E d P b d

  • 7/24/2019 Pruebas unitarias Testing

    33/37

    Secuencia de Encuentro de Prueba dtransicin de estados 1 de 2

    Esperando

    Preparacin test step 1

    Verifique que el juego est

    inicialmente en estado de

    Preparacin (mediante la

    comprobacin de la

    pertenencia a una clase de

    gameStateI)

    Jugadordescarta

    mencualidades

  • 7/24/2019 Pruebas unitarias Testing

    34/37

    Waiting

    Preparacin

    paso de la ppaso de la prueba 2

    paso de la prueba 3

    Descartar el men de calidad,

    y verificar que el juego est

    en estado de espera.

    Mueva el personaje del

    jugador a un rea

    adyacente, y verificar que

    el juego todava est en

    estado de espera.

    Jugadordescarta

    mencualidades

    Mover a lazona

    adyacente

    P b d S i d t i i d

  • 7/24/2019 Pruebas unitarias Testing

    35/37

    Prueba de Secuencia de transicin destados de Encuentro 1 de 2

    Waiting

    Preparing test step test step 2

    test step 3

    Verifique que el juego e

    inicialmente en estado

    Preparacin (mediante

    comprobacin de la pe

    una clase de gameState

    Descartar el men de calidad,

    y verificar que el juego est en

    estado de espera.

    Mueva el personaje del

    jugador a un rea

    adyacente, y verificar

    que el juego todava

    est en estado de

    espera.

    Jugadordescarta

    mencualidades

    Mover a lazona

    adyacente

    P b E t d T i i l t

  • 7/24/2019 Pruebas unitarias Testing

    36/37

    Prueba Estado-Transicin completarencuentro

    Playerdescarta

    Cualidades

    Del men

    Personaje entraen zona

    habitada por unrival

    Mover a lazona

    adyacente

    Espera

    Preparacin

    Engaging

    12

    3

    4

    5

    informes

    Jugadordescarta

    meninforme

    encuentro

    Encuentrocompletado

    6

  • 7/24/2019 Pruebas unitarias Testing

    37/37

    ResumenPruebas Unitarias = "piezas"

    Otras pruebas = " assemblies "

    Caja Negra: solo entrada / salida

    Caja blanca: verifica el procesamiento

    Varias maneras

    Asegurar la integridad

    La planificacin de prueba temprano/ mejor Ayuda a aclarar los requisitos