Beruflich Dokumente
Kultur Dokumente
Agenda
DÍA 1:
Introducción a las problemáticas de ingeniería de software
El costo de la “no calidad”
Control y Aseguramiento de Calidad
Metodología de Control de Calidad
• Etapas y entregables
• Tipos de Pruebas: ¿Qué pruebas necesito para mi proyecto?
• ¿Cómo estimar las pruebas?
• ¿Qué debo tener en cuenta a la hora de planificar las pruebas?
• ¿Cómo tomar el control de mi proyecto, a través del área de test?
• ¿Cómo definir pruebas y reportar defectos en forma correcta?
• Diseño de casos de prueba – Técnicas de derivación
DÍA 2:
Ejercitación diseño de casos de Prueba – Ejemplos Claro
1
02/09/2016
Introducción
Algunos conceptos …
2
02/09/2016
¿Qué es el Testing?
humana.
3
02/09/2016
Principios
4
02/09/2016
Definición de
Requerimientos
El Problema
En los requerimientos
5
02/09/2016
El Problema
En etapa de arquitectura / diseño
El Problema
En etapa de construcción
6
02/09/2016
Requerimientos
Arquitectura ArquitecturaTesteo
Construcción
Pre Testeo Pre
Requerimientos
y Diseño de Sistemas Construcción
Producción
y Diseño de Sistemas Producción
60% 56%
Costo de
40%
corregir
35%
60% 56% 27%
25%
20%
7% 10%
35%
27%
25%
20% Etapa en la que Req.
se originan 7% 10%
Arq. Mantenimiento
Dis. Construcción
Diseño
Cons. Etapa en la que
Arquitectura
se corrigen
Requerimiento
— Fuente : Roger Pressman
— Fuente : Steve McConnell
— Fuente : Dick Bender
13
Estadísticas
7
02/09/2016
60
55
50
45
40
35
30
25
20
15
10
5
0
Código Otros Diseño Reqs.
100
90
80
70
60
50
40
30
20
10
0
Reqs. Diseño Código Test Producción
8
02/09/2016
80
60
40
20
0
0% 0% 0% 10% 80% 10%
9
02/09/2016
El Impacto en el negocio
Imagen:
Un producto defectuoso daña la reputación de la marca o empresa
• Riesgo patrimonial:
Productividad:
Costos adicionales para la corrección de fallos
Elcosto de no la calidad.avi
10
02/09/2016
Algunas definiciones...
• Política de calidad:
– Intención y dirección de la organización respecto de la calidad, formalmente
expresados por la alta gerencia (ISO 8402).
• Control de calidad:
– Las actividades y técnicas operativas usadas para cumplir con los requerimientos
de calidad (ISO 8402).
• Aseguramiento de la calidad:
– Todas aquellas acciones planeadas y sistemáticas necesarias para proveer una
adecuada confianza de que un producto o servicio satisfará determinados
requerimientos de calidad (ISO 8402).
22
11
02/09/2016
Calidad de Software
Control de calidad
Pruebas
Revisiones (inspecciones, walktroughs, etc.)
Aseguramiento de la calidad
Auditorías
Revisiones
Análisis de datos del proceso de desarrollo
Etc
12
02/09/2016
Movimiento de Calidad
Departamento de Defensa (TQM)
ISO 9000
SW-CMM/CMMI
TMMI
Atributos de
Calidad del
Software
Funcionalidad Eficiencia
Completa
Tiempo
Segura
Recursos
Confiabilidad Portabilidad
Madurez
Instalable
Tolerancia a fallas
Partes
Recuperable
reemplazables
Usabilidad Mantenibilidad
Operable Generalizable
Fácil de comprender Fácil de probar
13
02/09/2016
Perspectiva histórica
¿Qué es el test?
Un manager define el test como el proceso que le asegura:
14
02/09/2016
“Cazar” defectos
Agregar valor
• El software siempre se prueba. La prueba nunca termina, cuando deja de probar el equipo de
desarrollo, lo empieza a probar el usuario.
• Un buen caso de prueba es el que demuestra que el programa no anda. Si todo anda bien, hay que
sospechar. O la cobertura de las pruebas no es buena o no se utilizó el set de datos apropiado.
• Se debe probar para condiciones válidas e inválidas. Debemos simular situaciones esperadas y forzar
las inesperadas.
• Se deben controlar todos los resultados de lo probado. Si no inspeccionamos ni verificamos
funcionamiento e integridad no podemos determinar si funciona bien o mal. Se debe controlar el
resultado inmediato y el indirecto (en otro aplicativo).
• No se debe suponer, hay que probar. No hay que inferir funcionamiento, hay que corroborar.
• Lo que no probamos es lo que seguramente va a fallar. No alcanza con probar que el proceso
funciona bien, hay que probar las excepciones. Cuanto mejor armemos los casos de prueba menor
será la probabilidad de que el proceso falle.
30
15
02/09/2016
31
• Planificar las pruebas, teniendo en cuenta los tipos de prueba a realizar (unitarias,
ensamblaje, sistemas, integración, técnicas, aceptación, regresiones) y los ciclos (mínimo 3
intercalando tiempos de espera de arreglos)
• Alcance de las pruebas en función de los requerimientos y de los riesgos asociados a fallas
del sistema: funciones y procesos críticos, impacto operativo, comercial, regulatorio, de
control interno, de imagen, …
• Definición de recursos, hardware y software necesarios para las pruebas
• Prever la coordinación y comunicación entre las distintas partes involucradas.
• Clasificación de defectos por severidad asociada a riesgo.
• Criterios de Fin de Pruebas
32
16
02/09/2016
33
• Teniendo en cuenta las entradas y las salidas y los casos a probar, se debe armar un
escenario lo más estable y parecido a PRODUCCION, pues es un riesgo probar en un
ambiente con condiciones diferentes. Algunos de los puntos a tener en cuenta:
– Los archivos y tablas de entrada: propias y de otros aplicativos, también las de uso
general, necesarios para que el programa ejecute.
– Determinación del ambiente en que se llevará a cabo la prueba: desarrollo, test,
integración.
– Perfiles de seguridad para el caso de entorno on-line
– Resguardo de información inicial y generada
34
17
02/09/2016
Desarrollo de
Software
Producción
Ambiente de Desarrollo
Ambiente de Producción
Ambiente de Pruebas
35
36
18
02/09/2016
Cierre
37
Cierre
• Criterios de aceptación:
– Explícitos
– Formalizados
– Consensuados
• – Ejemplo:
La aprobación de la versión de software testeada, implicará satisfacer los siguientes criterios
respectos de defectos activos:
– Bloqueantes: 0.00 % de defectos
– Alta: 2.50 % de defectos
– Media: 5.00 % de defectos
– Baja: 10.00 % de defectos
38
19
02/09/2016
Planificación estándar
39
En etapa temprana
En etapa de análisis
Como control
No olvidar estimar la
obtención/preparación del
Comparación con otros proyectos similares
ambiente y datos de prueba
40
20
02/09/2016
41
Verificación y Validación
21
02/09/2016
Modelo V&V
se valida en... Test de
Requerimientos
Aceptación
Test
Codificación
Unitario
Se valida en…
Definiciones
Verificación
¿Estamos construyendo el producto correctamente?
Algunos definen esta etapa como la del “test humano”, ya que consiste en trabajar
sobre documentos “en papel”, trabajo de escritorio
Validación
¿Estamos contruyendo el producto correcto?
22
02/09/2016
23
02/09/2016
Objetivos
Especificación de interfases
Etapa de Diseño Definiciones entre cohesión y acoplamiento
Áreas de riesgo ...
Etapa de Requerimientos
24
02/09/2016
Etapa de Requerimientos
Etapa de Requerimientos
25
02/09/2016
Etapa de Requerimientos
¿Están definidos los criterios de aceptación que se controlarán durante la última etapa
de test?
Etapa de Requerimientos
26
02/09/2016
Etapa de Requerimientos
Etapa de Requerimientos
27
02/09/2016
Etapa de Diseño
Etapa de Codificación
28
02/09/2016
Etapa de Codificación
(*)
29
02/09/2016
30
02/09/2016
Prueba de Software
Modelo V&V
se valida en... Test de
Requerimientos
Aceptación
Test
Codificación
Unitario
se valida en...
62
31
02/09/2016
63
64
32
02/09/2016
Prueba de Software
Principios
33
02/09/2016
Clasificación
Las pruebas pueden clasificarse de acuerdo a:
• Alcance
• Propósito
• Técnicas empleadas
34
02/09/2016
Clasificación
Según el alcance
Prueba unitaria
Prueba de integración
Prueba de aceptación
Cumplimiento de
Prueba de Verifica el funcionamiento del
requerimientos funcionales y Testers.
Sistema sistema como un todo
no funcionales.
35
02/09/2016
Clasificación
Según su propósito
Regresión Volumen
Funcional Performance o Rendimiento
Humo Benchmark
Integridad Estrés o Resistencia
Configuración Recuperación
Instalación Carga
Seguridad Facilidad de Uso
Clasificación
Según las técnicas
De Caja Blanca
De Caja Negra
36
02/09/2016
Caja Negra:
Tiene como propósito validar si el software cumple o no con los
requerimientos, independientemente de su estructura interna.
37
02/09/2016
Caja Blanca
Ignora la relación entre entradas y salidas
Focaliza en la estructura interna
Excelente para encontrar problemas en el código
Caja Negra
Observa la relación entre entradas y salidas
Ignora la estructura interna
Excelente para algunos tipos de test:
Funcional
Facilidad de uso
38
02/09/2016
complementa
Errores de interfaz
datos
39
02/09/2016
Introducción
¿Cuáles son los retos actuales que encontramos en los Proyectos de Testing
normalmente?
El tiempo no alcanza para testear apropiadamente
Demasiadas combinaciones de input para probar
Dificultades para determinar el Resultado Esperado de cada test
Requerimientos inexistentes, documentos pobres o cambiantes
Falta de entrenamiento en técnicas de testing
Management que no ha incorporado la cultura Control de Calidad y por
lo tanto el proceso de testing
Siempre la variable de ajuste es el test
40
02/09/2016
Tengo que
No puedo probar elegir un
un programa en subconjunto
todos sus inputs de inputs
significativos
Técnicas de Derivación
Clases de equivalencias
Tabla de decisión
Vectores octogonales
Definición jerárquica
41
02/09/2016
83
84
42
02/09/2016
85
CLASES DE EQUIVALENCIA
86
43
02/09/2016
Clases de Equivalencia
• Técnica que se utiliza para reducir el número de casos de prueba a una cantidad
“manejable”, manteniendo un grado de cobertura razonablemente bueno.
87
88
44
02/09/2016
89
90
45
02/09/2016
• 3. Escribir un nuevo casos de test que cubra una y sólo una de las clases de
equivalencia inválidas hasta cubrir todas las clases de equivalencias inválidas
91
Ejemplo
• Tenemos una empresa que otorga préstamos hipotecarios para personas cuyos
sueldos oscilan entre los 1.000 y los 83.333 pesos por mes (punto separador de
miles; coma separadora de decimales); si gana menos de 1.000 pesos no califica; si
gana más de 83.333 pesos mensuales, no necesita el préstamo).
• Además, la empresa sólo otorga préstamos a personas; no así a corporaciones,
sociedades u cualquier otra entidad legal.
• Por otra parte, sólo se otorgan préstamos para adquirir condominios, casa de
campo o casas de familia. No se realizará préstamos para la adquisición de dúplex,
casa rodantes, o cualquier otro tipo de propiedad.
Por último, podrán adquirirse con un sólo préstamo entre 1 a 5 casas (inclusive).
92
46
02/09/2016
Ejemplo (cont..)
93
94
47
02/09/2016
95
96
48
02/09/2016
97
Ejemplo
98
49
02/09/2016
Test de robustez
99
Tabla de decisión
100
50
02/09/2016
Tabla de Decisión
• Se usan para documentar reglas del negocio que el sistema debe implementar.
Sirven como guía para diseñar casos de test.
• Las condiciones representan inputs. Las acciones son los procesos que deben
ejecutarse dependiendo de la combinación de condiciones presentes.
• Cada regla define una combinación única de condiciones que dispara las acciones
asociadas con dicha regla.
101
Acciones
Acción 1
Acción 2
Acción …
102
51
02/09/2016
– Si las condiciones son binarias se escribe un caso por cada regla o columna
(las condiciones son las entradas y las acciones las salidas).
– Si las condiciones son rangos de valores, crear casos para los bordes del rango
(complemento con Análisis de Bordes).
103
Ejemplo
Una empresa aseguradora de automóviles brinda descuentos a aquellos conductores
que estén casados y/o son buenos estudiantes. El descuento es variable.
Casado? Si Si No No
Buen estudiante? Si No Si No
Acción
Descuento ($) 60 25 50 0
104
52
02/09/2016
Definición Jerárquica
105
Definición Jerárquica
106
53
02/09/2016
Definición Jerárquica
Un ejemplo:
Alta de cuenta
Pesos Dólares
107
Comentarios
54
02/09/2016
Otras Técnicas
Conjetura de Errores
Consiste en la intuición sobre dónde y cómo los errores tienen alta probabilidad de
ocurrir.
No existe una metodología particular para aplicar esta técnica pero la idea básica es
enumerar una lista de posibles errores potenciales o situaciones y escribir casos
basados en la lista.
Es una técnica complementaria especialmente útil en sistemas:
Hecho “a las apuradas”.
Modificado por varias personas.
Con estructuras anidadas, condiciones compuestas.
Complejos accesos a archivos.
Programa “collage” formado por partes de otros programas.
55
02/09/2016
Exception Testing
Se identifican todos los mensajes de error y los procesos de manejos de
excepciones, incluyendo las condiciones que los disparan. Se escribe un caso de
test para cada condición de error.
Ejemplo:
Mensaje de error:
• “Por favor seleccione un registro”.
• “No tiene permiso para eliminar el registro”.
• “Registro duplicado”.
Casos:
• Baja. Presionar el botón eliminar sin haber seleccionado un registro.
• Baja. Eliminar un registro con un usuario sin permiso de eliminación.
• Alta. Dar de alta un registro cuya clave primaria ya existe en la base.
56
02/09/2016
Conclusiones
57
02/09/2016
una hora?
un día?
58
02/09/2016
Lo habitual
Cuándo Usarlas
59
02/09/2016
Ambientes
Herramientas
Administración de la Configuración
60
02/09/2016
Ambiente de Prueba
Herramientas
Administración de
requerimientos
Proyectos de Test
planes de prueba
Integrales
casos de prueba y defectos
informes de avance, etc
61
02/09/2016
Metodología
Preparación
Reporte de
Defectos e
Informe de Avance
Estimación y Planificación Casos de Pruebas
Plan de
Inducción
Pruebas
Documentación
62
02/09/2016
Entregables
Guía de Pruebas
Preparación Casos de prueba documentados
Informes de avance
Reportes de defectos
Ejecución
Informes de avance
Plan de Pruebas
Introducción
Requerimientos de la Prueba
Estrategia de Prueba
Tipos de Prueba
Eventos de Prueba
Herramientas a emplear
Recursos
Personal
Documentos a entregar
63
02/09/2016
Planificación
Usuarios
clave
Plan
de Responsable
Test desarrollo
Area de
Tecnología
Planificación
64
02/09/2016
Planificación
Validación
Preparación
Validación
65
02/09/2016
Ejecución
• Validación
Ejecución
Reportes
de Area de
defectos desarrollo
Informe
de
avance Responsable
desarrollo
66
02/09/2016
Resumen estadístico
Recomendaciones
Conclusiones
Evaluación
Jefe de
Proyecto
Informe
de fin
Usuarios
de pruebas
clave
de Test
Analista
responsable
67
02/09/2016
Circuito de Test
Desarrollo Producción
Ciclos de Versión
Versiones Test definitiva
a probar
Casos de Prueba
68
02/09/2016
¿Por qué?
Importancia de la definición
Durante el análisis de casos se puede tener una idea genérica de la
aplicación.
69
02/09/2016
Probar sin definir previamente los casos, podría ocasionar que queden
cosas sin probar (sin intención).
70
02/09/2016
Casos de Prueba
Casos de Prueba
Un buen caso de prueba, es aquel que satisface, al menos los
siguientes criterios:
• No es redundante
• Es el mejor de su especie
71
02/09/2016
Casos de Prueba
No es redundante
Casos de Prueba
Es el mejor de su especie
72
02/09/2016
Casos de Prueba
Punto relevantes
Verificación funcional.
73
02/09/2016
Verificación Funcional
El tipo de dato debería validarse en cada input con mensajes claros para
el usuario.
74
02/09/2016
75
02/09/2016
76
02/09/2016
Caso (Descripción)
77
02/09/2016
Ejemplo:
• Campos involucrados
• Permisos de usuario
• Precondiciones
78
02/09/2016
Prioridad – Lineamientos
ALTA: llevan a recorrer la aplicación a lo ancho. Por lo general salen del flujo principal
de los casos de uso. Generalmente representan el 20-30% de los casos y se ejecutan
en poco tiempo.
BAJA: pueden ejecutarse luego del pasaje a producción. Por lo general son casos
negativos y/o casos de ocurrencia muy poco probables. En general suelen ser el 30-
40% de los casos.
Debe detallar todas las poscondiciones que deberán verificarse una vez ejecutada
las acciones con las condiciones descriptas en el “Propósito del CP” y detalladas en
“Descripción del pasos”.
No alcanza con describir en el RE “OK”, “Lo hace bien”, “El alta se realiza
correctamente”, etc.
Deben:
Incluirse referencias a las tablas donde se realizan los cambios y acciones sobre las
mismas.
Incluirse pantallas del sistema donde se puede visualizar que los cambios se
efectuaron con éxito.
Describir todo lo que implica que una transacción, reporte o funcionalidad opere
“correctamente”.
79
02/09/2016
Si un mismo caso tiene dos o más resultados esperados, entonces hay que
partirlo.
Diseño
• Componentes del caso de prueba
Objetivo (descripción)
Paso
Acción
Resultado esperado
Resultado obtenido
Datos de auditoria
80
02/09/2016
Precondiciones
Versión congelada
Paso
Acción:
Se describen las acciones a realizar para llevar a cabo la prueba
Resultado esperado:
Se describe la respuesta que debería obtenerse ante la acción ejecutada
Resultado obtenido:
Se describe el resultado obtenido como respuesta a la acción ejecutada
162
81
02/09/2016
Datos de auditoría
Se detallan los siguientes datos
Autor
Tester
Estado de ejecución
Resultado del caso
Fecha de ejecución
Crititicidad
Set de pruebas
Versión
Metodología de aprobación
82
02/09/2016
Metodología de aprobación
Casos de Uso
83
02/09/2016
Bibliografía
The Art Software Testing. Myers. 1979.
Fin de la presentación
Muchas gracias
consultas@liveware.com.ar
Pueyrredón 2446 Piso 3, Buenos Aires, Argentina
Tel: +54(11)48021700
84