Densidad de defectos - Carreras de Sistemas - UARG

Transcripción

Densidad de defectos - Carreras de Sistemas - UARG
PARTE III PSP 2
continuación
Estructura de PSP
2
1
PSP 2.0
3
Estimando cantidad de Defectos
Analizar los defectos nos permitirá determinar
cual es el mejor método de depurar nuestro
código
El desarrollo de software no es un proceso
estable. La inventiva y creatividad del ser
humano lo torna inestable
El estandar de defectos inyectados es de 50 a
250 x KLOC.
4
2
La dificultad de estimar defectos
La estimación no es tarea exacta
1-Los conocimientos y la experiencia varían
2-El desarrollo de por si no es estable
3-El proceso de depuración inserta más
errores
PSP intenta estabilizar la inyección de
defectos y así estimar con exactitud.
5
Densidad de defectos
La densidad de errores inyectados por cada
1000 lineas de código es la medida que
utilizaremos
Dd= 1000*D/N
Dd
densidad de defectos
D
cantidad de defectos encontrados
N
cantidad nuevas y modific. Líneas de código
Pj: Un programa de 96 LOC con 14 defectos
Dd= 1000*14/96 = 145,85 defectos/KLOC
6
3
Estimando los defectos a inyectar
1- Estimar la cantidad de LOC, supongamos 56 líneas
2- Calcular el promedio de Dd de programas anteriores
Ddplan =1000(D1+....+D2)/(N1+.....+Ni)
Ddplan= 1000(6+11+7+9+5)/(37+62+49+53+28)
Ddplan=1000*38/229= 165,94 defectos/KLOC
Programa
Defectos (D)
LOC (N)
1
6
37
2
11
62
3
7
49
4
9
53
5
5
28
Total
38
229
7
Proceso de estimación
Asumiendo que el nuevo programa
tendrá la misma densidad de defectos
obtenemos los defectos.
Dplan = Nplan * Ddplan / 1000
Dplan = 56 * 165,94 / 1000 = 9,29
8
4
9
Resumen
Estimamos la Densidad de defectos de
programas anteriores
En base a la Densidad estimamos los
defectos a inyectar en un nuevo
programa
Proyectando
errores
con
mayor
proximidad nos permitirá mejorar la
calidad de nuestro proceso
10
5
Costos de remover defectos
Equilibrio entre calidad, tiempo y costos.
A medida que avanzamos en etapa de
depuración aumenta el tiempo de solución
(10x)
Los desarrollos crecen en complejidad pero no
así el proceso de desarrollo. Lo típico es
codificar y depurar en las etapas de
compilación y pruebas.
Windows NT fue desarrollado con 30.000
defectos, llevo 1 año a 250 desarrolladores
depurar el código, 16 hs. / defecto.
11
Relación defectos inyectados y removidos
12
6
PSP y los costos de remover defectos
13
PSP y el cálculo de los defectos/hs
PSP enfoca a optimizar el proceso de
desarrollo
La optimización apunta a desarrollar código
libre de errores
Para desarrollar código libre de errores
debemos aprender de nuestros errores y así
poder
prevenirlos.
Aquellos
que
indefectiblemente
insertamos
debemos
depurarlos antes de compilar.
Para analizar y optimizar nuestro proceso de
depuración vamos a conocer nuestro patron
de defectos removidos e inyectados
14
7
Defectos encontrados y removidos
Calculamos nuestros valores históricos de
defectos encontrados y removidos en el lapso
de 60 minutos.
1-Defectos insertados en la etapa de diseño
2-Defectos insertados en la etapa de
codificación
3-Defectos removidos en la revisión de
código
4-Defectos removidos en la etapa de
compilación
5-Defectos removidos en la etapa de
pruebas
15
PSP –
Resumen
del Plan de
Proyecto
Lo nuevo...
To Date%
Def./Hour
16
8
Histórico de Defectos encontrados y
removidos
1-Histórico de Defectos inyectados en el
diseño
60 * / (def. inyectados en diseño / minutos
acumulados en el diseño)
= 60*5/195 = 1,54
2-Histórico de defectos inyectados en la
codificación.
60 * / (def. inyectados en codif. / minutos
acumulados en la codificación)
= 60*25/792 = 1,89
17
Defectos encontrados y removidos
3-Histórico de Defectos removidos en la revisión del
código
60 * / (def. removidos en Rev. Código / minutos
acumulados en la Revisión de Código)
= 60*12/145 = 4,97
4-Histórico de Defectos removidos en la compilación
60 * / (def. removidos en Rev. Código / minutos
acumulados en la compilación)
= 60*13/100 = 7,80
5-Histórico de Defectos removidos en las pruebas
60 * / (def. removidos en las pruebas / minutos
acumulados en las pruebas)
= 60*6/279 = 1,29
18
9
Medida para evaluar el proceso de
remoción de defectos
PSP enfoca a remover errores antes de
compilar
La medida para evaluar nuestro avance en
este objetivo es conocer los % de errores
encontrados y removidos antes de compilar
por primera vez.
Esta medida es conocida como Process
YIELD.
Process YIELD es el % de errores detectados
antes de la primera compilación
Como siempre calculamos, lo Planeado, lo
19
sucedido y lo acumulado en el tiempo
Cálculo de Process YIELD
Lo planificado:
Yield planificado=100*(plan de defectos a remover
antes de compilar/plan de defectos inyectados
antes de compilar)
= 100*2/(1+5) = 33,3 %
Lo sucedido:
Yield actual =100*(Defectos a removidos antes de
compilar/Defectos inyectados antes de compilar)
= 100*4/(1+4) = 80,0 %
Lo sucedido en el tiempo (acumulado):
Yield ToDatel =100*(Defectos acumulados removidos
antes
de
compilar/Defectos
acumulados
inyectados antes de compilar)
= 100*12/(5+25) = 40,0 %
20
10
Mejorando la remoción de defectos
El objetivo es remover el 100% de defectos.
Inicialmente nuestro objetivo será menor
(70%)
Utilizar el checklist para hacer la revisión del
código
Optimizar el checklist agregando y eliminando
controles que no ayuden a encontrar
defectos.
Una definición de locura es hacer siempre lo
mismo y esperar que ocurra algo distinto
[Brown]. Significa, si no cambiamos el
checklist se nos filtrarán los mismos defectos 21
Resumen de Remoción de Defectos
Los defectos son inevitables
Impactan en nuestros costos, tiempo y calidad
de nuestro trabajo
El método eficiente es la revisión del código.
En las pruebas se detectan 2-4 defectos / hora
En la revisión del código, 6-12 defectos / hora
El compilador es eficiente en defectos de sintaxis
Para mejorar el proceso de remoción de
errores introducimos dos nuevas medidas:
Defectos / horas por fase inyectados y removidos
Process YIELD , relación en % entre removidos /
inyectos
Analizando cada fase sabremos que debemos
22
mejorar
11
Calidad del Producto
Vamos a analizar la relación de defectos
encontrados y los que quedan remanentes
para el cliente
PSP enfoca a iniciar con calidad los primeros
pasos del proceso de desarrollo
La realidad es que ser descuidado en el
desarrollo no hay herramienta que lo corrija.
Esto se demuestra que cuando mayor
cantidad de errores detectamos en la
compilación, mayor cantidad pasan a la etapa
de pruebas y mayor cantidad quedan
remanentes.
23
Efectividad de métodos
Cada etapa de depuración es
un filtro de defectos
Cuantos más errores entran a
cada
etapa
de
filtrado,
revisión
de
código,
compilación y testeo mas
errores se filtran.
Si el proceso de depuración
tendría una tasa Process
YIELD
(porcentaje
de
removidos
sobre
los
insertados) de 100% no
existiría ningun problema,
pero no es la realidad.
Método
Tasa
Yield
Revisión de
código
70-80
Inspección
50-70
Compilación
50
Pruebas
40-50
Prueba
Integración
45
Prueba
Requerim.
45
24
12
Calculando la efectividad de cada método de remoción
FASE
DEFECTOS
Código
12 defectos
Def. encontrados/removidos
Rev. Código
7 defectos
Remanentes
5 encontrados
-Rev. Yield=5/5 100%
Compilación
4 defectos
Remanentes
3 encontrados
-Comp. Yield= 3/3 = 100%
-Rev. Yield=5/8 62,5 %
Pruebas
2 defectos
Remanentes
2 encontrados
-Pruebas Yield=2/2 100%
-Comp. Yield= 3/5 = 60%
-Rev. Yield=5/10 50 %
0 defectos
remanentes
2 encontrados
-Pruebas Yield=2/4 50 %
-Comp. Yield= 3/7 = 42,9%
-Rev. Yield=5/12 41,7 %
Despues de las pruebas
O en uso
YIELD=100 * def. encontrados
def.removidos
25
Calculando la tasa YIELD final
La única forma de obtener certeza de cuantos
errores son entregados al cliente, es tener el
registro de todos los errores del producto
hasta que el producto no se utilice más.
La regla aceptada para este cálculo es que la
cantidad de defectos entregadas es igual a la
última etapa de depuración.
Esto es aceptar que la tasa YIELD de la
última fase es el 50%. Esto es crítico.
26
13
Calculando la tasa YIELD final
Ejemplos:
A) 17/(17+2+1)=85% agregando
errores entregados al cliente:
• 17/(17+2+1+1)=80,95%
los
B) 17/(17+15+8)=42,5% agregando los
errores entregados al cliente:
• 17/(17+15+8+8+8)=35,40%
27
Resumen
La depuración de defectos es un proceso de
filtrado. Más defectos colocamos en el filtro
más encontramos , pero más pasan el filtro.
La tasa Yield de la fase de Testeo es a los
sumo 50%.
La única forma de obtener un desarrollo de
calidad es poner un desarrollo de calidad en
el filtro de la etapa de Testeo
28
14

Documentos relacionados