24
El Reto de Probar Software en Ambientes de Alta Incertidumbre Dr. Gerardo Padilla GDC PVE VTG IRIS Abril 2008

El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

Embed Size (px)

Citation preview

Page 1: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

El Reto de Probar Software en

Ambientes de Alta Incertidumbre

Dr. Gerardo Padilla

GDC PVE VTG IRIS

Abril 2008

Page 2: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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?

Page 3: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 4: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 5: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 6: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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?

Page 7: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

711 Abril2008

Contexto de la plática

�Aseguramiento de la Calidad de Software

–Prevenir Defectos

–Detectar Defectos

–Análisis de Defectos

Page 8: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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.

Page 9: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 10: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 11: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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)

Page 12: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 13: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 14: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 15: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 16: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 17: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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)

Page 18: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 19: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

¿Quése requiere

para

ser un

Ingeniero

de Validación?

Page 20: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 21: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 22: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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

Page 23: El Reto de Probar Software en Ambientes de Alta ... · 5 11 Abril2008 Software en el Negocio de Intel ... Prueba de software –Técnica usada para medir la calidad de un producto

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