El Reto de Probar Software en
Ambientes de Alta Incertidumbre
Dr. Gerardo Padilla
GDC PVE VTG IRIS
Abril 2008
211 Abril2008
Negocio de Intel
¿¿Es el software una direcci
Es el software una direcci óón de
n de
negocio de Intel?
negocio de Intel?
311 Abril2008
Software en el Negocio de Intel
�¿Requiere de software?
�Caso: Producción
�Software para:
–Especificarlo
–Modelos
–Verificarlo (Pre
Silicio)
–ModelChecking
–Perform
ance
–Sim
uladores/Cosim
uladores
–Im
plementarlo
–~VHDL
–RTL
–Producirlo
–Validarlo (Post Silicio)
–ObservabilityTools
–Testautomation
411 Abril2008
Software en el Negocio de Intel
�¿Requiere de software?
�Caso: Utilización
�Software para:
–Comunicacion
–Controladores (Drivers)
–Integrarlo/probarlo
–Camas de pruebas
–Debuggers
–Herramientas de Diagnostico
–Aprovecharlo
–Compiladores
–Herramientas de rendim
iento
511 Abril2008
Software en el Negocio de Intel
�Hecho:
–El software es un elemento importante en los
ciclos de vida de los productos
–Herramientas basadas en software juegan un
papel fundamental en la producción de nuevos
productos
–Se requieren de herramientas de software
altamente confiables
–Im
pacto negativo de defectos en dichas herramientas es
muy grande
611 Abril2008
Contenido
�¿Quées la prueba de software?
�Incertidumbre en el ecosistema de la
prueba de software
�Im
pacto de la incertidumbre
�Una solución: Prueba de Software basada
en riesgos inform
ados
�¿Quése requiere
para
ser un Ingeniero
de
Validación?
711 Abril2008
Contexto de la plática
�Aseguramiento de la Calidad de Software
–Prevenir Defectos
–Detectar Defectos
–Análisis de Defectos
811 Abril2008
¿Quées la Prueba de Software?
�Definiciones
–Defecto: Un error en el producto de software
–Falla: Manifestación del error
–Incertidumbre: Falta de conocim
iento seguro y
claro de algo
�Prueba de software
–Técnica usada para m
edir la calidad de un
producto de software
–Caja Negra
–Caja Blanca
–Rendim
iento
–Etc.
911 Abril2008
Incertidumbre en el Ecosistema de la Prueba de
Software (Ideal ☺ ☺☺☺)
Prueba
Prueba
de Software
de Software
(Validaci
(Validaci óón)
n)
Requerimientos
Requerimientos
Reporte
Reporte
de Calidad
de Calidad
Recursos
Recursos --Plan
Plan
Sistema a Probar
Sistema a Probar Desarrollo
Desarrolloy
y
Verificacion
Verificacionde
de
Contenido
Contenidode
de
Prueba
Prueba
Dise
Diseññoode
de Estrategia
Estrategia
de
de Prueba
Prueba
y
y Casos
Casosde
de Prueba
Prueba
Automati
Automati
zaci
zaci óónn
Ejecuci
Ejecuci óónn
Evaluaci
Evaluaci óónny
y
Reporte
Reporte
de
de Resultados
Resultados
An
Anáálisis
lisis
de la
de la
causa
causa
raraíí zz
10
11 Abril2008
Incertidumbre en el Ecosistema de la Prueba de
Software (Ideal ☺ ☺☺☺)
Prueba
Prueba
de Software
de Software
(Validaci
(Validaci óón)
n)
Requerimientos
Requerimientos
Sistema a Probar
Sistema a Probar
Reporte
Reporte
de Calidad
de Calidad
Iteraciones
Iteraciones
Releases
Releases(Fijos)
(Fijos)
Recursos
Recursos --Plan
Plan
11
11 Abril2008
Incertidumbre en el Ecosistema de la Prueba de
Software -Ejemplos
Iteraciones
Iteraciones
Releases
Releases(Fijos)
(Fijos)
Ideal
Ideal
Iteraciones
Iteraciones
Releases
Releases(Fijos)
(Fijos)
Riesgo
Riesgo: Incompatibilidad de Versiones de Compiladores
: Incompatibilidad de Versiones de Compiladores
Periodo de prueba no reducido dado el potencial de riesgo
Periodo de prueba no reducido dado el potencial de riesgoss
Release
Releasede Emergencia
de Emergencia
Iteraciones
Iteraciones
Releases
Releases(Fijos)
(Fijos)
Riesgo
Riesgo: Defectos encontrados por los clientes con impacto negativo
: Defectos encontrados por los clientes con impacto negativo
Periodo de prueba de emergencia (subconjunto)
Periodo de prueba de emergencia (subconjunto)
12
11 Abril2008
Incertidumbre en el Ecosistema de la Prueba de
Software
�Fuentes de incertidumbre
–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
13
11 Abril2008
Impacto de la Incertidumbre
�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 m
antenim
iento
�Baja m
oral
�Sentimiento de frustraciónen todos los equipos
14
11 Abril2008
Como manejar la Incertidumbre en la prueba
de software
Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
informados
informados
informados
informados
informados
informados
informados
informados
( (((( ((( Informed
Informed
Informed
Informed
Informed
Informed
Informed
InformedRisk
Risk
Risk
Risk
Risk
Risk
Risk
Risk- ---- --- based
based
based
based
based
based
based
basedTesting
Testing
Testing
Testing
Testing
Testing
Testing
Testing) )))) )))
Ideas principales
1.Siempre, tener presente y actualizadas las
prioridades y urgencias del proyecto
2.Tener un manejo de riesgos eficiente
3.Im
plementar una infraestructura de pruebas
que perm
ita absorber los cambios originados por
los riesgos y las prioridades
15
11 Abril2008
Como manejar la Incertidumbre en la prueba
de software
Principios
1.No es factible probar de m
anera exhaustiva, se
deben buscar medios que nos perm
itan m
ejorar la
detección de fallas
2.Las prioridades deben ser asociadas con casos de
uso del sistema y el im
pacto de fallas determ
inas
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
16
11 Abril2008Prueba de Software basada en riesgos
Prueba de Software basada en riesgos
informados
informados
�Pruebas basadas en casos de uso
–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
–Perm
ite sim
plificar y priorizar la ejecución con base a las
prioridades del usuario
�Modelos de m
odos de falla
–Perm
iten determ
inar el origen potencial de fallas para crear
pruebas enfocadas asícomodeterm
inarsuim
pacto
en el
usuario
�Automatización
–Generadores de contenidos de prueba
–Emisores de veredictos de prueba
–Motores de ejecución
17
11 Abril2008
Prueba de Software basada en riesgos informados
Prueba de Software basada en riesgos informados
�En cada iteración se evalúa previamente las
prioridades de los casos de uso asícomo de los
defectos encontrados para
–Generar contenido de prueba priorizado (si se requiere)
–Programar ejecución basada en prioridades y criticidad de
los casos de prueba
Iteraciones
Iteraciones
Releases
Releases(Fijos)
(Fijos)
18
11 Abril2008
¿Porquéfuncionaeste
enfoque?
�Este enfoque perm
ite priorizar las pruebas m
as
importantes considerando:
–La importancia para el cliente
–El im
pacto de falla para el cliente
�Costo de llevar esto acabo
–Continua comunicación y negociación
–Infraestructura de pruebas configurable y m
odificable
–Selección programada
–Disponibilidad de ambientes de prueba
–Generación dinámica de contenidos de prueba
¿Quése requiere
para
ser un
Ingeniero
de Validación?
20
11 Abril2008
HabilidadesRequeridas
�Probador vsIngeniero de validación de software
�Probador
–Ejecuta pruebas
–Reporta resultados
�Ingeniero de validación de software
–Diseña pruebas
–Im
plementa pruebas
–Im
plementa herramientas
–Ejecuta pruebas
–Reporta resultados
–Analiza resultados
–Encuentra causas a los problemas
–Determ
ina m
ejores estrategias para construir el software y
probarlo
21
11 Abril2008
HabilidadesRequeridas
�Probador vsIngeniero de validación de software
�Probador
–Ejecuta pruebas
–Reporta resultados
�Ingeniero de validación de software
–Diseña pruebas
–Im
plementa pruebas
–Im
plementa herramientas
–Ejecuta pruebas
–Reporta resultados
–Analiza resultados
–Encuentra causas a los problemas
–Determ
ina m
ejores estrategias para construir el software y
probarlo
22
11 Abril2008
HabilidadesRequeridas
�Personales y administrativas
–Habilidades organizacionales y de planeacion
–Poner y dar seguim
iento a los detalles
–Determ
inació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
23
11 Abril2008
HabilidadesRequeridas
�Técnicas
–Practicas y principios de ingeniería de software
–Entendim
iento de principios y practicas de probar
–Entendim
iento de estrategias de prueba
–Habilidad para planear, diseñar y ejecutar casos de prueba
–Conocim
iento de procesos
–Conocim
ientos técnicos en distintas tecnologías
–Conocim
iento de herramientas
–Conocim
iento de programación
–Conocim
iento de aspectos de calidad
–Conocim
iento y pensamiento estadístico