Вы находитесь на странице: 1из 40

Aseguramiento de calidad en software

SQA Software quality assurance


Introduccin al curso
Datos del profesor
MATI - ISC Ral Antonio Flores Blanco, PMP
Tel. cel. (614) 115 4405 (cel, whatsApp)
raul.flores.b@gmail.com (correo personal)
rfloresb@uach.mx (correo para otros asuntos)

Plataforma - FCA (tareas y comentarios de la clase)

Puesto y empleo actual: Gerente de desarrollo TGC

Experiencia
Gerente de desarrollo
Encargado de la oficina de proyectos
Miembro en equipos evaluadores CMMI v 1.3 N2 y N3
Encargado de procesos de mejora CMMI v 1.2 N2
Lder de proyectos de desarrollo y de consultora
Consultor de implementacin de aplicaciones ERP
Desarrollador de software

Iniciativa privada (manufactura, servicios)
Sector gobierno (estatal, recaudacin)
Consultora (implantacin de sistemas)
Desarrollo y mantenimiento de sistemas
Academia (UACH, ITESM)
Datos para plataforma FCA
https://fca.aulas.uach.mx/login/index.php
Curso: Aseguramiento de calidad
Password: 726201408

Avisos
Material de la clase
Tareas
Trabajos
Temario

Objetivos del curso
Proporcionar al alumno las habilidades para:
Evaluar la calidad de los proyectos de desarrollo de software.
Tomar decisiones encaminadas a la mejora continua del desarrollo de
software.
Tomar decisiones encaminadas a implementar acciones correctivas.

Conocer:
Introduccin a la aseguranza de calidad.
Rol de la aseguranza de calidad.
Formalizacin de actividades de aseguramiento de calidad.
Seguimiento y aprobacin de proyectos.
Administracin de subcontratistas.
Modelos relacionados de aseguramiento de calidad.
Objeto de estudio 1
Introduccin a la aseguranza de calidad.

Qu es aseguranza de calidad?
Importancia de asegurar la calidad en los proyectos de software.
Objetivos de la aseguranza de calidad.

Objeto de estudio 2
El rol de aseguranza de calidad.
Alcance y autoridad de las actividades de aseguranza de calidad.
Rol del asegurador de calidad en el departamento de TI.
Participacin del asegurador de calidad durante el desarrollo de
proyectos de software.


Objeto de estudio 3
Formalizacin de actividades de aseguramiento de calidad

Definicin y seguimiento, de procesos y procedimientos de
aseguranza de calidad
Reporte de resultados
Acciones correctivas en caso de desviaciones
Objeto de estudio 4
Seguimiento y aprobacin de proyectos

Revisiones y evaluaciones.
Aprobaciones previas a la implantacin de proyectos.
Mediciones.
Objeto de estudio 5
Administracin de subcontratistas

Diferencia entre contratista y subcontratista.
Definicin de requerimientos de calidad en subcontratistas.
Reclutamiento, seleccin y evaluacin de subcontratistas.
Seguimiento a subcontratistas.
Objeto de estudio 6
Modelos relacionados con la aseguranza de calidad en el
departamento de TI

CMMi
ISO (15504, 12207, TL9000)
MOPROSOFT
IEEE
Ponderacin de la evaluacin
Primer parcial 20%
Segundo parcial 20%

Propuesta de arquitectura de un sistema de calidad 10%
Propuesta de programa de mejora de desarrollo 10%
Documentacin procesos 10%


Examen final 30%
Objeto de estudio 1


Introduccin a la aseguranza de calidad.
Qu es el software?
Programas de computadoras
Procedimientos (instalacin, configuracin, operacin, actualizacin,
respaldo)
Documentacin (instalacin, configuracin, usuario final, tcnicos y
de interfaces)
Datos (configuracin, operacin)

IEEE
Programas de computadoras, procedimientos, documentacin y
datos probablemente asociados o relacionados con la operacin de
sistemas de computadoras.
Peculiaridades del desarrollo
Complejidad del producto
las maquinas mas avanzadas, pueden tener miles de variaciones en
modos de operacin. Un producto de software tpico puede tener
millones de configuraciones de operacin.
Visibilidad del producto
la mayor parte de los defectos de los productos son visibles, pero
muchos defectos de los productos de software son invisibles.
Proceso de desarrollo y produccin
Las fases de produccin brindan oportunidades para detectar y
corregir defectos. En la produccin del software el beneficio de
detectar y corregir errores se obtiene solo durante el desarrollo (o
mantenimiento).
Peculiaridades del ambiente de
trabajo
Condiciones contractuales
Presupuesto limitado
Tiempo limitado
Listados detallados de requerimientos
Sujeto a relacin cliente proveedor
Supervisin del cliente
Cooperacin del desarrollador con el cliente
Control de cambios
Requiere trabajo en equipo
Carga de trabajo alta por mantenimiento
Personal disponible limitado, a veces poco
capacitado
Alto nivel de especializacin
Cooperacin con otros equipos de proyectos
existentes
Cambios de miembros del equipo.

Coordinacin con otros equipos de desarrollo
Mltiples equipos en organizaciones
Equipos externos
Interfaces con otros sistemas
Mltiples interfaces con sistemas preexistentes
Continuacin de proyectos con alta rotacin de personal
Alta movilidad de personal
Alta especializacin
Duracin de los proyectos
Mantenimiento del sw por periodos largos de
tiempo
Consecuencias de las peculiaridades del software y de su
desarrollo
Los enfoque tradicionales de calidad aplicados a la produccin masiva de artculos FISICOS y
sencillos no funcionan para el desarrollo.
(por ser intangible y complejo no sirven los enfoques tradicionales de calidad)
Es imposible probar al 100% todas las combinaciones de posibilidades de operacin del SW.
(es imposible estar seguros que el software no tiene errores y no va a fallar)
Evaluar la calidad del software al final del proceso, cuando el producto est terminado es poco
efectivo y caro.
(no sirve solamente probar al final)
Los modelos estadsticos no pueden contar con muestras grandes para poder inferir
comportamientos.
(la duracin de los proyectos y la variabilidad de los procesos dificulta el control estadstico de
procesos con enfoques tradicionales)

Los ambientes de trabajo en el desarrollo a veces es catico y lleno de estrs.
Hay alta rotacin de personal.
Es muy costoso corregir errores al final del desarrollo o cuando el producto ya fue liberado al
cliente.

Manufactura Vs Desarrollo
Manufactura
Intensivas en maquinaria
Actividades repetitivas
Produccin masiva de productos

Desarrollo de software
Intensiva en personal
Actividad intelectual
Un solo producto desarrollado (por proyecto, en general)
Errores, defectos y fallas
Error de software
Es una incorreccin cometida por un desarrollador, al elaborar un elemento de software.
(documentacin, cdigo o cualquier otro elemento)
El error es causado por el desarrollador y existe en el software aun y cuando no se detecte.
Los errores se pueden prevenir capacitando a los desarrolladores y diseado mejor los productos de
desarrollo.

Defecto de software
Un comportamiento no deseado en el software, que dado un error y bajo ciertas condiciones, se
puede disparar.
Los defectos de software se detectan ANTES de liberar el producto al cliente durante el proceso de
desarrollo, por medio de revisiones personales, verificaciones inspecciones o validaciones con el
cliente.

Falla de software
Es un problema o comportamiento indeseado que se presenta a los usuarios cuando usan el
software DESPUES de liberar el producto.
Las fallas ocurren cuando al usuario se le presentaron las condiciones necesarias para activar el
defecto.

Causas de los errores
Definicin de requerimientos defectuosa.
Definicin incorrecta o incompleta de requerimientos.
Requerimientos claves no definidos.
Inclusin de requerimientos no necesarios.

Fallas de comunicacin cliente desarrollador.
Interpretacin incorrecta de instrucciones dadas por los clientes en los
requerimientos.
Interpretacin incorrecta de cambios solicitados de manera oral o escrita
por el cliente durante el desarrollo.
Interpretacin incorrecta de respuestas del cliente a los problemas de
diseo detectados durante el desarrollo.


Causas de los errores
Desviacin deliberada de los requerimientos
Mejoras introducidas por el desarrollador sin aprobacin del cliente.
Decisiones del desarrollador por recortar el alcance debido a presiones
de calendario o presupuesto.
Reutilizacin de componentes de proyectos anteriores sin un anlisis de
impacto adecuado.

Errores lgicos en el diseo
Algoritmos equivocados.
Errores de secuencias de pasos en procesos.
Errores de definicin en condiciones de lmite.
Omisin de estados de operacin necesarios.
Omisin de validaciones contra operaciones ilegales en el sistema.

Causas de los errores
Errores de programacin.

Falta de apego con estndares de documentacin y codificacin
Errores por dificultad en la comprensin de cdigo desarrollado por otros
integrantes otros equipos.
Errores por dificultad en la comprensin de cdigo desarrollado por
miembros que ya no forman parte del equipo
Dificultad para entender el cdigo cuando se hacen verificaciones de
cdigo.
Dificultad para probar los mdulos desarrollados.
Dificultad para dar mantenimiento cuando se presentan fallas reportadas
por el cliente.




Causas de los errores
Proceso de pruebas incompleto
Porciones de cdigo o mdulos no probados debido a planes de pruebas
incompletos.
Errores por no reportar adecuadamente los errores y defectos
encontrados.
Errores por no corregir adecuadamente los defectos debido a una mala
definicin de la causa.
Correccin incompleta de defectos debido a negligencia o falta de
tiempo.

Errores de usuario en interfaces o procesos

Errores de documentacin


Enfoques para lograr la calidad en el desarrollo de software
Enfoque Qu busca? Consecuencias
Corregir fallas Corregir lo errores que el usuario reporta cuando usa el producto que ya
fue liberado.

Implementacin de sistemas de atencin a llamadas de soporte.
Implementacin de sistemas de registro y seguimiento de fallas
reportadas.
Costoso , mucho trabajo.
Producto inestable y propenso fallar.
Insatisfaccin del cliente.

Malos resultados
Corregir defectos Corregir los errores que el equipo de desarrollo y el cliente detectan antes
de que el producto sea liberado. (Los defectos son detectados por
personas o grupos diferentes a quien gener el error).

Planear e implementar una estrategia de deteccin y correccin de
defectos.
Implementar procesos que faciliten la deteccin y correccin de
defectos.
Se requiere personal y esfuerzo destinado a detectar los
errores.
Costoso por el esfuerzo invertido para detectar y corregir
los errores detectados.

Resultados regulares.
Corregir errores Detectar y corregir los errores antes de que el entregable se de por
terminado. (Los errores son detectados y corregidos por la misma
persona que realiza el trabajo).

Realizar actividades de auto verificacin y correccin de errores.
Mtodos y tcnicas apropiadas.
Se requiere capacitar al personal en tnicas adecuadas.

Mejores resultados.
Menos costoso,
Prevenir errores Enfoque sistemtico de aseguramiento de calidad.
Implementar un sistema de calidad.
Cuidar los procesos.
Buscar y corregir las causas raz de los errores.
El mejor enfoque a la larga.
Calidad
El grado en que un sistema, componente o proceso cumple con los
requerimientos especificados. (Philip B. Crosby)

El grado en que un sistema, componente o proceso cumple las
necesidades o expectativas de las necesidades de los clientes o
usuarios. (Joseph M. Juran)

La calidad significa conformidad con los requerimientos.

La calidad consiste en esas caractersticas del producto que cumplen
las necesidades de los clientes y que por eso proporcionan satisfaccin.

La calidad consiste en la libertad de deficiencias

Calidad de software - Pressman
Cumplimiento de los requerimientos funcionales y de desempeo
explcitamente definidos, procesos documentados y caractersticas implcitas
que son esperadas para cualquier software profesionalmente desarrollado.

Los requerimientos del software son la base de las medidas de calidad. La falta de
concordancia del producto con los requerimientos establecidos es una falta de calidad.

Los estndares especificados definen un conjunto de criterios que guan la forma en que
el software se elabora. Si no se siguen es una falta de calidad.

Los criterios implcitos si no se cumplen, se pone en duda la calidad del producto.
Control de calidad
Actividades encaminadas a evaluar un producto desarrollado
o construido.

Busca evitar que productos defectuosos sean entregados al
cliente.
Repaso de Gurs de
calidad
Repaso de Gurs de calidad aplicados al desarrollo
En Estados Unidos los tres mas importantes son: Deming, Juran y Crosby.

Hasta que la alta direccin se involucra permanentemente en los esfuerzos por
mejorar la calidad NADA PASAR.
Se requiere un compromiso hacia la calidad de todos los participantes.
Gerentes
Desarrolladores
Enfocarse a arreglar procesos y no a corregir personas.
Desmenuza los procesos para detectar bloqueadores de la calidad y
eliminarlos.
Identifica al cliente (interno o externo). Satisface los requisitos o requerimientos
de los clientes.
Elimina los desperdicios.
Fomenta trabajo en equipo y la pertenencia de los integrantes


W. Edwards Demming
Mtodos estadsticos para lograr control de calidad.
Modelo Plan Do Check Act para implementar programas de
mejora.

I Initiating
D Diagnosing
E Establishing
A Acting
L Learning

14 puntos para la calidad.


Joseph M. Juran
Tres caminos para lograr el reto de la calidad.
Mejoras estructuradas anuales.
Programas masivos orientados a calidad.
Liderazgo de la alta Direccin.

Recomendaciones para lograr mejoras anuales. Un equipo deber:
Estudiar los sntomas de los defectos y las fallas.
Desarrollar una teora de la causa de las fallas.
Probar la teora de la causa.
Estimular la correccin por los departamentos apropiados.

Causa de los errores (causados por la administracin / el trabajador).
El trabajador sabe lo que debe hacer.
El trabajador conoce el resultado de su trabajo.
El trabajador tiene medios para controlar los resultados
Kaoru Ishikawa
Seis factores para la calidad.
Calidad en toda la organizacin.
Auditorias de calidad por los directivos.
Educacin y entrenamiento para todos en la compaa.
Actividad de crculos de calidad
Aplicacin de mtodos estadsticos (7 herramientas)
Promocin de actividades de calidad
Dr. Yoji Akao y Dr. Tadashi
Yoshizawa
House of quality (Quality Function deployment).

Uso de una matriz para relacionar (mapear) requerimientos con especificaciones del producto.
Se priorizan y cuantifican los requerimientos.

Satisfacer todos los requerimientos del cliente.
Requerimientos que puede expresar.
Requerimientos que da por hechos.
Requerimientos que el desarrollador puede anticipar.

Mejora comunicacin con el cliente.
Identifica factores crticos de xito.
Rastreo de requerimientos.
Prioriza funciones y caractersticas.
Proporciona una base objetiva para reducir calendario si se requiere.

Se deben implementar mtodos mejores para identificar requerimientos.


Genishi Taguchi
Variabilidad reducida en procesos y productos.


Shigeo Shingo
Zero Quality Control (Zero QC)
Inspeccin de la fuente.
Poka-yoke.

Diagrama de procesos del desarrollo.
Listas de verificacin de actividades.
Inspecciones.
Concepto de cliente interno y externo.
Philip Crosby / Watts Humphrey
Conceptos de implementacin de programas de calidad y CMMI.
La aseguranza de calidad - IEEE
Conjunto de acciones sistemticas y planeadas necesarias para proveer
confianza adecuada de que el desarrollo y mantenimiento del software
cumplen con los requerimientos tcnicos y funcionales establecidos, as
como con los requerimientos administrativos de cumplimiento de
calendarios y apego a presupuestos.

SQA se trata de planear y aplicar una variedad de acciones.
Estas acciones se integran a lo largo del proceso de desarrollo y
mantenimiento.
Se llevan a cabo para sustentar la confianza de que el producto cumplir
con los requerimientos tcnicos y funcionales
Tambin da confianza sobre el apego de los procesos a los estndares
establecidos

Programa de calidad
Para lograr que el desarrollo de software se realice con calidad se
requiere un enfoque que tome en cuenta conjuntamente los siguientes
factores:

Estrategia de negocio.
Estructura organizacional.
Personal y talento disponible.
Tcnicas utilizadas.
Procesos que se siguen.
Recursos requeridos para desarrollar.
Producto desarrollado.

Programa de calidad
Un programa que incorpora 3 elementos:
Establecer los requerimientos: Establecer y especificar los
requerimientos para la calidad de un producto.
Establecer y controlar los mtodos: Establecer mtodos,
procesos y procedimientos para desarrollar, operar, desplegar y
mantener el producto.
Evaluar la calidad: Establecer y mantener mtodos, procesos y
procedimientos para evaluar la calidad del producto y de los sub
productos, documentos, procesos o actividades que impactan la
calidad del producto.
Fin