E l R e to d e P ro b a r S o ftw a re e n A m b ie n te s d e A lta In c e

Anuncio
Dr. Gerardo Padilla
GDC PVE VTG IRIS
Abril 2008
El Reto de Probar Software en
Ambientes de Alta Incertidumbre
2
11 Abril 2008
¿Es el software una dirección de
negocio de Intel?
Negocio de Intel
3
11 Abril 2008
Caso: Producción
¿Requiere de software?
– Test automation
– Observability Tools
– Producirlo
– Validarlo (Post Silicio)
– RTL
– ~VHDL
– Implementarlo
– Simuladores/Cosimuladores
– Model Checking
– Performance
– Verificarlo (Pre Silicio)
– Modelos
Software para:
– Especificarlo
Software en el Negocio de Intel
4
11 Abril 2008
Caso: Utilización
¿Requiere de software?
– Herramientas de rendimiento
– Compiladores
– Aprovecharlo
– Herramientas de Diagnostico
– Camas de pruebas
– Debuggers
– Integrarlo/probarlo
– Controladores (Drivers)
Software para:
– Comunicacion
Software en el Negocio de Intel
5
11 Abril 2008
– Impacto negativo de defectos en dichas herramientas es
muy grande
– Herramientas basadas en software juegan un
papel fundamental en la producción de nuevos
productos
– Se requieren de herramientas de software
altamente confiables
– El software es un elemento importante en los
ciclos de vida de los productos
Hecho:
Software en el Negocio de Intel
6
11 Abril 2008
¿Qué se requiere para ser un Ingeniero de
Validación?
Una solución: Prueba de Software basada
en riesgos informados
Impacto de la incertidumbre
Incertidumbre en el ecosistema de la
prueba de software
¿Qué es la prueba de software?
Contenido
7
11 Abril 2008
– Análisis de Defectos
– Detectar Defectos
– Prevenir Defectos
Aseguramiento de la Calidad de Software
Contexto de la plática
8
11 Abril 2008
– Caja Negra
– Caja Blanca
– Rendimiento
– Etc.
– Técnica usada para medir la calidad de un
producto de software
Prueba de software
– Defecto: Un error en el producto de software
– Falla: Manifestación del error
– Incertidumbre: Falta de conocimiento seguro y
claro de algo
Definiciones
¿Qué es la Prueba de Software?
9
11 Abril 2008
Diseñ
Diseño de Estrategia
de Prueba
y Casos de Prueba
Desarrollo y
Verificacion de
Contenido de
Prueba
Sistema a Probar
Requerimientos
Recursos - Plan
Automati
zació
zación
Ejecució
Ejecución
Prueba
de Software
(Validación)
Evaluació
Evaluación y
Reporte
de Resultados
Aná
Análisis
de la
causa
raí
raíz
Reporte
de Calidad
Incertidumbre en el Ecosistema de la Prueba de
Software (Ideal ☺)
10
11 Abril 2008
Releases (Fijos)
Iteraciones
Sistema a Probar
Requerimientos
Recursos - Plan
Prueba
de Software
(Validación)
Reporte
de Calidad
Incertidumbre en el Ecosistema de la Prueba de
Software (Ideal ☺)
11
11 Abril 2008
Releases (Fijos)
Iteraciones
Release de Emergencia
Riesgo: Defectos encontrados por los clientes con impacto negativo
Periodo de prueba de emergencia (subconjunto)
Releases (Fijos)
Iteraciones
Riesgo: Incompatibilidad de Versiones de Compiladores
Periodo de prueba no reducido dado el potencial de riesgos
Releases (Fijos)
Iteraciones
Ideal
Incertidumbre en el Ecosistema de la Prueba de
Software - Ejemplos
12
11 Abril 2008
– Requerimientos del sistema
– Plan de liberación del software
– Tiempos de prueba en el plan
– Disponibilidad de ambientes de prueba
– Recursos humanos disponibles
– Tecnología cambiante y no perfecta
– Variabilidad del Software (Inherente)
– TODO SUPUESTO DEL PROYECTO
Fuentes de incertidumbre
Incertidumbre en el Ecosistema de la Prueba de
Software
13
11 Abril 2008
Baja moral
Sentimiento de frustración en todos los equipos
Contenido de Prueba se vuelve obsoleto
Nuevo contenido es requerido
Reorganización de la ejecución
Menor cobertura – Escape de defectos
Incremento en el soporte requerido a los clientes
Incremento en los costos de mantenimiento
Impacto de la Incertidumbre
14
11 Abril 2008
Ideas principales
1. Siempre, tener presente y actualizadas las
prioridades y urgencias del proyecto
2. Tener un manejo de riesgos eficiente
3. Implementar una infraestructura de pruebas
que permita absorber los cambios originados por
los riesgos y las prioridades
Prueba de Software basada en riesgos
informados
(Informed Risk-based Testing)
Como manejar la Incertidumbre en la prueba
de software
15
11 Abril 2008
Principios
1. No es factible probar de manera exhaustiva, se
deben buscar medios que nos permitan mejorar la
detección de fallas
2. Las prioridades deben ser asociadas con casos de
uso del sistema y el impacto de fallas determinas
en los usuarios (modos de falla)
3. Automatiza lo que tenga un ROI adecuado
4. Nunca perder los canales de comunicación con los
involucrados
Como manejar la Incertidumbre en la prueba
de software
16
11 Abril 2008
– Generadores de contenidos de prueba
– Emisores de veredictos de prueba
– Motores de ejecución
Automatización
– Permiten determinar el origen potencial de fallas para crear
pruebas enfocadas así como determinar su impacto en el
usuario
Modelos de modos de falla
– Permite simplificar y priorizar la ejecución con base a las
prioridades del usuario
– Método en el cual las múltiples funcionalidades del sistema
son agrupadas en casos de uso los cuales guían la prueba
de software
Pruebas basadas en casos de uso
Prueba de Software basada en riesgos
informados
17
11 Abril 2008
– Generar contenido de prueba priorizado (si se requiere)
– Programar ejecución basada en prioridades y criticidad de
los casos de prueba
En cada iteración se evalúa previamente las
prioridades de los casos de uso así como de los
defectos encontrados para
Releases (Fijos)
Iteraciones
Prueba de Software basada en riesgos informados
18
11 Abril 2008
– Selección programada
– Disponibilidad de ambientes de prueba
– Generación dinámica de contenidos de prueba
– Continua comunicación y negociación
– Infraestructura de pruebas configurable y modificable
Costo de llevar esto acabo
– La importancia para el cliente
– El impacto de falla para el cliente
Este enfoque permite priorizar las pruebas mas
importantes considerando:
¿Porqué funciona este enfoque?
¿Qué se requiere para ser un
Ingeniero de Validación?
20
Diseña pruebas
Implementa pruebas
Implementa herramientas
Ejecuta pruebas
Reporta resultados
Analiza resultados
Encuentra causas a los problemas
Determina mejores estrategias para construir el software y
probarlo
11 Abril 2008
–
–
–
–
–
–
–
–
Ingeniero de validación de software
– Ejecuta pruebas
– Reporta resultados
Probador
Probador vs Ingeniero de validación de software
Habilidades Requeridas
21
Diseña pruebas
Implementa pruebas
Implementa herramientas
Ejecuta pruebas
Reporta resultados
Analiza resultados
Encuentra causas a los problemas
Determina mejores estrategias para construir el software y
probarlo
11 Abril 2008
–
–
–
–
–
–
–
–
Ingeniero de validación de software
– Ejecuta pruebas
– Reporta resultados
Probador
Probador vs Ingeniero de validación de software
Habilidades Requeridas
22
Habilidades organizacionales y de planeacion
Poner y dar seguimiento a los detalles
Determinación para resolver y descubrir problemas
Trabajar con otros, resolver conflictos
Mentoring
Trabajar con usuarios clientes
Habilidades de escritura y comunicación verbal
Pensar creativamente
11 Abril 2008
–
–
–
–
–
–
–
–
Personales y administrativas
Habilidades Requeridas
23
Practicas y principios de ingeniería de software
Entendimiento de principios y practicas de probar
Entendimiento de estrategias de prueba
Habilidad para planear, diseñar y ejecutar casos de prueba
Conocimiento de procesos
Conocimientos técnicos en distintas tecnologías
Conocimiento de herramientas
Conocimiento de programación
Conocimiento de aspectos de calidad
Conocimiento y pensamiento estadístico
11 Abril 2008
–
–
–
–
–
–
–
–
–
–
Técnicas
Habilidades Requeridas
gerardo.padilla.zarate@intel.com
Descargar