Documente Academic
Documente Profesional
Documente Cultură
1
Objetivo de la Clase:
2
Agenda
Aseguramiento y Control de Calidad de SW
Calidad de Software
3
¿Porque es importante asegurar la calidad del software?
6
¿Porque es importante asegurar la calidad del software?
8
¿Porque es importante asegurar la calidad del software?
9
¿Porque es importante asegurar la calidad del software?
Ariane5,CoheteEuropeo
http://www.ima.umn.edu/~arnold/disasters/ariane.html
10
¿Porque es importante asegurar la calidad del software?
11
¿Porque es importante asegurar la calidad del software?
13
¿Porque es importante asegurar la calidad del software?
14
¿Porque es importante asegurar la calidad del software?
15
¿Porque es importante asegurar la calidad del software?
16
¿Porque es importante asegurar la calidad del software?
Diagnóstico: Problema de un
programa de computación que
maneja los controles de los frenos
antibloqueo.
17
¿Porque es importante asegurar la calidad del software?
Fuente: 24Feb.2011
http://peru21.pe/noticia/718504/toyota-
retira17-mllns-vehiculos
18
¿Porque es importante asegurar la calidad del software?
Año 2006
Desde un inicio la presentación de WV generó imagen
negativa en la audiencia mundial. Las ventas caen.
Los usuarios prefieren Windows XP.
Año 2009
Grave problema con la pantalla de WV, que hace la
laptop inutilizable
http://www.enriquedans.com/2012/11/esta-microsoft-dandose-el-bofeton-del-siglo-con-windows-8.html
http://www.theguardian.com/technology/blog/2012/nov/09/microsoft-surface-cover-flaw
http://www.theverge.com/2012/11/18/3660974/htc-8x-lumia-920-reboot-freezing-battery-issues
19
¿Porque es importante asegurar la calidad del software?
Therac–25
http://courses.cs.vt.edu/%7Ecs3604/lib/Therac_25/Therac_1.html
20
¿Porque es necesario asegurar la calidad del software ?
http://www.puntal.com.ar/notiPortal.php?id=23052
22
¿Porque es importante asegurar la calidad del software?
23
¿Porque es importante asegurar la calidad del software?
http://peru21.pe/noticia/371483/alegan-falla-tecnica-bajon-notas-prueba-
docente
24
¿Porque es importante asegurar la calidad del software?
25
¿Porque es importante asegurar la calidad del software?
Protección a los Consumidores: Fallos de Software y castigo por responsabilidad de los Desarrolladores
https://www.enriquedans.com/2009/05/los-fallos-del-software-y-la-responsabilidad-de-quien-lo-creo.html
¿Porque es importante asegurar la calidad del software?
Tarea 1:
Entrar a la pagina Web indicada, participe en clase explicando 02 de las 60 fallas de sistemas
informáticos mencionadas aquí, y que les haya impactado mas (ocasionados por errores de
software):
http://www.softwareqatest.com/qatfaq1.html
27
¿Porque es importante asegurar la calidad del software?
Consecuencias:
• Baja Calidad
• Baja Productividad
29
¿Porque es importante asegurar la calidad del software?
30
¿Porque es importante asegurar la calidad del software?
LA CRISIS DEL SOFTWARE
Problemática
System Life Cycle Phases
1. Wild enthusiasm
2. Disillusionment
3. Total confusion
4. Search for the guilty
5. Punishment of the innocent
6. Promotion of nonparticipants
Source: High Tech joke Book, Oak Ridge Public Relations, Inc.
Fuentes:
•Barrh Boehm, Software Engineering Economics, Prentice-Hall 1981
•National Institute of Standards & Technology, United States Department of Commerce,
"The Economic Impacts of Inadequate Infrastructure for Software Testing", May 2002
32
¿Porque es importante asegurar la calidad del software?
PROBLEMÁTICA
Brecha de Comunicación (Scharer’90)
33
¿Porque es importante asegurar la calidad del software?
PROBLEMÁTICA
Incumplimiento de Normas de Calidad Ejemplo: Perú
Leyenda:
El 18.3 % cumplió,
El 71.6% no lo efectuó,
El 10.1% no responde
Fuente:
Encuesta del INEI a
2,204 Entidades del
Estado. Publicado el
2012.
34
Conceptos y Terminologías
35
Conceptos y Terminologías
Error (error):
• Es una equivocación cometida por
un desarrollador. Algunos ejemplos de
errores son: un error de tipeo, una
malinterpretación de un requerimiento o
de la funcionalidad de un método.
• El estándar 829 de la IEEE coincide con
la definición de diccionario de error como
“una idea falsa o equivocada”. Por ende un
programa no puede tener o estar en un
error, ya que los programas no tienen ideas;
las ideas las tienen la gente.
36
Conceptos y Terminologías
Relación entre Error, Defecto y Fallo
37
Conceptos y Terminologías
Relación entre Error, Defecto y Fallo
Fallo (failure) :
• Un resultado incorrecto.
• En terminología IEEE, una falla es la discrepancia
visible que se produce al ejecutar un programa con un
defecto, respecto a la ejecución del programa correcto.
• Es decir, una falla es el síntoma de un defecto.
• La terminación dela capacidad de un producto de
realizar una función requerida o su incapacidad para
realizarla dentro de límites previamente especificados.
ISO 9126.
40
¿Qué es Calidad? …
Hyunday Terracan
Lamborghini Gallardo
Volkswagen Escarabajo
41
¿Qué es Calidad? …
Calidad es:
42
¿Qué es Calidad? …
43
¿Qué es Calidad? …
Referentes de la Calidad
Autor Aporte
Walter Shewhart Ciclo de Shewart (PDCA): "El proceso metodológico básico para asegurar las actividades
fundamentales de mejora y mantenimiento: Plan-Do-Check-Act (mejora continua)
y el control estadístico de procesos
Edward Deming Catorce principios para la dirección: Qué se debe contemplar para la dirección de la
organización.
Joseph Juran Trilogía de Jurán: "(1) La planificación de la calidad, (2) Control de la calidad y (3) Mejora
de la calidad, son los instrumentos de la Dirección en la gestión de la calidad"
Kaoru Ishikawa Círculos de Calidad: "Grupos de voluntarios, estables en el tiempo que tienen como
objetivo mejorar la calidad de los procesos y el entorno de trabajo".
Creador de Diagramas de Ishikawa causa-efecto.
Taiichi Ohno Just In Time JIT: "Sistema de gestión de producción que permite entregar al cliente el
producto con la calidad exigida, en la cantidad precisa y el momento exacto"
Genichi Taguchi Ingeniería de la Calidad: "Métodos para el diseño y desarrollo de los procesos de
industrialización con el máximo de eficiencia"
Kiyoshi Suzaki Gestión Visual: "Es un sistema que propone que la información necesaria está al alcance de
las personas que la usan para su trabajo"
44
¿Qué es Calidad? …
Definiendo la Calidad
DOS PUNTOS DE VISTA DE LA CALIDAD:
45
¿Qué es Calidad? …
Definiendo la Calidad
DOS PUNTOS DE VISTA DE LA CALIDAD:
47
¿Qué es Calidad? …
Definiendo la Calidad
IEEE
“El grado con el cual un sistema, componente o
proceso satisface las expectativas del usuario o
cliente .
Kaoru Ishikawa
“Calidad de un producto significa que éste es el
más económico, el más útil y siempre satisfactorio
para el consumidor”
Crosby
Cero defectos.
48
¿Qué es Calidad? …
Definiendo la Calidad
Walt Disney
“I do not worry whether something is cheap or
expensive. I only worry if it is good. If it is good
enough, the public will pay you back for it”
----
49
¿Qué es Calidad? …
Enfoques de Calidad
50
¿Qué es Calidad? …
Definiendo la Calidad
Drucker
Un buen producto no es el que cumple con una
determinada especificación, sino es el que es bien
recibido por el cliente.
Calidad de Software
51
¿Qué es Calidad? …
Definiendo la Calidad
Calidad de Software
52
CULTURA DE CALIDAD
¿Cuál es nivel de cultura de calidad de las organizaciones TI?
Respuestas o frases comunes que denotan el nivel de cultura actual
de la calidad en muchas organizaciones de TI:
53
CULTURA DE CALIDAD
Ejercicio Tarea 3: Próxima clase
54
CALIDAD DEL SOFTWARE
02 puntos de vistas para definir la Calidad del Software:
Calidad de Software
55
CALIDAD DE SOFTWARE
La ISO/IEC 25000 son normas basadas en la ISO/IEC 9126 y en ISO/IEC 14598 cuyo objetivo principal
es guiar el desarrollo de los productos de software mediante la especificación de requisitos y
evaluación de características de calidad.
56
CALIDAD DEL SOFTWARE
Sin embargo, la calidad es un término subjetivo, dependerá
de quien es el “Cliente” y de su influencia global en el
contexto de las cosas. Una vista amplia de los “clientes” de
un proyecto de desarrollo de software, puede incluir: los
usuarios finales, probadores de aceptación usuaria, los
gestores del cliente, los testeadores, vendedores de la
organización, etc. Cada tipo de “Cliente" tendrán su propio
punto de vista.
La Calidad del Software es, “disponer de un software
razonablemente libre de errores, entregado a tiempo y dentro
del presupuesto, cumpliendo con los requisitos y/o
expectativas, y ser fácil de mantener.”
Mas allá de como se defina la calidad del software, para que
la definición tenga sentido esta debe ser medible (Tom De
Marco: “No se puede controlar lo que no se mide”).
Calidad de Software
57
EVOLUCION DE LA CALIDAD EN LAS ORGANIZACIONES
1. Énfasis en los Productos:
Calidad como cumplimiento de las
especificaciones
Control de Calidad como inspección o
pruebas.
3. Calidad Total
Calidad como satisfacción del cliente
Calidad total de productos y servicios
Control total de la calidad como una
forma de Administrar una Organización
Calidad de Software
58
EVOLUCION DE LA CALIDAD EN ORGANIZACIONES
59
CONTROL DE CALIDAD (QC)
Orientada al cumplimiento de los requisitos de la
calidad por un producto o servicio realizado.
(NTP-ISO 9000 Sistemas de Gestión de la Calidad.
Fundamentos y Vocabulario).
60
ASEGURAMIENTO DE LA CALIDAD (QA)
Calidad de Software
61
ASEGURAMIENTO DE LA CALIDAD (QA)
Calidad de Software
62
GESTION Y PLANIFICACIÓN DE CALIDAD
64
Gestión de la Calidad en Proyectos
de Software
Debe partir de la Política de Calidad de la
organización o por iniciativa de la Gerencia de TI
alineado a la estrategia de la organización.
Establecer un marco de proceso y estándares de la
organización que conduzcan a obtener software de
mejor calidad.
Establecer el Plan de Aseguramiento de Calidad del
Software del Proyecto (SQAP).
Si en la organización ya existe un Sistema de Calidad,
el SQAP deberá ser coherente con el mismo.
Asegurar que los productos a obtener y la ejecución
de los procesos para su obtención, estén en
conformidad con los planes, procedimientos y
estándares establecidos. 65
Aseguramiento de Calidad del Software (SQA)
Calidad de Software
66
Aseguramiento de Calidad del Software (SQA)
Calidad de Software
67
Aseguramiento y Control de la Calidad en el RUP
Actividades del SQA
Analizando el diagrama, se aprecia que el esfuerzo de cada disciplina varía
según la fase del proyecto. Se incorporan nuevas actividades de SQA para
controlar la calidad de cada disciplina, cuando mayor esfuerzo se le dedica.
Fases
planificadas
68
Aseguramiento de calidad del Software (SQA)
69
Aseguramiento de Calidad del Software - SQA
engloba:
1. Métodos y técnicas de análisis, diseño, codificación y
prueba.
2. Revisiones, son técnicas formales que se aplican durante
cada fase del proceso de desarrollo de software.
3. Estrategias y plan de prueba a diversas escalas.
4. Control de los entregables (documentación) del software y
de los cambios realizados, mediante tecnicas de
verificación / validación.
5. Reportes de control de incidencias detectados por QA con
evidencias, aplicación de técnicas de pruebas con casos
de prueba.
6. Un procedimiento que asegure, siempre que sea posible,
un ajuste a los estándares de desarrollo del software.
Calidad de Software
70
Comparación QA y QC del SW
Verificación
Validación
Revisión
Auditoria
(*) Revisar: NTP-ISO/IEC 12207: 2006 Procesos de Apoyo a los Procesos de Software
(*) Revisar: ISO/IEC 12207:2008 Procesos Específicos de Software. Revisar SWEBOK
Técnicas de Aseguramiento y Control de
Calidad de Software
Verificación Validación
• La verificación evalúa • La validación evalúa el
documentos, planes, producto mismo
código, requerimientos y (módulos o al producto
especificaciones integral)
Ejemplo: Evalúa la efectividad de la gestión de los riesgos, del análisis de los requerimientos,
la conformidad del código, la eficacia del software conforme a los requerimientos. Se enfoca
en el éxito o fracaso, así como en la atención de la causas raíz. El resultado de la Auditoria
siempre estará documentado conforme este progresa. Una herramienta que usa la Auditoria
es la Revisión.
Verification Validation
• Verification evaluates • Validation evaluatesthe
V eri
docum en
fic ation
ts, plans, code,
and
Vali dation?
product its
requirements, and
elf.
specifications
• Involves the execution of
tests designed to cover each
• For example, of the specific system
• Inconsistent Requirements requirements
• Design Walkthroughs
• Code Inspections
Practicas de SQA
Design
83
Aseguramiento y Control de la Calidad del SW - SQA
Resumiendo:
Tiene su foco de atención sobre los procesos.
El rol del aseguramiento de calidad es:
• Gestionar la calidad
• Monitorear y mejorar los procesos (actividades) de
desarrollo.
• Establecer el control de calidad o Testing a realizar,
planificando y evaluando su realización
SQA utiliza los resultados del control de calidad para
mejorar los procesos. Es una actividad “Preventiva”.
Tarea 5: Identifique 4 beneficios obtenidos en Proyectos
con el SQA
Calidad de Software
84
Aseguramiento de Calidad y el Proceso de Testing
85
Aseguramiento de Calidad y el Proceso de Testing
88
AREA de SQA - en la organización de TI
• Muchas organizaciones han creado Áreas de SQA debido a
su necesidad de independencia y con el fin de disponer de un
nivel de servicio que garantice calidad.
• Otras constituyen Grupos SQA fuera del Departamento de
Desarrollo, para mayor transparencia.
• Estas personas (SQA) actúan como representantes interno
del Cliente (es su misión).
• Es responsabilidad del área o grupo SQA ayudar a lograr una
alta calidad en los programas o aplicaciones de software
determinadas (¿lo entienden los desarrolladores?).
• Este grupo tiene una serie de funciones (ver diagrama Vista
General de SQA y ejemplo de Organigrama de TI.
Calidad de Software
89
Vista general QC, QA, MPS
ACA AQA AMP
QA Mejora
Procesos
Evaluar la
Proyecto Proyecto Proyecto
Calidad
SW 1 SW 2 SW N
Proceso Producto
Calidad de Software
90
ÁREA de SQA - en la Organización de TI
Ejemplo Organización con SQA
Calidad de Software
91
Procesos
Procesos
de
de calidad
Calidad
Requeri-
Requeri-
Métricas
Métricas mientos
mentos
Reportes
Reportes Cambios
Cambios
SQA
Pruebas Planes
Planes
Riesgos Desvia-
Riesgos
ciones
Entrega-
bles
Calidad de Software
92
Participación en Aseguramiento de Calidad
Jefe de
Sistemas
10%
Gestor de
SQA
proyecto
100%
30%
Analistas
15%
Calidad de Software
93
Gestión de la Calidad
Calidad de Software
94
QUE LOGRAMOS CON LAS MEJORAS
tiempo,costos,alcance
Tiempo de lo que estimamos
Tiempo de lo real
Calidad de Software
95
Clave del éxito:
Ningún modelo de mejora tiene
éxito si no se implementa
correctamente
Implementador
Calidad de Software
96
Calidad de Software
97
Calidad de Software
98
Calidad de Software
99
MISCELANEOS
Calidad de Software
100
¿Dónde se encuentra el error?
“Programa en Clipper”
If A > 1 && A < 5 Then
Sentencia 1
..
Sentencia N
Calidad de Software
101
¿Dónde se encuentra el error?
Calidad de Software
102
¿Dónde se encuentra el error?
Calidad de Software
103
¿Dónde se encuentra el error?
Ambigüedad
104
¿Dónde se encuentra el error?
Calidad de Software
105
¿Dónde se encuentra el error?
Calidad de Software
106
PREGUNTAS
Calidad de Software
107
PROYECTO DEL CURSO
Grupos de 2 o 3 alumnos
• Tomando como base un proyecto de desarrollo de
Sistemas de Información especifico, elaborar los
siguientes entregables:
El Perfil del Proyecto (Project Charter)
El Plan de Aseguramiento de Calidad (SQAP)
Calidad de Software
108
PROYECTO DEL CURSO
Establecer Grupos de Trabajo
Premisas a considerar:
• Considerar que las actividades de SQA o Testing serán asumidas por una
Emp. de Servicio o por el Área de SQA interna.
• Las normas o modelos de calidad a usar, serán las establecidas por la
organización (dueña del proyecto) o en todo caso por los responsables del
proyectos: (NTP/ISO, ISO´s, IEEE, o CMMI).
• La metodología de desarrollo es una exigencia de calidad y estándar.
Podrían usar: Métrica, RUP, SDLC, Agiles (XP, SCRUM, KANBAN),
cumpliendo los requisitos del modelo de calidad de procesos a usar.
• Los entregables del sistema deberán ajustarse o corresponder a las
normas y estándares establecidas y metodología de desarrollo.
• El Plan de Aseguramiento de Calidad (SQAP) incluirá: el Plan de
Verificación & Validación, el Plan Maestro de Pruebas y las Revisiones de
los Requerimientos Usuarios, las Especificaciones y el Diseño.
• Perfil del Proyecto incluirá: el Problema, los Requerimientos, el Alcance del
Proyecto, los Entregables a obtener por Fase o Iteración, el nivel de
conformidad de cada fase o iteración, el cronograma general del proyecto,
equipo responsable, plataforma y herramientas de desarrollo.
Calidad de Software
La 3