tutorial: pruebas funcionales y trabajo en equipo - ati · 2009. 2. 15. · 1 simo tci 2007 8-11-07...

25
1 SIMO TCI 2007 8-11-07 -1- Luis Fernández Sanz Tutorial: pruebas funcionales y trabajo en equipo Luis Fernández Sanz Universidad Europea de Madrid Coordinador grupo de Calidad de Software de ATI Tutorial sobre pruebas funcionales y trabajo en equipo Madrid, 8-11-07 © Luis Fernández, 2007 Nº 2 Objetivos Lógicamente limitados Algunos de ellos: Conciencia de los distintos aspectos y la situación de las pruebas en general Revisar definiciones y conceptos básicos Diseño básico funcional Conciencia de las especificaciones como clave Conciencia del trabajo en equipo Conocer las posibilidades de generar casos funcionales

Upload: others

Post on 08-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • 1

    SIMO TCI 20078-11-07 - 1 -

    Luis Fernández Sanz

    Tutorial: pruebas funcionales y trabajo en equipo

    Luis Fernández SanzUniversidad Europea de Madrid

    Coordinador grupo de Calidad de Software de ATI

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 2

    Objetivos

    • Lógicamente limitados

    • Algunos de ellos:– Conciencia de los distintos aspectos y la situación de

    las pruebas en general– Revisar definiciones y conceptos básicos– Diseño básico funcional– Conciencia de las especificaciones como clave– Conciencia del trabajo en equipo– Conocer las posibilidades de generar casos

    funcionales

  • 2

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 3

    Pruebas

    Si tienen interés en ahorrar costes,

    ENHORABUENA

    han elegido la mejor opción:

    LAS PRUEBAS DE SOFTWARE

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 4

    Pruebas de software

    • Gasto medio sobre proyecto de pruebas y depuración sobre costes de proyecto:– 33% (The Original Software Group): 130

    compañías– 35,1% (ISE-TR-06-03): 12 compañías– 33% de gasto y 85% de eficiencia de detección

    (C.Jones, 1998)• NIST 7007-011:

    – Coste de pruebas ineficientes USA: 21.200 M$– Reducción de costes potencial: 10.700 M$

    • Eficiencia:– 13,5 % eficientes, 19% automatizan

  • 3

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 5

    Sondeo sobre prácticas de pruebas

    Rellenar el cuestionario adjunto anónimo

    Aprovechar a meditar sobre nuestro proceso

    Obtener una autoevaluación comparativa

    Si me lo permiten, ampliaré el número de respuestas del sondeo

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 6

    Muestra

    • Muestra:– Total: 194

    • Período:– 1999 a 2007

    • Distribución sectorial– 15,79% banca y finanzas– 16,45% consultoría– 12,50% informática y telecomunicaciones– 5,92% industria y energía– 5,92% defensa– 9,87% variado: I+D, seguros, aeroespacial, etc.– 26,32% no declarado

    0

    10

    20

    30

    40

    50

    60

    1999 2000 2001 2002 2003 2004 2005 2006 2007 Web

    0

    10

    20

    30

    40

    50

    60

    1999 2000 2001 2002 2003 2004 2005 2006 2007 Web

    Ingeniero6%

    Consultor5%

    Director5%

    Jefe de desarrollo4%

    Resto6%

    Tester14%

    Analista12%

    Jefe de proyecto9%Ingeniero de software

    9%Gerente

    7%

    Experto en calidad5%

    No definido5%

    Analista programador4%

    Programador4%

    Resp.Calidad3%

    Testing manager2%

    Ingeniero6%

    Consultor5%

    Director5%

    Jefe de desarrollo4%

    Resto6%

    Tester14%

    Analista12%

    Jefe de proyecto9%Ingeniero de software

    9%Gerente

    7%

    Experto en calidad5%

    No definido5%

    Analista programador4%

    Programador4%

    Resp.Calidad3%

    Testing manager2%

  • 4

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 7

    Procesos de prueba

    • El cuestionario se basa en un modelo del QAI

    Proceso como arte: 15,13%Habilidad individual: 42,76%Proceso definido: 32,24%Organización avanzada: 21,71%Calidad de primera clase: 15,79%

    Proceso como arte: 15,13%Habilidad individual: 42,76%Proceso definido: 32,24%Organización avanzada: 21,71%Calidad de primera clase: 15,79%

    • Media de resp. positivas: 8,45– Varianza: 4,07

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 8

    Análisis de procesos

    23

    65

    49

    33

    24

    0

    10

    20

    30

    40

    50

    60

    70

    % nivel de arte % nivel de habilidad individual % nivel de proceso definido % nivel de organizaciónavanzada de pruebas

    % nivel de calidad de primeraclase

    23

    65

    49

    33

    24

    0

    10

    20

    30

    40

    50

    60

    70

    % nivel de arte % nivel de habilidad individual % nivel de proceso definido % nivel de organizaciónavanzada de pruebas

    % nivel de calidad de primeraclase

  • 5

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 9

    Evolución

    0,00%5,00%

    10,00%15,00%20,00%25,00%30,00%35,00%40,00%45,00%50,00%

    % nivel de arte % nivel dehabilidadindividual

    % nivel deprocesodefinido

    % nivel deorganizaciónavanzada de

    pruebas

    % nivel decalidad de

    primera clase

    1999-2005

    2006

    2007

    0,00%5,00%

    10,00%15,00%20,00%25,00%30,00%35,00%40,00%45,00%50,00%

    % nivel de arte % nivel dehabilidadindividual

    % nivel deprocesodefinido

    % nivel deorganizaciónavanzada de

    pruebas

    % nivel decalidad de

    primera clase

    1999-2005

    2006

    2007

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 10

    Preguntas detalladas

    Hasta 2007

    Hasta 2006

    Aspectos más implantados

    48,68%40%6. (¿Se valida que las especificaciones están correctas?)

    52,63%40%9. (¿Personal de pruebas informa de defectos al equipo de desarrollo y no a otros como dirección?)

    61,84%53,6%7. (¿Se valida que, además de bien implementadas, se cumplan las expectativas del cliente?)

  • 6

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 11

    Preguntas detalladas

    Hasta 2007

    Hasta 2006

    Aspectos menos implantados

    13,16%12,8%10. (¿El personal de pruebas identifica los riesgos de negocio antes de desarrollar el plan de pruebas?)

    12,50%18,37%20. ¿Supone el uso de herramientas automatizadas de prueba un componente significativo del proceso de pruebas?

    9,87%6,4%18. (¿Se usan métricas (p.ej., defectos/KLOC) para planear y evaluar los procesos de pruebas?)

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 12

    Formación

    • Profesionales recibieron formación específica de pruebas:– 26,97% (23,08% hasta 2006)– 6,74% no contesta

    • Estudio desde 2003:– Preguntas de conceptos básicos

    Preguntas Sin formación Con formación P1 35,59% 45,83%P2 25,42% 41,67%P3 28,81% 54,17%P4 10,17% 12,50%P5 20,34% 33,33%

    Preguntas Sin formación Con formación P1 35,59% 45,83%P2 25,42% 41,67%P3 28,81% 54,17%P4 10,17% 12,50%P5 20,34% 33,33%

  • 7

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 13

    Equilibrio

    Área constante

    PlazosDefectos

    Área constante

    Presupuesto

    Presupuesto

    Área constante

    PlazosDefectos

    Área constante

    Principio del triángulo (¿McConnell, 1997?)

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 14

    Huir del codificar y corregir

    Especificacióndel sistema(con suerte)

    Codificary corregir

    Entrega(con suerte)

  • 8

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 15

    • Es muy complejo centrarse sólo en el producto final

    • Controlar en todo el proceso de producción:– Aseguramiento de calidad

    • Control de productos• Control de procesos

    – IEEE 830:• Gestión de configuración, V&V (revisiones y

    pruebas), medición

    Evaluación de software (II)

    Desarrollo deSOFTWARE

    SOFTWARE

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 16

    Enfoque integral de aseguramiento de calidad de software

    Revisión deespecificación

    Pruebasdel software

    Inspecciónde código

    Revisión del diseño

    Confianza

    Diseño sistemático y planificado de acciones para proporcionar la confianza en que el producto se ajusta a los requisitos técnicos establecidos

    Software

    No existen pruebas o comprobaciones exhaustivas

    Rentabilidad económica

    Rentabilidad económica

  • 9

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 17

    Peter Neumann: Inside Risks

    http://www.csl.sri.com/users/neumann/illustrative.html

    • Barclays Bank casi transfiere 21.000 millones de euros a Grecia (1992)• Un granjero recibe un cheque de 4 millones de dólares del Gobierno de EE.UU en vez de

    uno de 31$ (1992)• Un defecto en la aplicación del Departamento de Vehículos a Motor de Alaska hace

    encarcelar a un conductor inocente (abril, 1985)• El nuevo sistema informático holandés de justicia ordena liberar a criminales y arrestar

    a inocentes: el sistema anterior se eliminó y ¡no hay backup posible! (1987)• Un defecto de software inutiliza las líneas de teléfono de Singapur (1995)• Un pequeño fallo en el software de la lotería de Maryland Lottery distribuye números

    ganadores erróneos (1997)• Un fallo en el software de sorteos de la lotería de Arizona: debe escoger 3 números

    aleatoriamente pero el 9 nunca sale (1994)

    Defecto de Ariane: 10 años y 7000 millones de $39 sg. después del lanzamiento, a una altura de 4,5 km, un mecanismo de autodestrucción acabó con el Ariane 5 y su carga de 4 caros y no asegurados satélites científicos. Cuando el ordenador intentó convertir un dato de velocidad lateral del cohete de 64 bits a 16 bits hubo error de overflow. Se había decidido que este número nunca sería tan grande porque no lo había sido con el Ariane 4. Pero el Ariane 5 era más rápido.Algo absurdo adicional: el cálculo contenía un defecto que tumbó el sistema de guía (que confundió al ordenador de a bordo, que forzó al cohete fuera de ruta) sólo servía para alinear el cohete antes del lanzamiento pero se decidió, mucho antes (en versiones anteriores de Ariane) que siguiera funcionando los primeros 40 segundos de vuelo.

    Defecto de Ariane: 10 años y 7000 millones de $39 sg. después del lanzamiento, a una altura de 4,5 km, un mecanismo de autodestrucción acabó con el Ariane 5 y su carga de 4 caros y no asegurados satélites científicos. Cuando el ordenador intentó convertir un dato de velocidad lateral del cohete de 64 bits a 16 bits hubo error de overflow. Se había decidido que este número nunca sería tan grande porque no lo había sido con el Ariane 4. Pero el Ariane 5 era más rápido.Algo absurdo adicional: el cálculo contenía un defecto que tumbó el sistema de guía (que confundió al ordenador de a bordo, que forzó al cohete fuera de ruta) sólo servía para alinear el cohete antes del lanzamiento pero se decidió, mucho antes (en versiones anteriores de Ariane) que siguiera funcionando los primeros 40 segundos de vuelo.

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 18

    Definiciones• Pruebas

    – Ejecución de software con datos controlados (casos) con el fin de descubrir defectos

    • Caso de prueba

    – Conjunto específico de entrada, procedimientos y salida esperada para una situación de operación

    • Salida esperada: especificada (¿diseñada?¿esperada por el usuario?)

    • Pruebas como una técnica más de V y V

    – Verificar: ¿construir correctamente el producto? Comprobar coherencia en el ciclo de vida

    – Validar ¿construir el producto correcto? Comprobar si satisface los requisitos

  • 10

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 19

    Definiciones

    • Definición y relación de error (error, mistake), defecto (fault, defect) y fallo (failure)

    2 + 2 = 5Error

    Defecto (calidad)

    ¡Xyx//???

    Sistema de gestión de aeropuerto

    Fallo (fiabilidad)

    S.Aproximación

    Accidente(seguridad)

    Error (discrepancia)

    Resultado esperado

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 20

    Filosofía

    • Objetivo– Descubrir defectos

    • Buen caso de prueba– Gran probabilidad de detectar defectos no

    encontrados antes• Éxito

    – Descubrir un defecto no detectado

    • Dijkstra: las pruebas no pueden asegurar la ausencia de defectos, sólo demostrar que (los que localizamos) existen en el software

  • 11

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 21

    Problemática

    • Actitud frecuente– Mito: buen trabajo = cero defectos– Defecto = culpa por mal trabajo– Descubrir defecto = fracaso

    • Actitud apropiada– Siempre existen defectos. Tasas tras entrega de

    software (defects/KLOC) – Causa de defecto no es siempre negligencia.

    Comunicación humana defectuosa– Descubrir defectos es un éxito (diagnóstico médico)

    • Evitamos problemas mayores• “Pay now or pay much more later”

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 22

    Ciclo completo de pruebas

    • Ciclo básico: planear, especificar/diseñar, ejecutar, comprobar

    DESARROLLODESARROLLO

    Información sobre proyectoInformación sobre software(ERS, diseño, etc)

    Planear pruebasPlanear pruebas

    Plan de pruebasDiseñar pruebasDiseñar pruebas

    Configuración depruebas (casos yprocedimientos)

    Configuración desoftware revisada

    Ejecutar pruebas

    Ejecutar pruebas

    Evaluar pruebasEvaluar pruebas

    Resultadosesperados

    Resultados

    DepuraciónDepuración

    Análisis deerrores

    Análisis deerrores

    Errores:histórico einformes de pruebas

    Correcciones

    Estadística deerrores

    Acciones preventivas(formación, mejora deprocesos, etc)

    Predicción de fiabilidad

  • 12

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 23

    Diseño de pruebas

    Entrada Salida

    Funciones

    FUNCIONAL(CAJA NEGRA)

    Entrada Salida

    ESTRUCTURAL(CAJA TRANSPARENTE)

    ALEATORIASalida

    EntradaaleatoriaUso

    Modelode uso

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 24

    Enfoque funcional

    • Centradas en dominio de entrada y de salida• Distintas técnicas:

    – Mejores resultados: combinando varias y complementando sus ventajas

    • Prueba exhaustiva impracticable– A+B (sumandos 2 dígitos y signo) ≅ 40.000

    casos– Quedan todas las entradas no válidas

    • Buscar subconjuntos de casos bien elegidos

  • 13

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 25

    Particiones de equivalencia• Caso bien elegido:

    – Invocar máximo número de entradas (mínimo nº de casos)

    – Partir dominio en clases equivalentes (probar un valor supone lo mismo que probar cualquier otro)

    • Etapas:

    1. Identificar clases de equivalencia (tabla de clases):

    • Válidas (entradas válidas)

    • No válidas (errores o entradas no válidas)

    2. Crear los casos de prueba (entrada y salida)

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 26

    Particiones de equivalencia

    • Cada condición o restricción de entrada divide el dominio en dos o más grupos

    • Sugerencias para clases:– Rango (“identificador entre 1 y 99”):

    • clase válida (1≤ id ≤ 99)• dos clases no válidas (id < 1, id > 99)

    – Número de valores (“de 1 a 3 beneficiarios”)• clase válida (1≤ nº benefic. ≤ 3)• dos clases no válidas (nº ben. < 1, nº ben. > 3)

    – Situación booleana (“primer carácter es letra”)• clase válida (car. = letra)• clase no válida (car. ≠ letra)

  • 14

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 27

    Particiones de equivalencia

    • Sugerencias para clases:– Conjunto de valores (“vehículo puede ser

    moto, coche, camión”) con distinto tratamiento (“tipo de seguro”):

    • una clase válida para cada uno– moto – coche– camión

    • una clase no válida (p.ej., “trailer”)– Regla genérica:

    • todos los elementos con mismo tratamiento• si no, dividir la clase en otras menores

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 28

    Particiones de equivalencia

    • Reglas para diseño de casos:

    – Asignar identificador a cada clase

    – Hasta incorporar todas las clases válidas:

    • crear un nuevo caso que cubra tantas como sea posible

    – Hasta incorporar todas las clases no válida:

    • crear un nuevo caso que cubra una y sólo una clase no válida

    Se trata de evitar que unos errores enmascaren a otros o invaliden otros controles similares

  • 15

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 29

    Ejemplo de formateo numérico

    • Prueba funcional:– Selección de valores límite – Tratamiento de combinaciones

    • Especificación de entrada y de salida esperada:– Entrada: 25 caracteres

    • >1 dígito, ≤ 14 enteros, ≤ 4 decimales• Combinaciones de signo, coma y puntos• Posibles espacios a dcha o izda (no interemedios)• Vale: “+0”, “1234,”, “-,012”, “12.345,6”

    – Salida: PIC S9(14)V9(4)• Nº enteros, Nº decimales, signo (T/F), coma (T/F),

    puntos (T/F)• Códigos de error

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 30

    Enfoque recomendado

    Diseño de caja negra:• Combinaciones de entrada• Siempre análisis de valores límite• Identificar clases válidas y no válidas y completar

    casos• Añadir casos por conjetura de errores

    Ejecutar casosControlar cobertura:– Manera de verificar que nos acercamos

    continuamente al objetivo y que lo alcanzamos– Ratio: Nº Objetos Probados/Nº Objetos totales a

    probarAñadir casos para lograr cobertura prevista

  • 16

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 31

    Enfoque recomendado

    Cobertura caja negra

    Cobertura

    Cobertura caja blanca sin herramienta

    Cobertura caja blanca con herramientaCasi 100%

    Volumen de casos

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 32

    Recomendaciones generales

    ☺ Cada caso debe definir en detalle la salida esperada

    ☺ Evitar que el autor pruebe su software☺ Inspeccionar con detalle la salida obtenida☺ Incluir tanto entradas no válidas e inesperadas como

    válidas y esperadas☺ Comprobar si el software:

    – No hace lo que debe hacer (fallo de funciones)– Hace lo que supone no debe hacer (efectos

    secundarios)

  • 17

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 33

    Recomendaciones generales

    ☺ Evitar utilizar casos desechables (control y economía)

    ☺ No planear suponiendo ausencia de defectos☺ Estudios:

    – Probabilidad de nuevos defectos es proporcional al número de defectos ya encontrados

    ☺ Pruebas:– Tarea creativa (no destructiva)– Desafío intelectual

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 34

    Visión práctica

    • El diseño de casos es totalmente dependiente de una buena especificación

    – Muchas veces, el trabajo de pruebas supone hacer el trabajo que no hicieron los analistas

    • En cuanto tenemos una buena especificación se pueden diseñar los casos de prueba

    – En especial, si contamos con casos de uso– No se diseña justo antes de probar

    • Eficiencia y limitación de recursos– Sin pruebas perfectas: sólo equilibrio riesgo-coste– Coste = 1/ Nº defectos

    • El trabajo en equipo puede proporcionar grandes mejoras de eficacia y de eficiencia

    • Como última fase, sufren los retrasos de fases previas– La planificación de pruebas debe contemplar plazos generosos

  • 18

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 35

    Buena especificación buenas pruebas funcionales (y no funcionales)

    • Una buena especificación facilita el diseño de pruebas– IEEE 830: no ambigua, completa, fácil de verificar,

    coherente, fácil de modificar, ordenación por prioridades y/o estabilidad, trazabilidad directa e inversa

    • El lenguaje natural es ambiguo:– Uso de modelos, técnicas, etc.

    • Reaprovechamiento del esfuerzo en modelos para generar pruebas (model driven testing)

    • Pensar en pruebas como ayuda al análisis y especificación– XP, etc: pruebas es parte de la especificación

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 36

    Especificaciones y trabajo en equipo

    Leer especificaciónLeer especificación

    Responder cuestionario

    individualmente

    Responder cuestionario

    individualmente

    Registrar respuestas individuales

    Registrar respuestas individuales

    Reunirse en grupos de 3 y consensuar

    respuestas

    Reunirse en grupos de 3 y consensuar

    respuestas

    Analizar qué ha ocurrido

    Analizar qué ha ocurrido

  • 19

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 37

    Casos de uso

    • Describen interacciones actor-sistema– Eficaces para vincular especificación y pruebas– Recogen combinaciones y opciones no válidas

    (flujos alternativos)• Generar casos de prueba:

    – Caminos/escenarios de ejecución de caso• Diagrama de interacción o de estados

    – Sobre cada escenario, diseño de caja negra:• Clases de equivalencia y límites• Tratamiento de combinaciones• Centrado en datos de E/S manejados en el caso

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 38

    Ejemplo de caso de uso

    M u e s t ra M e n u P r in c ip a l

    S e le c c io n a r E l im in a r R e s e rva

    M ue s t ra p a nt a l l a E l im in a r R e s e rva

    Id e n t i fic a c ió n O b ra

    O b ra i d e n t i fic a d a

    M u e s t ra d a t o s o b ra

    S I

    Id e n t i fic a c ió n u s u a rio

    U s u a rio id e n t i fic a d o

    M e n s a je o b ra n o id e n ti fic a d aN O

    M e n s ag e u s ua rio n o id e n t i fic a d o

    N O

    M u e s t ra d a t o s u s u a rio

    S I

    A c e p t a r e l im in a c ió n

    C A N C E L A R

    C o n fi rm a r e l im in a c ió n

    E l im in a r o t ra re s e rva

    N O

    C e rra r s e s ió n

    S I

    O p e ra c io n fa l l id a

    A C E P T A R

    N O

    M e n s a je d e e r ro r

    S I

    Bibliotecario Sistema

    1.- Muestra por pantalla el menú principal

    2.- Selecciona la opción Eliminar Reserva

    3.- Muestra la pantalla de Eliminar Reserva

    4.- Introduce el idObra

    5.- Muestra los datos de la obra y pide el DNI del usuario.

    6.- Introduce el DNI

    7.- Muestra los datos del usuario y pide confirmar la eliminación reserva

    8.- Pulsa ACEPTAR 9.- Muestra mensaje de confirmación y pregunta si desea eliminar otra reserva.

    10.- Pulsa NO 11.- Cierra sesión y muestra menú principal

  • 20

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 39

    Diseño de casos

    • Estudio previo:– Uso de casos de usos y diagramas de actividad– Estudiantes y profesionales– 36% más casos de prueba que sin especificaciones– Detección de más de 70% de casos:

    • Sin especificación: 17%• Con especificación: 65%

    – Expertos:• Detectan 50% más que estudiantes

    024

    68

    1012

    1416

    G1 G2 G3 ATABUS

    Nº d

    e C

    asos

    de

    Prub

    ea

    024

    68

    1012

    1416

    G1 G2 G3 ATABUS

    Nº d

    e C

    asos

    de

    Prub

    ea

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 40

    Pruebas en la práctica

    Pruebas = algo que se hace después de codificar¿Hay que hacer algo más que ejecutar?Diseño: un poco antes de probar

    ☺ Diseñar lo antes posible☺Ayuda a analizar y reflexionar sobre

    especificaciones☺Hay que mantener diseño pero es rentable☺Detectar problemas antes de crear sistema

    ☺ Incluso diseñar antes de especificar☺Un requisito más que cumplir

  • 21

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 41

    Naturaleza de las pruebas

    • Ejecución de código:– Entorno controlado/observado

    • Reproducibilidad de pruebas– Entrada

    • Muestra de la posible entrada (limitaciones)– Resultados correctos predichos

    • Comparación con resultados reales• Problemas de predicción o especificación

    – Salida analizada• Evidente aunque descuido por

    volumen/repetición

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 42

    Ejecución

    EJECUTAR PRUEBASEJECUTAR PRUEBAS

    COMPROBAR TERMINACIÓN

    COMPROBAR TERMINACIÓN

    ¿ALGÚNFALLO?

    ¿ALGÚNFALLO?

    DEPURARPRUEBAS

    DEPURARCÓDIGO

    ¿PRUEBASADICIONALES?¿PRUEBAS

    ADICIONALES?CONDICIONESANORMALESCONDICIONESANORMALES

    NO

    SÍ SÍ

    EVALUARRESULTADOSEVALUAR

    RESULTADOS

    PRUEBASADICIONALES

    (DEFECTODEL SOFTWARE)

    (DEFECTODE PRUEBAS)

    TERMINACIÓNANORMAL

    TERMINACIÓNNORMAL

    NO

    NO

    CRITERIOS DECOMPLECIÓN DELPLAN DE PRUEBAS

    Priorización de casosPriorización de casos

  • 22

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 43

    Análisis del diseño de casos

    • Programa sencillo de gestión de datos (DVD):– http://esp.uem.es/testRecord/pro– Especificación y registro de pruebas– Comparar con solución correcta– 71 participantes con datos fiables

    • Análisis de selección sobre 100 expertos:– Casos propuestos vs solución– Prioridad de casos y eficiencia– Opinión

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 44

    ¿Cómo se diseñan? (I)

    • Promedio: 42,36% de opciones• Casos repetidos (total ):

    – Inserción: 135% adicional– Consulta: 15,4%– Borrado: 13,8%

    • Resultados diferenciados:– Por grupos de participantes– Por resultados de diseño y prioridad de

    casos

  • 23

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 45

    ¿Cómo se diseñan? (II)

    Porcentaje de caminos ejercitados sobre el total de ATABUS 39% Media de Pruebas realizadas 23 Media de Caminos ejercitados 20 Media de Caminos ejercitados más de una vez 20 Media de Caminos con Defectos ejercitados 4 Media de Defectos detectados 2 Media de Falsos defectos detectados 8 Nº de Participantes que han encontrado más de la mitad de los defectos existentes 29 Nº de Participantes que no han encontrado ninguno de los defectos existentes 10

    75% 100% Nº de Participantes por porcentaje de caminos probados sobre el total posible 12 38 20 1 0

    0

    10

    20

    30

    40

    50

    60

    70

    80

    0 20 40 60 80 100

    % de Caminos Ejercitados

    Nº d

    e Pa

    rtici

    pant

    es

    0

    10

    20

    30

    40

    50

    60

    70

    80

    0 20 40 60 80 100

    % de Caminos Ejercitados

    Nº d

    e Pa

    rtici

    pant

    es

    0

    1

    2

    3

    4

    5

    6

    0 16 22 25 29 33 37 41 45 49 53 57 63 76

    % de Caminos Ejercitados

    de P

    artic

    ipan

    tes

    0

    1

    2

    3

    4

    5

    6

    0 16 22 25 29 33 37 41 45 49 53 57 63 76

    % de Caminos Ejercitados

    de P

    artic

    ipan

    tes

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 46

    ¿Cómo se diseñan? (III)

    Operación Director Precio Duración Nº

    Pruebas Prioridad

    Media

    Inserción Valido Válido Entero Dentro del rango 359 1.3

    Inserción De entre 2 y 29 caracteres Válido Válida 351 1.3

    Inserción Valido Válido Válida 342 1.3

    Inserción Valido Dentro del rango sin decimales Válida 282 1.3

    Consulta Ninguna coincidencia Válido Válida 228 1.4

    Borrado Ninguna coincidencia Válido Válida 203 1.4

    Inserción Valido Válido Válida 157 1.3

    Inserción Valido Con un carácter Indiferente 142 1.6

    Inserción Indiferente Indiferente Indiferente 142 1.2

    Inserción Indiferente Indiferente Indiferente 129 1.4

    Consulta Ninguna coincidencia Válido Válida 101 1

    0%10%20%30%40%50%60%70%80%90%

    100%

    0% 20% 40% 60% 80% 100%

    % de Repeticiones de Más Prioritarias

    % d

    e Pa

    rtic

    ipan

    tes

    0%10%20%30%40%50%60%70%80%90%

    100%

    0% 20% 40% 60% 80% 100%

    % de Repeticiones de Más Prioritarias

    % d

    e Pa

    rtic

    ipan

    tes

  • 24

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 47

    Conclusiones de diseño

    • De 71 testers:– 1 probó > 75% de caminos totales– 56% alcanzan

  • 25

    SIMO TCI 20078-11-07 - 49 -

    Luis Fernández Sanz

    Gracias por su atención

    ¿preguntas?

    Contacto: [email protected]

    Recomiendo:http://www.ati.es/gtcalidadsofthttp://www.ati.es/reicishttp://esp.uem.es/Testrecord/prohttp://in2test.lsi.uniovi.es/repris/http://esp.uem.es/rentic

    Tutorial sobre pruebas funcionales y trabajo en equipoMadrid, 8-11-07 © Luis Fernández, 2007 Nº 50

    ¿Utiliza casos de uso para completar la especificación del sistema?

    Sí (53.13%) No (28.13%) Depende (18.75%)

    ¿Utiliza algún diagrama UML para especificar o diseñar el sistema?

    Sí (46.88%) No (34.38%) Depende (18.75%)

    ¿Utiliza algún diagrama UML para diseñar las Pruebas del sistema?

    Sí (12.5%) No (62.5%) Depende (25%)

    ¿Utiliza alguna herramienta o método para diseñar las pruebas del sistema?

    Herramienta (6.25%)

    Método (31.25%)

    Ambos (9.38%)

    Ninguno (53.13%)

    Resultados (IV)

    Utilidad del uso del"Algoritmo Automático" para el diseño y ejecución de pruebas

    Nada útil (3.33%)

    Poco Útil (10%)

    Útil (30%)

    Muy Útil (46.67%)

    Imprescindible (10%)

    ¿Sería rentable en su organización?

    Sí (76%) No (24%)

    En la simulación, los casos generados automáticamente suponen una cobertura del código de

    Menos del 20% (16%)

    Entre 20 y 50% (4%)

    Entre 50 y 80% (52%)

    Mas del 80% (28%)

    En el experimento, los casos generados automáticamente, sobre el total posible, cubren

    Menos del 20% (8%)

    Entre 20 y 50% (8%)

    Entre 50 y 80% (44%)

    Mas del 80% (40%)