2. Objetivo
Capacitar al Alumno Comprometido en la metodología de pruebas (Testing)
como Tester Profesional, utilizando de la Metodología de Testing del CMMI
(Capability Maturity Model Integration); específicamente con el Modelo-V.
3. Temario
Módulo 1
1) Introducción
a) Reforzamiento de Requerimientos Básicos
2) Fundamentos
a) ¿Por qué son necesarias la Pruebas?
b) ¿Qué es el Testing (Pruebas)?
c) Principios Generales del Testing (Pruebas)
d) Fundamentos del Proceso de Pruebas
e) La Psicología del Testing
f) Sumario
3) Testing a través del Ciclo de Vida del Software
a) Modelos de Desarrollo de Software
b) Niveles de Pruebas
c) Tipos de Pruebas; los blancos del Testing
d) Testing de Mantenimiento
e) Sumario
4) Proyecto Práctico
5) Ejecución de Casos de Prueba
4. Temario cont.
Módulo 2
1) Procesos de Negocio
a) Definición
b) Tipos de Procesos de Negocio
c) Identificación y Entendimiento de Procesos de Negocio
a) Diagramas de Flujo
b) Reglas de Negocio
2) Técnicas Estáticas
a) Definición
b) Revisiones y el Proceso de Pruebas
c) Proceso de Revisión
d) Análisis Estático
e) Sumario
3) Técnicas de Diseño de Pruebas
a) El Proceso de Diseño de Pruebas
b) Categorías de las Técnicas de Diseño de Pruebas
c) Especificaciones o Técnicas de Caja Negra
d) Estructura o Técnicas de Caja Blanca
e) Experiencia Basada en Técnicas
f) Eligiendo Técnicas de Pruebas
g) Sumario
4) Proyecto Práctico
a) Análisis de Requerimientos
5) Diseño de Casos de Prueba
5. Temario cont.
Módulo 3
1) Management de Pruebas
a) Organización de Pruebas
b) Planeación y Estimación de Pruebas
c) Monitoreo y Control del Proceso de Pruebas
d) Configuración del Management
e) Riesgo y Testing
f) Management de Incidencias
g) Sumario
2) Proyecto Práctico
a) Estimación de un Proyecto de Pruebas
b) Planeación de un Proyecto de Pruebas
c) Seguimiento y Control de un Proyecto de Pruebas
7. Introducción
Conceptos Básicos
¿Qué es la Calidad?
¿Qué es la Mejora Continua?
¿Qué es el Aseguramiento de la Calidad?
¿Qué es Software?
¿Qué es Hardware?
8. Introducción cont.
Calidad
¿Qué es la Calidad del Software?
El desarrollo de software basado en estándares con la funcionalidad y
rendimiento total que satisfacen los requerimientos del cliente.
¿Qué es la Calidad en las Pruebas?
La Calidad proporciona un nivel de confiabilidad (La probabilidad de que
el software no causara una falla en el sistema por un tiempo en
especifico bajo condiciones especificas.) de que el software cumpla con
los requerimientos definidos, que realice las funciones por las cuales fue
elaborado y que se van a reducir posibles errores/defectos/fallas.
9. Introducción cont.
“La Calidad no es intangible . El propósito de las Pruebas es hacer visible
a la Calidad . Las Pruebas es la medición de la Calidad del Software!”
Bill Hetzel
11. Fundamentos
¿Por qué son necesarias las pruebas?
Aseguramiento de la calidad del producto y de los procesos de
desarrollo.
Detección y Reducción de Riesgos.
Detección de incidencias previo a la instalación en producción.
Redución de los costos en la solución de las incidencias productivas.
Evitar acciones legales.
Mejora Continua.
12. Fundamentos
¿Qué es un Riesgo?
“Es un Factor que puede provocar una consecuencia negativa, se puede
expresar como el impacto y la probabilidad.”
Los equipos de pruebas tienen como objetivo el detectar, reportar y dar
seguimiento a los riesgos del proyecto pero no tomar decisiones sobres
estos riesgos, los encargados de tomar dichas decisiones son los
Clientes.
13. Fundamentos cont.
¿Qué es un error / defecto / falla?
Error. Una acción humana que produce un resultado incorrecto.
Defecto. Es el resultado de un error en el software:
También conocido como bug.
Si es ejecutada una aplicación con un defecto, puede generar
una falla.
Falla. Desviación del componente o sistema en comparación con el
resultado esperado.
Falla es un evento; defecto es un estado del software, causado
por un error.
14. Fundamentos cont.
¿Qué es un error/defecto/falla? … Cont.
Una persona
comete un error ...
… Esto crea un
defecto en el
software ...
… Esto puede
causar una falla en
la operación.
15. Fundamentos cont.
¿Son posibles la Pruebas Exhaustivas?
Las pruebas exhaustivas des sistemas complejos:
Requieren recursos enormes.
Costosas.
Requieren demasiado tiempo.
No son prácticas.
16. Fundamentos cont.
¿Por qué no probamos todo?
Sistema con 40 pantallas.
5 menús por pantalla.
4 opciones por menú.
10 campos por pantalla.
2 tipos de entrada por campo.
200 posibles valores.
Cantidad de escenarios para pruebas exhaustivas:
40 x 5 x 4 x 10 x 2 x 200 = 3,200,000
Si me tardo 1 seg por prueba
Si me tardo 10 seg por prueba
Si me tardo 1 min por prueba
Si me tardo 10 min por prueba
= 37.04 días
= 52.91 semanas
= 6.09 años
= 60.88 años
17. Fundamentos cont.
¿Cuantas pruebas son necesarias?
Para decidir que tantas pruebas debemos realizar tomamos en cuenta:
Nivel de Riesgo.
Límites del Proyecto: Tiempo y Presupuesto.
Los riesgos se evalúan de acuerdo a:
Nivel de Negocio.
Nivel Técnico.
Nivel del Proyecto.
Nivel de Pruebas.
18. Fundamentos cont.
¿Cuantas pruebas son necesarias? cont.
Como resultado de este análisis de determina que componentes o
módulos es inaceptable no probarlos y cuales se justifica no
probarlos, así como el tipo de pruebas a ejecutar.
Si no aceptamos un riesgo se debe de probar, si aceptamos el riesgo
podemos no probarlo.
Las pruebas son una actividad de control de riesgos que
proporciona retroalimentación a los involucrados para contar con
elementos en la toma de decisiones.
19. Fundamentos cont.
Criterios de Salida:
“Son el conjunto de condiciones genéricas y específicas, acordadas
con las partes interesadas, para permitir que un proceso sea
completado oficialmente.”
Se utilizan para determinar cuándo las pruebas en cualquier fase del
proyecto se han completado.
Se definen por :
Minuciosidad.- La cobertura de los requisitos.
Costo o limitantes de tiempo.
Porcentaje de pruebas ejecutadas sin incidencias.
Número de fallas restantes.
20. Fundamentos cont.
¿Qué es el Testing (pruebas)?
“Una Prueba es una operación técnica que consiste en la
determinación de una o mas características de un producto, proceso o
de un servicio dado, según un procedimiento en especifico.”
“Una Prueba como proceso consiste en todas las actividades del ciclo
de vida del proyecto, estáticas y dinámicas, concernientes con la
planeación, preparación y evaluación de productos de software y
relacionados con los productos de trabajo, para determinar si se
satisfacen los requerimientos especificados, para demostrar que
cumplen con su propósito y para la detección de defectos.”
Hetzel 1998
21. Fundamentos cont.
¿Qué es el Testing (pruebas)? Cont.
“Cualquier actividad que se lleva a cabo con el objetivo de ayudarnos
a evaluar o medir un atributo de nuestro software debe considerarse
como una actividad de prueba.”
“Testing es toda actividad dirigida a la evaluación de un atributo o
capacidad de un programa o sistema y la determinación de que
cumple con sus resultados necesarios.”
22. Fundamentos cont.
Definición
Incluye actividades:
Planeación y Control.
Elección de Condiciones de Pruebas.
Diseño de Casos de Prueba.
Evaluación de Resultados.
Evaluación de Criterios de Salida.
Reporte del Proceso de Pruebas y de los sistemas a probar.
Cierre de proyectos.
Las pruebas también incluyen las revisiones de la documentación
(incluyendo el código) y Análisis Estático.
23. Fundamentos cont.
Testing vs Debugging
Son diferentes:
El testing muestra las fallas causadas por defectos.
El debugging identifica la causa del defecto, corrige el defecto y revisa
que el defecto ha sido corregido correctamente.
El testing asegura que el defecto sea corregido efectivamente.
Responsables:
Testing = Tester
Debugging = Desarrollador
24. Fundamentos cont.
Principios Generales del Testing (Pruebas)
Las pruebas demuestran la existencia de defectos.
Realizar pruebas exhaustivas es imposible.
Involucrar la etapa de pruebas desde el inicio del proyecto.
Asignación de prioridades y severidad a las pruebas y a las incidencias.
Paradoja del Pesticida.
El tipo de pruebas a realizar se basa en la criticidad del proyecto.
La ausencia de errores es una falacia.
25. Fundamentos cont.
Principios Generales del Testing (Pruebas)
“La probabilidad de la existencia de más errores en un módulo de un
programa es proporcional al número de errores ya encontrados en dicho
programa“.
"No planee pruebas de esfuerzo bajo el supuesto tácito de que no se
encontrarán errores “.
"Una buena prueba es la que tiene una alta probabilidad de detectar un
error aún no descubierto“.
"Una prueba exitosa es aquella que detecta un error, inesperado“.
26. Fundamentos cont.
Principios Generales del Testing (Pruebas)
Paradoja del Pesticida:
Las pruebas detectan defectos, y los desarrolladores los solucionan.
Como insectos estos defectos son eliminados por los desarrolladores, el
software mejora.
Como el software mejora las pruebas anteriores caducan.
Por esto debemos aprender, crear y utilizar nuevas pruebas basadas en nuevas
técnicas para detectar nuevos errores. (Mejora Continua).
Se le llama la “Paradoja del Pesticida", después del fenómeno de la agricultura,
donde los insectos como el gorgojo del algodón construyeron tolerancia a los
pesticidas, provocando la necesidad de crear pesticidas cada vez más poderosos.
Beizer 1995
27. Fundamentos cont.
Fundamentos del Proceso de Pruebas
El proceso fundamental de las pruebas consta de 5 actividades y se utiliza
para la realización de cada uno de los tipos de prueba a implementar
dentro de todos los proyectos.
Planeación y Control
de Pruebas
Análisis y Diseño de
Casos de prueba
Ejecución
de Pruebas
Evaluación y Reporte
de Criterios de Salida
Finalización
de Pruebas
28. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Planeación de las pruebas. Se define como la estrategia que se va
utilizar en las pruebas, además que determina las técnicas
apropiadas (dependiendo del tipo de aplicación, etc.) para el diseño
de los casos de prueba.
Plan de Pruebas: Documento que describe el alcance, enfoque,
recursos y calendario de actividades específicas de las pruebas.
Verifica la misión de las pruebas.
Define los objetivos de las pruebas.
Especifica las Actividades de Pruebas requeridas para cunplir con
la misión y los objetivos definidos.
29. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Control de las pruebas. Se define como la actividad de comparar el
avance real con el planeado, para reportar el estatus y las
desviaciones oportunamente.
Tomar acciones necesarias para cumplir la misión y los objetivos
del proyecto.
La planificación de las pruebas se ajusta de acuerdo a la
retroalimentación de las actividades de vigilancia y control.
30. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Análisis y Diseño de Casos de Prueba. Los objetivos generales de las
pruebas son transformados en Condiciones y Casos de Prueba
tangíbles.
Condición de Prueba: Un elemento o evento de un componente o sistema
que pudiera ser verificado por uno o más casos de prueba, por ejemplo, una
función, operación,, atributo de calidad, o elemento estructural.
Caso de Prueba: Un conjunto de valores de entrada, condiciones de
ejecución, resultados esperados y la ejecución. Post-condiciones, desarrollado
para un objetivo particular o condición de prueba, tales como el ejercicio de
un flujo en particular o para verificar el cumplimiento de un requisito
específico.
Las pruebas deben ser diseñadas usando las técnicas de diseño
seleccionadas en la planeación.
31. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Análisis y Diseño de Casos de Prueba:
Cada caso de prueba se especifica con:
Objetivo.
Pre-condiciones.
Entrada.
Resultado Esperado.
Post-condiciones (Validaciones).
Se puede Desarrollar como:
Script de Caso de Prueba.
Matríz de Casos de Prueba.
32. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Análisis y Diseño de Casos de Prueba:
"El diseño de pruebas es uno de los mecanismos de prevención de
error más eficaces conocidos.
... El proceso mental que debe llevarse a cabo para crear pruebas
útiles puede descubrir y eliminar los problemas en cada etapa de
desarrollo“.
Beizer
33. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Implementación de las pruebas:
Los casos de prueba son ejecutados en una serie de pasos
ordenados en particular definidos en los Script de Prueba.
Se crea la Tabla de Datos de Prueba.
Se generan los Ambientes de Pruebas y se verifican.
34. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Ejecución de las pruebas: Se verifica que el resultado esperado de
cada prueba realizada sea entregada de manera exacta por el sistema
o componente. En esta etapa es muy importante la construcción de
evidencias de ejecución.
Se pueden ejecutar manualmente o por medio de herramientas de
pruebas.
Registro de los Resultados de las Pruebas.
Los registros de ejecución de la prueba únicamente deben
identificar las versiones del software bajo prueba y herramientas de
prueba.
Debe existir evidencia de cada ejecución de cada caso de prueba.
35. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Ejecución de las pruebas:
Validación de Resultados:
Comparar los resultados actuales con los esperados.
Reportar Incidencias.
Analizar incidencias para establecer la causa raíz.
Re-ejecutar si es necesario, las pruebas para cada incidencia.
Se registran los criterios de aceptación para cada caso de prueba.
36. Fundamentos cont.
Fundamentos del Proceso de Pruebas Cont.
Reporte de avance. Se muestra el estado y avance de las
actividades de prueba durante la etapa de desarrollo y ejecución.
Finalización de las pruebas. Se verifica que los registros de
pruebas cumplan los criterios de finalización de pruebas
especificados, en caso contrario, se necesitan repetir las
actividades de la prueba, incluso puede ser necesario diseñar mas
casos de prueba para poder cumplir con los criterios de
finalización y aceptación.