calidad en el desarrollo de software

35
CALIDAD EN EL DESARROLLO DE SOFTWARE

Upload: giovanny-guillen

Post on 09-Aug-2015

68 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Calidad en el desarrollo de software

CALIDAD EN EL DESARROLLO DE SOFTWARE

Page 2: Calidad en el desarrollo de software

Agenda

1. Calidad de Software

2. Elementos de aseguramiento de calidad

3. Defect Prevention

4. Ampliación y eliminación de defectos

5. Eficacia en la remoción de defectos

6. Inspecciones y Revisiones Técnicas

7. Control Estadístico

8. Estándares

9. Calidad Proactiva

10. Objetivos y Meta del proceso

Page 3: Calidad en el desarrollo de software

Calidad de Software

“Lo que ahoga a alguien no es caerse al río, sino mantenerse sumergido en el”

Proceso eficaz que se aplica de manera que crea un producto útil que proporciona valormedible a quienes lo producen y a quienes lo utilizan. Debe estar alineado a losestándares relacionados con el aseguramiento de la calidad en los entregables y lagestión de riesgos.

Producto que

funciona

Buena calidad

Entrega dentro de

presupuesto y plazo

Satisfacción del usuario

Page 4: Calidad en el desarrollo de software

Calidad de Software

Un producto es de buena calidad si le sirve a quien lo adquiere y si este lo usa pararealizar la tarea para lo que fue concebido.

Practicar el control de calidad consiste en realizar las acciones necesarias para esteproducto cumpla con los atributos de calidad y con las prestaciones que lo califican.

Un proceso que implique el aseguramiento de calidad de los productos, bien concebidoe implementado generará la mayor cantidad de las veces productos de buena calidad.

Proceso de calidad

Colaboración del equipo

Mejor calidad, bajos costos

Page 5: Calidad en el desarrollo de software

Calidad de Software

• Reglas del aseguramiento de la calidad del software:

Regla del 67%: dos terceras partes de los errors son introducidos en las fases de

análisis y diseño.

Regla del 60/1000: Por cada 1000 líneas de código, son introducidos 60 errors.

Regla del 80%: Todo proceso inpección logra detector 80% de los errors.

Page 6: Calidad en el desarrollo de software

Calidad de Software

• Atributos de la calidad:

Atributos

Funcionalidad

Adecuación

Precisión

Seguridad

Cumplimiento

Fiabilidad

Tolerancia a Fallos

Recuperación

Usabilidad

Comprensibilidad

Aprendizaje

Eficiencia

Uso de recursos

Mantenibilidad

Analizable

Modificable

Estabilidad

Fácil de Probar

Portabilidad

Adaptabilidad

Co-existencia

Page 7: Calidad en el desarrollo de software

Calidad de Software

• Calidad de Uso:

Atributos

Efectividad Productividad Seguridad Satisfacción

Page 8: Calidad en el desarrollo de software

Calidad de Software

• Aseguramiento de la calidad:

Un patrón planificado y sistemático de acciones necesarias para para asegurar queel producto cumple con los requisitos funcionales y técnicos establecidos.

• Control de calidad:

Conjunto de acciones que ayudan a asegurar que todo producto cumpla con lasmetas de calidad establecidas.

Tiempo Costos Alcance

Calidad

Page 9: Calidad en el desarrollo de software

Calidad de Software

• Costo de la calidad:

El costo de la calidad incluye costos que genera la calidad o que demanda eldesarrollo de actividades relacionada con la calidad. Se divide en:

• Costos asociados con prevención: Revisiones técnicas.

• Costos asociados con la evaluación: inspecciones en el proceso y fallas.

• Garantía de la calidad:

Consiste en un conjunto defunciones de auditoría einformación que evalúa laefectividad y completitud delas actividades de control yaseguramiento de la calidad.

Page 10: Calidad en el desarrollo de software

Calidad de Software

• Proceso básico de SQA:

Page 11: Calidad en el desarrollo de software

Calidad de Software

• Proceso básico de pruebas:

Page 12: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Estándares: Aplicar los estándares establecidos y definir todos aquellos que permitan

mejorar la calidad de los productos.

Aseguramiento

Marco de referencia

Estándares

propiosRevisiones

Control de Calidad

Page 13: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Revisiones: Realizar actividades orientadas a validar la calidad de los productos en

cada punto de control del proceso. Las revisiones incluyen las revisiones técnicas,

IQA’s y EQA’s.

• IQA: Evaluaciones internas al equipo del proyecto.

• EQA: Evaluaciones externas al equipo del proyecto.

• Todas las IQA’s y EQA’s deben ser registradas en IPMS.

Page 14: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Revisiones: En todos los proyecto se deben realizar por menos una IQA / EQA a mitad del proyecto y al final.

• Criterios para realizar las IQA y EQA:

• Dividir las unidades de revisión en Simple, Medio y Complejo y tomar al menos 20% de cada componente para realizar la IQA.

• Seleccionar 10% de las unidades que han tenido número máximo de defectos en la IQA para realizar EQA.

Page 15: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Revisiones: El 60% de los errores de un proyecto son detectados por este medio contra el 40% restante detectados por los test.

40% 60%

Page 16: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Pruebas: Función de control de calidad que tiene como objetivo principal detectar

errores. Como punto de control se exigirá la elaboración del plan de pruebas unitarias

requerido como parte de los entregables del proyecto.

Diseño de pruebas unitarias

Plan de pruebas,Casos de pruebas y

evidencia de pruebas unitarias

Especificar casos de pruebas unitarias

Describir casos de pruebas unitarias

Ejecutar y documentar casos de

pruebas unitarias

Page 17: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Recolección y análisis de errores: Realizar mediciones en los puntos de control,

analizar y aplicar las acciones correctivas.

Control de calidad

Recolección de datos

Análisis de datosDeterminar

acciones correctivas

Aplicar Acciones correctivas

Page 18: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Educación: Determinar las necesidades de conocimiento relacionadas con la

generación de productos de software de calidad y planificar los programas de

capacitación que permitan darlos a conocer al personal.

Necesidades

Debilidades

Programas de

capacitación

Page 19: Calidad en el desarrollo de software

Elementos de Aseguramiento de Calidad

• Estimaciones: En los procesos de desarrollo de software se deben considerar como

parte de las actividades de estimación factores de calculo que permitan predecir la

cantidad de defectos que se pueden generar en cada fase de un proyecto de

desarrollo de software de modo de establecer de forma clara las actividades de

prevención de defectos.

Page 20: Calidad en el desarrollo de software

Defect Prevention

• Que es un defecto:

• Un defecto en un producto es:

• Producto que no cumpla los requisitos documentados.

• No es apto para su uso.

• Un defecto en un proceso es: Desviación no autorizada del proceso yprocedimiento aprobado.

• Impacto de los defectos: Los defectos

tienen un impacto importante en la

satisfacción del cliente. resultado de

defectos en la considerable reelaborar

lo que conduce tanto a horario y el

deslizamiento esfuerzo.

Page 21: Calidad en el desarrollo de software

Defect Prevention

• Proceso:

• Responsables:

• Desarrolladores: Realizar IQA.

• Revisores asignados: Realizar EQA.

• Equipo QA: (Documentación / Código), realizar análisis causal y definir planes de acción.

Proceso de

Software

Identificación de

defectos: IQA s,

EQA s, Revisones,

Pruebas

Remoción del

defecto

Acción Correctiva

Análisis Causal

Prevención de

Defectos: Plan para

prevenirlo en el

futuro

Modificación del

plan y/o proceso

de software

Prevención de defectos

Page 22: Calidad en el desarrollo de software

Ampliación y Eliminación de Defectos

• “Dicen los médicos que en sus inicios algunas enfermedades son fáciles de curar

pero difíciles de reconocer… más con el paso del tiempo, si no se detectaron al

principio, se vuelven fáciles de reconocer pero difíciles de curar”

Nicolás Maquiavelo

Errores de la Etapa anterior Errores que pasan

a la siguiente etapa

Etapa

Errores pasados por alto

Errores amplificados

Nuevos Errores generados

Porcentaje de eficiencia en la detección y

eliminación de errores

Page 23: Calidad en el desarrollo de software

Eficacia en la remoción de defectos

• Medición de la capacidad de remoción de los defectos detectados. Se evalúa con la

siguiente ecuación:

• Donde:

• E = Número de errores detectados en la inspección

• D = Número de defectos detectados después de la corrección pos-inspección.

𝐸𝑅𝐷 = 𝐸𝐸+𝐷

Page 24: Calidad en el desarrollo de software

Inspecciones y Revisiones Técnicas

• Proceso básico revisiones:

Page 25: Calidad en el desarrollo de software

Inspecciones y Revisiones Técnicas

• Esfuerzo realizado con y sin revisiones:

Esfuerzo

Tiempo

Sin Inspecciones

ConInspecciones

Entrega

Page 26: Calidad en el desarrollo de software

Inspecciones y Revisiones Técnicas

• Costos y Fallas con y sin revisiones:

Costos

Page 27: Calidad en el desarrollo de software

Inspecciones y Revisiones Técnicas

• Resultados obtenidos con y sin revisiones:

Proceso Construcción de

Software

Entra basura

Incrementa los costos por retrabajo y reprocesamiento

Sale basura

Disminuye la credibilidad

Proceso Construcción de

Software

Entran insumosDe calidad

Se reducen los costos

Salen productos de calidad

Incrementa la credibilidad

Page 28: Calidad en el desarrollo de software

Inspecciones y Revisiones Técnicas

• Modelo de referencia:

• Responsables:

• Equipo de QA de la documentación

• Equipo de QA del código / Catalogaciones

PlanificarSe conoce el

proyecto

No

Visión General

Si Preparación Realizar inspecciónSe encontraron

defectosNo

Validar estado

defectos

SiValidar y corregir

defectosClasificar defectos

Se requiere nueva

inspección

Generar reporte de

defectos por tipoNoGenerar MétricasFin

Si

Si

Page 29: Calidad en el desarrollo de software

Control Estadístico

• Objetivos:

• Detectar y clasificar los defectos del software.

• Rastrear cada defecto a su causa subyacente.

• Aislar las causas vitales de la fuente principal de todos los errores.

• Corregir los problemas que han causado los defectos.

17

8 9 10

6 79

16

7

10

14

86

8

16

11

5

11 12

9

0

5

10

15

20

25

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Datos Media LSC LIC

Page 30: Calidad en el desarrollo de software

Control Estadístico

• Método:

• Muestreo estadístico doble por atributos: Se evalúan y validan todos los

atributos de calidad del software basados en criterios de aceptación estadística.

Page 31: Calidad en el desarrollo de software

Estándares

Documentación ProgramaciónImplícitos

No Funcionales

Page 32: Calidad en el desarrollo de software

Calidad Proactiva

• Calidad Proactiva: La calidad es una acción proactiva donde todos los miembros del

equipo deben participar en forma proactiva en la prevención, detección de

oportunidades de mejora, solución de defectos y definición de planes de acción.

Acción Preventiva

Evaluar riesgos del proyectoDefinir planes de acción preventivaRevisiones técnicas, IQA’s y EQA’s

Determinar oportunidades de mejora

Page 33: Calidad en el desarrollo de software

Objetivos y Meta del Proceso

• Meta:

• Entregar productos de calidad que cumplan con los requerimientos funcionales

establecidos y no funcionales, dentro de los tiempos y costos estimados en cada proyecto,

reduciendo los costos asociados del re-trabajo mediante la implementación de controles

para el aseguramiento de la calidad progresiva en el proceso de desarrollo de software en

todos los proyectos y con un índice de CERO DEFECTOS.

Page 34: Calidad en el desarrollo de software

Objetivos y Meta del Proceso

• Objetivos:

• Entregar productos de calidad que cumplan con los requerimientos del cliente y requisitos

implícitos de calidad.

• Asegurar la participación activa del equipo en todas las actividades de aseguramiento de la

calidad.

• Realizar revisiones en todos los proyectos tanto de IQA como de EQA en forma objetiva.

• Reportar cualquier cambio solicitado de forma no oficial en los proyectos ya que esto

afecta la calidad.

• Llevar un control claro y conciso de los defectos generados en el software que permita

establecer oportunidades de mejora, controlar el tiempo invertido en re-trabajo y

gestionar el costo de la calidad.

Page 35: Calidad en el desarrollo de software