View
281
Download
0
Category
Preview:
Citation preview
UNIVERSIDAD DE LAS FUERZAS ARMADAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN
CARRERA DE INGENIERÍA EN SISTEMAS E INFORMÁTICA
Ing. Mauricio Campaña Ortega MsC. CCNA. CCIA.
INGENIERÍA DE SOFTWARE II
CALIDAD DEL SOFTWARE La integridad de un producto de software depende
de la acción combinada de tres tipos de disciplinas:
Desarrollo
Gestión
Control
Dentro de las disciplinas de control se encuentra la Garantía de Calidad del Software, cuyo objetivo es asegurar un cierto nivel de calidad en el producto de software desarrollado.
OBJETIVOS Al finalizar esta unidad estará en capacidad de:
Comprender el significado de la terminología utilizada.
Ser capaz de caracterizar la calidad de un producto de software en
términos de un modelo de calidad.
Comprender en que consiste la Garantía de Calidad en un proyecto
de desarrollo de software.
Conocer las consideraciones que se debe tener en cuenta a la hora
de construir un Sistema de Garantía de Calidad.
Ser capaz de participar en una revisión o auditoría.
Ser consciente de las medidas que puede tomar para construir
productos de mayor calidad.
Conocer los principales métodos de evaluación del proceso de
desarrollo de software.
Conocer los principales modelos para la mejora del proceso de
desarrollo de software.
CALIDAD DE PROCESO
CALIDAD DE PROCESO
Conjunto de actividades, métodos, prácticas y transformaciones que la gente usa para desarrollar y mantener software y los productos de trabajo asociados (planes de proyecto, diseño de documentos, código, pruebas y manuales de usuario)”
“Proceso o conjunto de procesos usados por una organización o proyecto, para planificar, gestionar, ejecutar, monitorizar, controlar y mejorar sus actividades software relacionadas”
CALIDAD DEL PRODUCTO DE SOFTWARE
La calidad del producto de software se diferencia de la calidad de otros productos de fabricación industrial, ya que el software tiene ciertas características especiales:
El software es un producto mental, no restringido por las leyes de la física o por los límites de los proceso de fabricación. Es algo abstracto y su calidad también lo es.
Se desarrolla, no se fabrica. El coste esta fundamentalmente en el proceso de diseño, no en la producción. Y los errores se introducen también en el diseño no en la producción.
El software no se deteriora con el tiempo. No es susceptible a los efectos del entorno, y su curva de fallos es muy diferente de la del hardware. Todos los problemas que surjan durante el mantenimiento estaban allí desde el principio y afectan a todas las copias del mismo; no se generan nuevos errores.
Es artesanal en gran medida. El software en su mayoría se construye a medida, en vez de ser construido ensamblando componentes existentes y ya probados, lo que dificulta aún más el control de su calidad. Aunque se ha escrito mucho sobre reutilización de software, hasta ahora se han conseguido pocos éxitos tangibles.
CALIDAD DEL PRODUCTO DE SOFTWARE
El mantenimiento del software es mucho más complejo que el
mantenimiento del hardware. Cuando un componente de hardware se
deteriora se sustituye por una pieza de repuesto, pero cada fallo en el
software implica un error en el diseño o en el proceso mediante el cual
se tradujo el diseño en código máquina ejecutable.
Es engañosamente fácil realizar cambios sobre un producto software,
pero los efectos de estos cambios se pueden propagar de forma
explosiva e incontrolada.
Como disciplina, el desarrollo de software es aún muy joven, por lo que
las técnicas de las que se disponen aún no son totalmente efectivas o no
están totalmente calibradas.
El software con errores no se rechaza. Se asume que es inevitable que el
software presenta errores.
PROBLEMAS DE LA CALIDAD DEL PRODUCTO DE SOFTWARE
Los principales problemas a los que se enfrenta al hablar de la calidad del
producto de software son:
La definición misma de la calidad del software: ¿Es realmente posible
encontrar un conjunto de propiedades en un producto software que de
una indicación de calidad? Para dar respuesta a esta pregunta aparecen
los Modelos de Calidad.
Modelos de Calidad: La calidad de define de forma jerárquica. Resuelven la
complejidad mediante la descomposición. La calidad es un concepto que se deriva
de un conjunto de subconceptos.
La comprobación de la calidad del software: ¿Cómo medir el grado de
calidad de un producto de software? Aparece el concepto de Control de
Calidad.
Control de Calidad: Actividades para evaluar la calidad de los productos
desarrollados.
PROBLEMAS DE LA CALIDAD DEL PRODUCTO DE SOFTWARE
La mejora de la Calidad del Software: Cómo utilizar la información
disponible acerca de la calidad del producto de software para mejorar
su calidad a lo largo del ciclo de vida? No solo es posible “medir” la
calidad, sino también “construir” la calidad durante el proceso de
desarrollo del producto. Aparecen dos conceptos importantes:
Gestión de Calidad: Determinación y Aplicación de las políticas de
calidad de la empresa (objetivos y directrices generales)
Garantía o Aseguramiento de Calidad: Conjunto de Actividades
planificadas y sistemáticas necesaria para proporcionar confianza en
que el producto software satisfacerla los requisitos dados de calidad.
DEFINICIÓN DE CALIDAD
Calidad es “Conformidad con los requisitos y confianza en el funcionamiento” Deming.
“Adecuación para su uso”. Jurán
“Hacerlo bien a la primera” o sea poner más énfasis en la prevención. Crosby
Definiciones de calidad extraídos de estándares internacionales
“La calidad es la suma de todos aspectos o características de un producto o servicio que influye en su capacidad para satisfacer las necesidades, expresadas o implícitas”. ISO 8402.
“Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas”. IEE 729-83.
“Capacidad del producto software para satisfacer los requisitos establecidos”. DoD 2168.
DEFINICIÓN DE CALIDAD
La calidad es algo relativo, depende de los requisitos o necesidades que
se desea satisfacer.
En un producto de software se tendrán tres visiones de la calidad:
Necesaria o requerida: La que quiere el cliente.
Programada o Especificada: La que se ha especificado explícitamente y
se intenta conseguir.
Realizada: la que se ha conseguido.
A la intersección entre la Calidad Requerida y la Calidad Realizada se
llama Calidad Percibida y es la única que el cliente valora. Toda aquella
calidad que se realiza pero no se necesita es un gasto inútil de tiempo y
dinero.
TERMINOLOGÍA BÁSICA
ERROR: como una incorrección cometida por un humano
durante el proceso de desarrollo.
DEFECTO: es la consecuencia de un error. Así por ejemplo , si
una función tiene el objetivo de sumar 10 al valor que recibe
como entrada, y en realidad está sumando 20, eso es un defecto
debido al error del programador que escribió 20 en lugar de 10.
también se llama DEFECTO a una desviación en el valor
esperado para una cierta característica. Los defectos no tienen
porque afectar al funcionamiento del objeto defectuoso. Un
programa poco mantenible, por ejemplo, puede ser totalmente
correcto.
FALLO (failure): la manifestación de un defecto en el software.
Por ejemplo cuando a la función anterior se le da como entrada
el valor 10 y la salida que se obtiene es 30 en lugar de 20 que es
el valor esperado.
TERMINOLOGÍA BÁSICA
FALLAS (fault): son los defectos que aún no han sido detectados y eliminados cuando comienzan las pruebas. Algunas de estas fallas se convierten en fallos si se detectan durante las pruebas o el uso del sistema.
INCIDENTE o INCIDENCIA: a una situación en la que se produce y se informa de un comportamiento no esperado en el sistema. Una incidencia puede venir provocada por un defecto o no.
Estructura de los modelos de calidad En los modelos de calidad, la calidad se define de forma jerárquico. Es un
concepto que se deriva de un conjunto de subconjuntos cada uno de los cuales se
va a evaluar a través de un conjunto de indicadores o métricas. Tienen una
estructura de tres niveles:
Representan la calidad desde el punto de vista del usuario,
son las características que componen la calidad, también
se los conoce como Atributos de Calidad Externos.
Cada uno de los factores se descompone en un conjunto
de CRITERIOS de calidad, representan una visión de la
calidad desde el punto de vista del productos del software,
conocidos como Atributos de Calidad Internos.
Calidad del Software
Factores de Calidad
Criterios de Calidad del
Producto
Métricas del Producto
Son medidas cuantitativas de ciertas características del
producto que cuando están presentes dan una indicación
del grado en que dicho producto posee un determinado
atributo de calidad.
Modelos de Calidad La ventaja de los Modelos de Calidad, está en que la misma se convierte en algo
concreto, que se puede definir, que se puede medir y sobre todo se puede
planificar.
Una desventaja es que aun no se ha demostrado su validez absoluta, las
conexiones que se establecen entre características, atributos y métricas se
derivan de la experiencia y de ahí que existan múltiples modelos.
MC CALL
MÉTODO GQM
BOEHM
ISO 9126
FURPS
Organiza los factores en tres ejes o puntos de vista desde los cuales el usuario puede contemplar la calidad del producto:
Operación del Producto.
Revisión del Producto.
Transición del Producto
El Modelo McCall se basa en 11 factores de calidad, que se organizan en torno a los tres ejes de la siguiente forma:
ATRIBUTOS DEL MODELO DE Mc CALL
PUNTO DE VISTA FACTORES
Operación del Producto Facilidad de Uso
Integridad
Corrección
Fiabilidad
Eficiencia
Revisión del Producto Facilidad de Mantenimiento
Facilidad de Prueba
Flexibilidad
Transición del Producto Facilidad de reutilización
Interoperabilidad
Portabilidad
FACILIDAD DE MANTENIMIENTO
(¿Puedo arreglarlo?)
FACILIDAD DE PRUEBA
(¿Puedo probarlo?)
FLEXIBILIDAD
(¿Puedo modificarlo?)
ATRIBUTOS DEL MODELO DE Mc CALL
OPERACIÓN
INTEROPERABILIDAD
(¿Puedo comunicarlo con otro sistema?)
PORTABILIDAD
(¿Podré utilizarlo en otra máquina?)
REUSABILIDAD
(¿Podré utilizar parte del software?)
CORRECCIÓN (¿Hace el software lo que yo quiero?)
FIABILIDAD (¿Lo hace de forma exacta todo el tiempo?)
EFICIENCIA (¿Se ejecutará sobre mi hardware lo mejor posible?)
INTEGRIDAD (¿Es seguro?)
FACILIDAD DE USO (¿Puedo ejecutarlo?)
Los factores de McCall desde el punto de vista de Operación del Producto se definen de la siguiente forma:
FACTORES DE Mc CALL
• El coste y esfuerzo de aprender a manejar un producto, preparar la entrada de datos e interpretar la salida del mismo
Facilidad de Uso
• Hasta que punto se controlan los accesos ilegales a programas o datos. Un programa que permite el acceso de personas no autorizadas a ciertos datos es poco íntegro. Integridad
• Hasta que punto un programa cumple sus especificaciones y satisface los objetivos del usuario. Ejemplo: si un programa debe ser capaz de sumar dos números y en lugar de eso los multiplica. Es quizás el factor más importante, aunque puede no servir de nada sin los demás factores
Corrección
• Hasta que punto se puede confiar en el funcionamiento sin errores del programa. Por ejemplo, si el programa anterior suma dos números, pero en un 25 % de los casos el resultado que da no es correcto, es poco fiable.
Fiabilidad
• Cantidad de código y de recursos informáticos (CPU, memoria) que precisa un programa para desempeñar su función. Un programa que suma dos números y necesita 2 MB de memoria para funcionar, o que tarda 2 horas en dar una respuesta es poco eficiente.
Eficiencia
FACTORES DE Mc CALL
• El Coste de localizar y corregir defectos en un programa que aparecen durante su funcionamiento
Facilidad de Mantenimiento
• El coste de probar un programa para comprobar que satisface sus requisitos. Por ejemplo, si un programa requiere desarrollar una simulación completa de un sistema para poder probar que funciona bien, en un programa difícil de probar.
Facilidad de Prueba
• El coste de modificación del producto cuando cambian sus especificaciones. Flexibilidad
Los factores de McCall desde el punto de vista de Revisión del Producto se definen de la siguiente forma:
FACTORES DE Mc CALL
• Hasta que punto se puede transferir un módulo o programa del presente sistema a otra aplicación, y con que esfuerzo.
Facilidad de Reutilización
• El coste y esfuerzo necesario para hacer que el software pueda operar conjuntamente con otros sistemas o aplicaciones de software externos.
Interoperabilidad
• Conocido como transportabilidad. El coste de transportar o migrar un producto de una configuración hardware o entorno operativo a otro.
Portabilidad
Los factores de McCall desde el punto de vista de Transición del Producto se definen de la siguiente forma:
La Relación Factores – Criterio desde el Punto de Vista de Operación del Producto
FACTORES – CRITERIOS MODELO DE Mc CALL
PUNTO DE VISTA FACTORES
Facilidad de Uso Facilidad de Operación
Facilidad de Comunicación
Facilidad de Aprendizaje
Integridad Control de accesos
Facilidad de auditoría
Corrección Completitud
Consistencia
Trazabilidad
Fiabilidad Precisión
Consistencia
Tolerancia a fallos
Modularidad
Simplicidad
Eficiencia Eficiencia en Ejecución
Eficiencia en almacenamiento
CRITERIOS DE Mc CALL PARA EL FACTOR FACILIDAD DE USO
• Atributos del software que determinan la facilidad de operación del software
Facilidad de Operación
• Atributos del software que proporcionan al usuario entradas y salidas fácilmente asimilables
Facilidad de Comunicación
• Atributos del software que facilitan la familiarización inicial del usuario con el software y la transición desde el modo actual de operación.
Facilidad de Aprendizaje
Los criterios de McCall para el factor FACILIDAD DE USO se descomponen en:
CRITERIOS DE Mc CALL PARA EL FACTOR INTEGRIDAD
• Atributos del software que proporcionan control de acceso al software y los datos que maneja
Control de
Accesos
• Atributos del software que facilitan el registro y la auditoría de los accesos al software.
Facilidad de
Auditoría
Los criterios de McCall para el factor INTEGRIDAD se descomponen en:
CRITERIOS DE Mc CALL PARA EL FACTOR CORRECCIÓN
• Atributos del software que proporcionan la implementación completa de todas las funciones requeridas. Completitud
• Atributos del software que proporcionan uniformidad en las técnicas y notaciones de diseño e implementación utilizadas. Consistencia
• Conocido como Rastreabilidad. Atributos del software que proporcionan una traza desde los requisitos a la implementación con respecto a un entorno operativo concreto.
Trazabilidad
Los criterios de McCall para el factor CORRECCIÓN se descomponen en:
• Atributos del software que proporcionan el grado de precisión requerido en los cálculos y los resultados. Precisión
• Atributos de software que proporcionan uniformidad en las técnicas y notaciones de diseño e implementación utilizadas Consistencia
• Atributos del software que posibilitan la continuidad del funcionamiento bajo condiciones no usuales.
Tolerancia a fallos
• Atributos del software que proporcionan una estructura de módulos altamente independientes. Modularidad
• Atributos del software que posibilitan la implementación de funciones de la forma más compresible posible Simplificidad
CRITERIOS DE Mc CALL PARA EL FACTOR FIABILIDAD
Los criterios de McCall para el factor FIABILIDAD se descomponen en:
• Atributos del software que minimizan el tiempo de procesamiento.
Eficiencia en Ejecución
• Atributos del software que minimizan el espacio de almacenamiento necesario.
Eficiencia en Almacenamiento
Los criterios de McCall para el factor EFICIENCIA se descomponen en:
CRITERIOS DE Mc CALL PARA EL FACTOR EFICIENCIA
La Relación Factores – Criterio desde el Punto de Vista de Revisión del Producto
FACTORES – CRITERIOS MODELO DE Mc CALL
PUNTO DE VISTA FACTORES
Facilidad de Mantenimiento Modularidad
Simplicidad
Consistencia
Concisión
Auto descripción
Facilidad de Prueba Modularidad
Simplicidad
Auto descripción
Instrumentación
Flexibilidad Auto descripción
Capacidad de expansión
Generalidad
Modularidad
• Atributos del software que proporcionan una estructura de módulos altamente independientes. Modularidad
• Atributos del software que posibilitan la implementación de funciones de la forma más compresible posible Simplicidad
• Atributos de software que proporcionan uniformidad en las técnicas y notaciones de diseño e implementación utilizadas. Consistencia
• Atributos del software que posibilitan la implementación de una función con la menor cantidad de código posible. Concisión
• Atributos del software que proporcionan explicaciones sobre la implementación de las funciones.
Auto descripción
CRITERIOS DE Mc CALL PARA EL FACTOR FACILIDAD DE MANTENIMIENTO
Los criterios de McCall para el factor FACILIDAD DE MANTENIMEINTO se descomponen en:
CRITERIOS DE Mc CALL PARA EL FACTOR FACILIDAD DE PRUEBA
• Atributos del software que proporcionan una estructura de módulos altamente independientes.
Modularidad
• Atributos del software que posibilitan la implementación de funciones de la forma más compresible posible
Simplicidad
• Atributos del software que proporcionan explicaciones sobre la implementación de las funciones. Auto descripción
• Atributos del software que posibilitan la observación del comportamiento del software durante su ejecución (para facilitar las mediciones del uso o la identificación de errores )
Instrumentación
Los criterios de McCall para el factor FACILIDAD DE PRUEBA se descomponen en:
CRITERIOS DE Mc CALL PARA EL FACTOR FLEXIBILIDAD
• Atributos del software que proporcionan explicaciones sobre la implementación de las funciones.
Auto descripción
• Atributos del software que posibilitan la expansión del software en cuanto a capacidades funcionales y datos.
Capacidad de expansión
• Atributos del software que posibilitan amplitud a las funciones implementadas. Generalidad
• Atributos del software que proporcionan una estructura de módulos altamente independientes.. Modularidad
Los criterios de McCall para el factor FLEXIBILIDAD se descomponen en:
La Relación Factores – Criterio desde el Punto de Vista de Transición del Producto
FACTORES – CRITERIOS MODELO DE Mc CALL
PUNTO DE VISTA FACTORES
Facilidad de Reutilización Auto descripción
Generalidad
Modularidad
Independencia entre sistema y software
Interoperabilidad Modularidad
Compatibilidad de Comunicaciones
Compatibilidad de datos
Portabilidad Auto descripción
Modularidad
Independencia entre sistema y software
Independencia del hardware
• Atributos del software que proporcionan explicaciones sobre la implementación de las funciones.
Auto descripción
• Atributos de software que proporcionan amplitud a las funciones implementadas
Generalidad
• Atributos del software que proporcionan una estructura de módulos altamente independientes.
Modularidad
• Atributos del software que determinan la independencia del entorno operativo.
Independencia entre sistema y
software
• Atributos del software que determinan su independencia del hardware.
Independencia del hardware
CRITERIOS DE Mc CALL PARA EL FACTOR REUSABILIDAD
Los criterios de McCall para el factor REUSABILIDAD se descomponen en:
CRITERIOS DE Mc CALL PARA EL FACTOR INTEROPRABILIDAD
• Atributos del software que proporcionan una estructura de módulos altamente independientes. Modularidad
• Atributos del software que posibilitan el uso de protocolos de comunicación e interfaces estándar.
Compatibilidad de
Comunicaciones
• Atributos del software que proporcionan representaciones de datos estándar.
Compatibilidad de Datos
Los criterios de McCall para el factor INTEROPERABILIDAD se descomponen en:
CRITERIOS DE Mc CALL PARA EL FACTOR PORTABILIDAD
• Atributos del software que proporcionan explicaciones sobre la implementación de las funciones.
Auto descripción
• Atributos del software que proporcionan una estructura de módulos altamente independientes. Modularidad
• Atributos del software que determinan la independencia del sistema operativo.
Independencia entre sistema y
software
• Atributos del software que determinan su independencia del hardware.
Independencia del hardware
Los criterios de McCall para el factor PORTABILIDAD se descomponen en:
MODELO BOEHM
FURPS
Los factores de calidad FURPS provienen de trabajos anteriores, definiendo los siguientes atributos para cada uno de los cinco factores principales:
• Funcionalidad
• Facilidad de uso
• Fiabilidad
• Rendimiento
• capacidad de soporte.
ISO/IEC 9126: TECNOLOGÍAS DE LA INFORMACIÓN
CALIDAD DE LOS PRODUCTOS SOFTWARE.
• Modelo de Calidad Parte 1
• Métricas Externas Parte 2
• Métricas Internas Parte 3
• Métricas de Calidad en Uso Parte 4
calidad externa
e interna
funcionalidad fiabilidad usabilidad eficiencia mantenibilidad portabilidad
adecuación
exactitud
interoperabilidad
seguridad de
acceso
cumplimiento de
la funcionalidad
madurez
tolerancia a
fallos
capacidad de
recuperación
cumplimiento de
la fiabilidad
capacidad para
ser entendido
capacidad para
ser aprendido
capacidad para
ser operado
capacidad de
atracción
cumplimiento de
la usabilidad
comportamiento
temporal
utilización de
recursos
cumplimiento de
la eficiencia
capacidad para
ser analizado
capacidad para
ser cambiado
estabilidad
capacidad para
ser probado
cumplimiento de
la mantenibilidad
adaptabilidad
instalabilidad
coexistencia
capacidad para
ser reemplazado
cumplimiento de
la portabilidad
MODELO DE CALIDAD PARA CALIDAD INTERNA Y EXTERNA
MODELO DE CALIDAD PARA CALIDAD EN USO
ENTORNOS O MODELOS
Son los 3 vértices donde descansa un proceso de mejora que trabaja sobre 3 niveles de la organización.
CMM se enfoca a nivel organizacional
TSP se enfoca a un proceso de grupos de trabajo
PSP se enfoca a nivel personal
PSP Personal Software Process
Definición
Justificación
Pasos para la Implantación
Ciclo de Vida
DEFINICIÓN
Es un ciclo de vida del proceso de software que se caracteriza por:
Ser definido, conciso
Altamente prescriptivo
Rápido y barato
JUSTIFICACIÓN DEL PSP
Los ingenieros de software rara vez basan su trabajo en prácticas y metodologías establecidas y son prácticamente escépticos a cambiar sus hábitos de trabajo.
Los ingenieros están en un círculo vicioso, "sólo creen en lo que han probado y no prueban otras metodologías", por esta razón para poder implantar PSP, se tuvo que obligarlos y se tuvieron buenos resultados.
PASOS PARA IMPLANTACION PSP
Lo que sigue es optimizar la interacción entre equipos y aquí entraría Team Software Process, el TSP extiende y refina los métodos de CMM y PSP sobre desarrollo y mantenimiento de equipos, y llegar a lo que se le llama un equipo auto dirigido.
Requiere un fuerte soporte de administración, es necesario que los administradores entiendan el PSP, saber como apoyarlos y como monitorear sus avances, sin un adecuado monitoreo los ingenieros caerán otra vez en los malos hábitos.
La Capacitación es sobre grupos o equipos, y serán grupos que así lo han sido y seguirán siendo.
Los ingenieros deben ser entrenados por un instructor calificado de PSP.
CICLO DE VIDA PSP
7 niveles del PSP
PSP3
Proceso Personal Cíclico
PSP2 y PSP2.1
Manejo Personal de calidad
PSP1 y PSP1.1
Proceso Personal de Planeación
PSP0 y PSP0.1
Línea Base del PSP
• Identificar actividades: definición, secuencia
• Bases mejoras: planeación, evaluación, resultados
• Documentar proceso Formas de:
• Actividades (Scripts)
• Tiempos (Logs Time)
• Defectos (Defect Logs)
• Resumir planes, resultados (Proyect plan summary)
PSP 0
• Registrar tamaño del producto y hacer un histórico:
• Líneas de código (LDC)
• Puntos de función (PF)
• Estandarización de la codificación
• Registrar problemas y mejoras de propuestas
PSP 0.1
• Mejora la planeación:
• Con la estimación de recursos
• Introducción de calendarizar, plasmar el plan con números, un presupuesto
PSP 1
• Mejora la ejecución:
• Detección temprana de defectos, en base a la predicción de estos.
• Revisiones de diseño
• Revisiones de código
• Uso de checklists (Listas de verificación
PSP 2
• Mejora el diseño:
• Al hacer uso de formas detalladas de diseño (formas C76, C77)
PSP 2.1
• Mejora el ciclo, mejora del proceso en términos de hacerlo repetible (cíclico):
• Para aplicación a programas de mayor tamaño
• Registro del seguimiento de asuntos importantes
• Análisis del resumen de la planeación, tiempos, tamaños y defectos por cada ciclo.
PSP 3
CICLO DE VIDA PSP
FASE PLANEACIÓN
(PLAN DE PROYECTO)
INPUT
Descripción del problema, resumen
del proyecto, resumen cíclico,
tamaño estimado, tiempo estimado,
formas de planeación.
ACTIVIDAD
Requerimientos, tamaño estimado,
desarrollo estrategia,
estimados de recursos,
planificación y programas de
tareas, estimación de defectos.
OUTPUT
Diseño conceptual, resumen plan,
resumen del ciclo, patrones estimados
de tamaño y planeación de
tareas, programas de patrones de
planeación, registro de tiempos.
CICLO DE VIDA PSP
FASE DISEÑO DE PRODUCTO
INPUT
Tipificación requerimientos,
diseño conceptual, patrones de
estimaciones de tamaño, resumen
parte cíclico, seguimiento.
ACTIVIDAD
Especificaciones externas, diseño
modular, prototipos,
estrategia de desarrollo y
documentación, seguimiento.
OUTPUT
Diseño de programa, escenarios
operacionales, especificación de
funciones y lógica, resumen cíclico, seguimiento y estrategias de
pruebas y ciclo.
CICLO DE VIDA PSP
FASE REVISIÓN O VALIDACIÓN DEL DISEÑO
INPUT
Programa de diseño, escenarios
operacionales, especificación de
funciones y lógica, resumen cíclico, seguimiento y estrategia de
pruebas y ciclo.
ACTIVIDAD
Diseño de apariencia,
verificación de máquinas y lógica,
consistencia del diseño, rehúso,
estrategia de verificación,
detectar errores.
OUTPUT
Diseño de alto nivel, registro de
seguimiento, tiempos y defectos.
CICLO DE VIDA PSP
FASE DESARROLLO O IMPLEMENTACIÓN
INPUT
Diseño de alto nivel, registro de
seguimiento, tiempos y defectos, ciclo de desarrollo,
estrategia de pruebas, patrones
de operación y función.
ACTIVIDAD
Diseño de módulos, revisión de diseño, código, revisión de
código, compilación,
pruebas, aseguramiento de calidad y del ciclo.
OUTPUT
Módulos de SW, patrón de diseño,
lista de verificación de código y diseño, resumen del ciclo, patrón de reporte
de pruebas, registro de tiempo, defectos
y seguimiento.
CICLO DE VIDA PSP
FASE POSMORTEM, EVALUACIÓN CICLO
INPUT
Definición de problema y requerimientos, plan de proyecto, producto de software, patrón de
diseño, lista de verificación, diseño, resumen del ciclo, patrón de pruebas, registro de tiempo,
defectos y seguimiento.
ACTIVIDAD
Defectos previstos, removidos, tamaño,
tiempo del producto.
OUTPUT
Producto, listas de verificación, plan de
proyecto y ciclo, patrón de reporte
de pruebas y diseño, forma con
propuesta de mejora, registro
seguimiento pruebas y tiempo.
TSP Team Software Process
Definición
Objetivos
Estructura
Ciclo de Vida
Roles y Responsabilidades
DEFINICIÓN
TSP está formado por dos componentes primarios que abarcan distintos aspectos del trabajo en equipo :
Formación del equipo de trabajo
Gestión del equipo de trabajo
Es una metodología para dirigir el trabajo de mejora y desarrollo de software además de establecer un entorno donde el trabajo efectivo de equipo sea normal y natural.
OBJETIVOS DEL TSP
• Generar un marco basado en PSP
• Desarrollar productos en varios ciclos
• Establecer estándares para medir la calidad y el comportamiento
• Proporcionar métricas para equipos
• Evaluar roles y equipos
• Guías para solución de problemas en equipos.
ESTRUCTURA DE TSP
CICLO DE VIDA TSP
• Durante esta fase, y siendo el primer ciclo, se realiza una revisión de los objetivos del curso.
Lanzamiento
• Se establece la estrategia de desarrollo decidiendo que se producirá, y se identifica los riesgos.
Estrategia
• Asignación a cada miembro del equipo. Planeación
• Entrevistas con el cliente y se especifican. Requerimientos
CICLO DE VIDA TSP
• Diseño de alto nivel, donde se especifica y examina cada parte identificada. Diseño
• Revisión, compilación y prueba unitaria. Implementación
• Se integran todos los programas. Prueba
• Análisis del producto, Generación de las evaluaciones del equipo. Postmortem
ROLES Y RESPONSABILIDADES
Líder del Equipo Dirige al equipo, se asegura que todos reporten sus datos de los procesos y completen su trabajo tal y
como se planeó.
Gestor de desarrollo Guía al equipo en el diseño y desarrollo del producto.
Gestor de Planificación
Apoya y guía al equipo en la planificación y seguimiento del trabajo.
Gestor de Calidad/Proceso
Apoya al equipo en definir sus necesidades acerca del proceso, establecer y administrar el plan de calidad.
Administrador de Requerimientos/
Soporte
Dirige al equipo en el desarrollo de requerimientos de software, administra el plan de configuración
CMMI Capability Maturity Model
Integration
Definición
Representación Continua
Estructura de CMMI en Representación Continua
Representación Escalonada
Estructura de CMMI en Representación Escalonada
Componentes
DEFINICIÓN
CMMI es el sucesor de CMM.
El objetivo del proyecto CMMI es mejorar la usabilidad de modelos de madurez integrando varios modelos diferentes en un solo marco (framework).
Fue creado por miembros de la industria y el gobierno.
• Representación Continua (Continuous Representation)
• Escalonada (Staged Representation)
Tiene 2 representaciones:
REPRESENTACIÓN CONTINUA 6 NIVELES DEFINIDOS EN CMMI
• El proceso no se realiza, o no se consiguen sus objetivos. Incompleto
• El proceso se ejecuta y se logra su objetivo. Ejecutado
• El proceso se planifica, se revisa y se evalúa para comprobar que cumple los requisitos. Gestionado
• Se ajusta a la política de procesos que existe en la organización, alineada con las directivas de la empresa.
Definido
• Se controla utilizando técnicas cuantitativas. Cuantitativamente
Gestionado
• De forma sistemática se revisa y modifica o cambia para adaptarlo a los objetivos del negocio. Mejora continua.
Optimizando
REPRESENTACIÓN ESCALONADA (STAGED REPRESENTATION)
Establece 5 Niveles de Madurez (Maturity Level) para clasificar a las organizaciones, en función de qué áreas de procesos consiguen sus objetivos y se gestionan con principios de ingeniería.
Es lo que se denomina un modelo escalonado, o centrado en la madurez de la organización.
• 7 PA para el nivel de madurez o ML1
• 2 PA para el ML2
• 11 PA para el ML3
• 2 PA para el ML4
• 2 PA para el ML5
La selección de los Áreas de Proceso está prefijado, habiendo:
CALIDAD DEL PRODUCTO SOFTWARE
¿QUÉ ES LA CALIDAD DEL SOFTWARE?
• “Grado con el cual el cliente o usuario percibe que el software satisface sus expectativas” (IEEE 729-83).
• “Conjunto de propiedades y de características de un producto o servicio, que le confieren aptitud para satisfacer una necesidades explícitas o implícitas” (ISO 8402:1984)
¿QUÉ ES LA CALIDAD DEL SOFTWARE?
“La calidad del software es el grado con el que un sistema, componente o proceso cumple los
requerimientos especificados y las necesidades o expectativas del cliente o usuario”. (IEEE, Std.
610-1990).
“Concordancia del software producido con los requerimientos explícitamente establecidos, con los estándares de desarrollo prefijados y con los
requerimientos implícitos no establecidos formalmente, que desea el usuario” (Pressman,
1998)
¿QUÉ ES LA CALIDAD DEL SOFTWARE?
La calidad del software puede ser entendida como el grado con el cual el usuario percibe que el software satisface sus expectativas (IEEE 729-83).
El tipo y número de actividades de garantía de calidad que es necesario adoptar en un proyecto o en una organización depende del tamaño y complejidad de los productos software que se estén desarrollando.
Calidad
en uso
Calidad
externa
Calidad
interna
Calidad de
proceso
Proceso Producto
Efecto del
producto
Influye Influye Influye
Depende de Depende de Depende de
Contextos
de uso
proveedor usuario
¿CÓMO MEDIR LA CALIDAD DE UN PRODUCTO SOFTWARE?
Se emplea para ellos modelos , que especifican la calidad mediante la definición de un conjunto de atributos o características.
Se basa en descomponer la calidad del producto en características y estas en criterios que pueden ser medidos mediante métricas.
ACTIVIDADES DE CONTROL
Comprueban si un producto posee o no una determinada característica de calidad en el grado requerido.
Identificar defectos en el producto para corregirlos.
OBJETIVO
CONTROLES ESTÁTICOS El objetivo principal es analizar el objeto sin necesidad de ejecutarlo.
CONTROLES ESTÁTICOS MANUALES INFORMALES
• Examinar a mano e individualmente el objeto que se acaba de desarrollar.
• Se aplica a los requisitos, especificaciones de diseño y código según se desarrollan.
• Es más efectivo si se hace intercambiando el objeto a examinar con otro compañero.
Comprobación de escritorio (desk checking):
• Revisión del código de un programador por otros programadores (sus pares).
• Se puede poner en práctica creando un panel que se encarga de revisar periódicamente muestras de código.
Revisión por pares o iguales (peer review):
CONTROLES ESTÁTICOS MANUALES DISCIPLINADOS
El objetivo principal es conseguir que la responsabilidad del control de calidad no recaiga sólo sobre el propio desarrollador.
1. AUDITORÍAS:
Auditorías de proyecto
Auditorías de gestión de proyecto
PROCEDIMIENTO DE UNA AUDITORÍA
• Define los objetivos de la auditoria y su alcance
• Se elabora un Plan de Auditoria, dando respuesta a: Por qué se realiza, Para qué se realiza, Cuál es el producto que va a ser auditado, etc.
Planificación
• Se inicia con una reunión de apertura de la investigación.
• Se lleva a cabo mediante entrevistas y revisiones en las que se recopilan datos.
Llevar a cabo la investigación
• Se utilizan técnicas de análisis estadístico, por parte de los auditores.
• Se realiza una evaluación en paralelo de los resultados por un grupo de evaluadores.
Analizar los datos recogidos
Sugerir soluciones a los problemas encontrados y posibles mejoras.
Elaborar y presentar un informe de resultados
2. REVISIONES:
Se consigue que el peso de la evaluación técnica no recaiga sobre las mismas personas involucradas en la producción del software, pues no pueden ser totalmente objetivos.
Ofrece a los gestores, información fiable acerca de los aspectos técnicos del proceso de desarrollo de software.
Es una reunión formal donde se presenta el estado actual de los resultados de un proyecto a un usuario, cliente u otro tipo de persona interesada, y se realiza un análisis estructurado.
Características:
DIFERENCIAS ENTRE REVISIONES Y AUDITORÍAS:
Las revisiones se llevan a cabo desde las primeras
fases del desarrollo, mientras que las
auditorías se llevan a cabo en las fases finales.
El objetivo de las revisiones es detectar
defectos, mientras que el objetivo de las auditorías es certificar conformidad e identificar desviaciones.
TIPOS DE REVISIONES
Se diferencian por la forma en que se desarrolla la reunión de revisión.
Inspecciones
• Los participantes leen el documento, guiados por el autor del mismo, y comprueban en cada paso el cumplimiento de los criterios de una lista de comprobación.
Walkthrough (visita guiada):
• Se demuestra la funcionalidad del objeto revisado mediante la simulación de su funcionamiento con casos de prueba y ejemplos.
Se introducen al objeto los casos de prueba y se van registrando los resultados intermedios.
DIFERENCIAS:
WALKTHROUGH
Están planteados como una medida de ayuda al desarrollador.
Su objetivo fundamental es incrementar el entendimiento, comprender mejor el objeto.
Esta guiado por la estructura del producto revisado.
Se usan para asegurar la satisfacción de los criterios de
salida establecidos entre diferentes etapas del desarrollo
(revisiones de fase).
INSPECCIONES
Planteadas como una medida de ayuda al gestor.
El objetivo fundamental es detectar defectos.
Proceso guiado por la lista de comprobación.
Se planifican y procesan de una manera mucho más formal que
los walkthrough.
FASES EN LA INSPECCION
PLANIFICACION Objetivos, Criterios de finalización, Lugar y fecha, Disponibilidad de participantes (coordinador/moderador, secretario)
ORIENTACION INICIAL
Reunión de orientación para dar una idea del objeto
PREPARACION INDIVIDUAL
Antes de la realización de la inspección, una copia de la documentación asociada al objeto, y lista de comprobaciones checklist
FASES EN LA INSPECCION
REUNION DE INSPECCION
El presentador.- Punto por punto la lista de comprobación; Componente a componente del producto; Por grupos de puntos dentro de la lista de comprobación; Cualquier otra situación intermedia
Al final de la reunión de inspección, los participantes, valoran los resultados de la inspección: Se cierra la inspección sin que se hayan encontrado defectos; Defectos eliminados; Si se encuentran otros defectos se realiza otra inspección
FASES EN LA INSPECCION
SEGUIMIENTO Autor del objeto revisado se encarga de corregir los defectos encontrados
EVALUACION
Determina si se ha corregido todos los defectos y si han surgido nuevos problemas, el moderador se encarga de realizar la evaluación.
DOCUMENTOS GENERADOS EN UNA INSPECCION
Informe resumen.-
Conclusiones breves para la dirección (¿Qué se ha revisado?; ¿Quién lo ha revisado?; ¿Cual fue la
conclusión?)
Lista acciones pendientes.-
Informe para los autores del producto revisado explica que esta mal y se puede dar soluciones o
correcciones (no debe llegar a la dirección).
Informe de asuntos
relacionados.-
Para registrar problemas que salen a la luz durante la inspección ( no relacionados con el objeto
revisado)
Informe del proceso de inspección.-
Cuando algo ha salido mal en el proceso de inspección en si mismo
Informe final.- Para informar a la dirección el cierre de la
inspección.
Informes o documentos generados como resultado de una inspección son los siguientes:
FASES EN UN WALKTHROUGH
PLANIFICACION.-
• Similar a la planificación de una inspección con la diferencia que no es necesario asignar roles específicos a excepción del presentador( organizador del WALKTHROUGH)
PREPARACION INDIVIDUAL.-
• Cada revisor examina el objeto revisado en este caso no se entrega una lista de comprobación.
REUNION DE WALKTHROUGH.-
• Discusión de alternativas de diseño, encontrar errores.
FORMALIDAD EN LAS REVISIONES
• Es un evento público
• Se informa por escrito de los resultados
• Todos los participantes son responsables de la calidad de la revisión
Una revisión es formal cuando:
La ventaja de realizar revisiones formales es que los informes que se generan sirven con hitos para el proyecto y el hecho de ser algo público promueve una mejor preparación por parte de los participantes.
REVISIONES TECNICAS Y DE GESTION
Revisión de la
especificación de requisito
s
Revisión del
diseño
Revisión del
código
Revisión de las
pruebas
Revisión del
manual de
usuario
Las revisiones técnicas más comunes son:
OBJETIVOS DE LAS REVISIONES DEL PROYECTO SON:
Control de la progresión del proyecto.
Evaluación de los riesgos asociados al proyecto con relación al costo, escala de tiempo, recursos utilizados y calidad del
producto.
Evaluación general del producto.
Para que estos sea posible es necesario:
• Que exista un plan de desarrollo bien estructurado, con hitos bien definidos, que permita evaluar la progresión del proyecto
• Que los resultados del proyecto se encuentren bien documentados, y hayan sido examinados por la revisión técnica
REVISIÓN DE LA ESPECIFICACIÓN DE REQUISITOS
Es muy útil para facilitar el descubrimiento de los errores introducidos en la especificación de requisitos en fases tempranas del desarrollo.
ALGUNAS DE LAS PREGUNTAS QUE PODRÍAN ENCONTRARSE EN UNA LISTA DE COMPROBACIONES PARA LA ESPECIFICACIÓN DE REQUISITOS:
¿Se han especificado
todos los recursos hardware
necesarios?
¿Se han especificado las
interfaces externas
necesarias?
¿Existen contradicciones
en la especificación de
los requisitos?
¿Se han definido los criterios de
aceptación para cada una de las
funciones especificadas?
REVISIÓN DEL DISEÑO
El objetivo de estas revisiones es determinar y evaluar el estado en el que se encuentra el proceso de diseño, así como descubrir errores o contradicciones (entre la especificación de requisitos y el diseño o en las interfaces entre módulos)
ALGUNAS DE LAS PREGUNTAS QUE PODRÍAN ENCONTRARSE EN UNA LISTA DE COMPROBACIONES PARA EL DISEÑO SON LAS SIGUIENTES:
¿Hay uniformidad en el diseño?
¿Se han definido correctamente las interfaces entre módulos?
¿Se han definido correctamente las interfaces externas?
¿Cubre el diseño todas las funciones incluidas en la especificación de requisitos?
¿Cumple el diseño todos los requisitos no funcionales?
REVISIÓN DEL CÓDIGO
Su objetivo es determinar que el código se corresponde con el diseño detallado realizado.
Algunos de los aspectos que se examinan en una revisión de código son los siguientes:
adherencia a los estándares de codificación 20
comentarios
entradas y salidas
fórmulas
utilización de variables
estructura del programa
interfaces
REVISIÓN DE LAS PRUEBAS
Se pueden efectuar dos tipos de revisiones de las pruebas:
• Revisión del diseño de la prueba.
• Inspección de la prueba.
EL OBJETIVO DE LA REVISIÓN DEL DISEÑO DE LA PRUEBA ES COMPROBAR QUE EL DISEÑO REALIZADO PARA LA PRUEBA ESTÁ DE ACUERDO CON LOS OBJETIVOS QUE SE PERSIGUEN. SE DEBEN COMPROBAR ASPECTOS COMO: ¿Se han tenido en cuenta todos los objetivos a la hora de diseñar los casos de prueba?
¿Se han elegido los casos de prueba más adecuados para comprobar la consecución de dichos objetivos?
• Los objetivos de las inspecciones de las pruebas, por su parte, son:
Comprobar que la prueba se ha ejecutado correctamente, de acuerdo con el procedimiento de prueba especificado.
Análisis de los resultados obtenidos con cada prueba.
CONTROLES ESTÁTICOS AUTOMÁTICOS
Dentro de esta categoría tenemos el análisis estático automático y la verificación formal de programas.
La mayor parte del análisis estático automático del código lo realizan los compiladores, que pueden detectar desde expresiones sintácticamente incorrectas hasta incompatibilidades de tipo y otros errores de tipo semántico.
Otras técnicas de análisis estático automático de programas son:
• Análisis de Flujo
• Ejecución simbólica
ANÁLISIS DE FLUJO
Consiste en determinar el comportamiento de las variables del programa desde su inicialización hasta que termina la ejecución del programa.
CLASIFICANDO LAS VARIABLES EN:
REFERENCIADAS
Cuando se obtiene su valor en
memoria durante la evaluación de una expresión en una
sentencia.
DEFINIDAS
Cuando se obtiene un nuevo valor para
la variable como consecuencia de la ejecución de una
sentencia.
NO REFERENCIADAS
Cuando ya no se puede determinar
el valor de la variable a partir del flujo del programa.
EJECUCIÓN SIMBÓLICA
La mejor forma de analizarla es descomponerla en una estructura de árbol, donde cada hoja representa un camino de ejecución y cada ramificación representa un punto de decisión en el programa.
EJEMPLO Función en ADA que calcula la suma de los N elementos de un array entero A:
function SUM (A: INTARRAY; N: NATURAL) return INTEGER is
S: INTEGER := 0;
I: NATURAL := 1;
Begin
while I <= N loop
S := S + A(I);
I := I + 1;
end loop;
return (S);
End SUM;
RESULTADO DE LA EJECUCIÓN SIMBÓLICA
Y EN FORMA DE ÁRBOL
VERIFICACIÓN FORMAL
Consiste en demostrar matemáticamente la corrección de un programa con respecto a sus
especificaciones.
Es también necesario que la especificación se haya escrito en algún lenguaje formal. Por eso no siempre
es posible realizar este tipo de verificación.
Por lo general, esta técnica sólo se utiliza para sistemas críticos, debido al coste que conlleva.
GESTIÓN DE CALIDAD DEL
SOFTWARE
SISTEMA DE GESTIÓN DE CALIDAD ISO
9001:2000
GESTIÓN DE CALIDAD DEL SOFTWARE (SQM)
• Aspecto de la función general de la gestión que determina y aplica la política y objetivos de la calidad del software.
• Conjunto de actividades que dirigen y controlan una empresa en lo relativo a la calidad.
• Deben incluir el establecimiento de la política y los objetivos de la calidad.
SISTEMA DE CALIDAD
Conjunto de las actividades relativas a planificación, control, aseguramiento y mejora de la calidad dentro de una empresa.
Las actividades de garantía de calidad que se adoptan en un proyecto, depende mucho de la complejidad y tamaño de los productos de software.
SGC debe fijar la estructura de la organización, de las responsabilidades, de las actividades, de los recursos y de los procedimientos para llevar a cabo la gestión de calidad.
SISTEMA DE CALIDAD
SGC debe determinar los procedimientos y métodos a implantar para lograr una gestión de la calidad.
Define como implementar la garantía de calidad.
• Organización: Es este el nivel en el que normalmente se establece el sistema de calidad.
• Proyecto.
• Fase de desarrollo.
Se puede definir un sistema de calidad en 3 niveles:
SISTEMA DE CALIDAD
Establece también de que forma se reparten las tareas y las responsabilidades entre el personal.
Un sistema de gestión de la calidad es la forma en la que una empresa o institución dirige y controla todas las actividades que están asociadas a la calidad
PARTES QUE COMPONEN EL SISTEMA DE GESTIÓN
Estructura organizativa: departamento de calidad o responsable de la dirección de la empresa.
Cómo se planifica la calidad.
Los procesos de la organización.
Recursos que la organización aplica a la calidad.
Documentación que se utiliza.
SISTEMA DE GESTIÓN DE CALIDAD
SISTEMA DE GESTIÓN DE CALIDAD
ISO 9001:2000
• Especifica los requisitos para un SGC que pueden utilizarse para su aplicación.
• Se centra en la eficacia del SGC para asegurar la satisfacción del cliente.
• Promueve la adopción de un enfoque orientado a procesos para el desarrollo, implementación y la mejora de la eficacia de un SGC.
ISO 9001:2000
• Consta de 20 clausulas que definen que aspectos de un sistema de calidad deben estar presentes en una organización.
• No da detalles de cómo deben implementarse e institucionalizarse dichos aspectos.
• Asegura que la organización documenta todos sus procesos y procedimientos de acuerdo con los requisitos del estándar.
MODELO DE GESTIÓN DE CALIDAD
CONTROLES DINÁMICOS Y COSTOS DE
CALIDAD
CONTROLES DINÁMICOS
Requieren la ejecución del objeto
que se está probando o de un
modelo del mismo.
PRUEBA DEL
SOFTWARE
Es el proceso en que se ejecuta un sistema con el objetivo de detectar fallos.
• En proyectos grandes la prueba 50 - 60% del esfuerzo. • Es muy importante seleccionar bien las pruebas • Seleccionar casos de prueba que incidan en programa
complejos. • La prueba es disciplina profesional que requiere formación • El grupo de prueba debe ser independiente del de desarrollo y
debe adoptar una actitud positiva de destrucción creativa.
CARACTERÍSTICAS
DEPURACIÓN Es el proceso en el que se localiza el defecto que
es la causa de un fallo.
• Se determina la forma de corregirlo • Se evalúa el efecto de la corrección • Se lleva a cabo la corrección
PASOS
TIPOS DE
PRUEBAS • Estándar IEEE 1012-1986
PRUEBA MODULAR
PRUEBA DE INTEGRACIÓN
PRUEBA DE SISTEMA
PRUEBA DE ACEPTACIÓN
PRUEBA DE REGRESIÓN
PRUEBA MODULAR
• Conocida también
como prueba
unitaria o prueba
de componentes
• Consiste en la
prueba de cada
módulo aislado
del resto del
sistema
PRUEBA DE INTEGRACIÓN
Se realiza a medida que los diferentes módulos
del sistema se integran en el mismo
El objetivo de esta prueba es comprobar que las
interfaces entre los distintos módulos son
correctas.
COMPROBACIONES
Compatibilidad de tipos entre los
argumentos del procedimiento o función
y los parámetros de llamada
Corrección en la sintaxis en la
invocación de procedimientos y
funciones
Corrección y completitud de las
especificaciones de los módulos
PRUEBAS DE INTEGRACIÓN
Integración descendente
Módulo en
pruebas
Otros
módulos
Otros
módulos
Reales,
ya probados
Otros
módulos
simulados
(stubs)
PRUEBA DE SISTEMA
Se realiza cuando se han integrado todos los módulos
El objetivo es comprobar que el sistema satisface los
requisitos del usuario, tanto los funcionales como los no
funcionales
PRUEBA DE ACEPTACIÓN
• Se realiza una vez que el sistema se ha implantado en su entorno real de funcionamiento
• El objetivo es demostrar al usuario que el sistema satisface sus necesidades
PRUEBA DE REGRESIÓN
• Tiene como objetivo comprobar que toda nueva versión de un producto software es de no menos calidad que la versión anterior.
RELACIÓN ENTRE PRODUCTOS DE
DESARROLLO Y NIVELES DE
PRUEBA
MÉTODOS
DE CAJA
NEGRA
El objeto que se desea probar se ve
como una caja negra. (elección de
los casos de prueba no se basa en
el conocimiento la estructura del
objeto, sino en el conocimiento de
la funcionalidad deseada.
El objeto que se desea probar se ve como una caja negra. (elección de los casos de prueba no se basa en el conocimiento la estructura del objeto, sino en el conocimiento de la funcionalidad deseada.
MÉTODOS DE CAJA BLANCA O CAJA
TRANSPARENTE
El objeto que se prueba se ve como una caja blanca. (elección de los casos de prueba se basan en conocimiento que se tenga de la estructura del objeto, diseño detallado, diagramas de flujo de datos y de control, código fuente).
• Los basados en
métricas de
cobertura
• Los basados en
métricas de
complejidad
LOS MÉTODOS DE CAJA BLANCA SE PUEDEN CLASIFICAR, A SU VEZ, EN DOS GRUPOS:
• Una prueba de caja blanca exhaustiva requeriría
la generación de un caso de prueba por cada
posible camino.
• Como esto no es posible, por lo general, se
utilizan métricas que dan una indicación de la
calidad de un determinado conjunto de casos de
prueba en función del grado de cobertura del
grafo que consiguen.
Cobertura de:
• Sentencias
• Segmentos entre decisiones.
• Decisiones de ramificación
• Condiciones
• Todas las combinaciones de
condiciones
• Caminos
Las métricas más utilizadas son:
MÉTODOS BASADOS EN MÉTRICAS DE
COMPLEJIDAD
Complejidad ciclomática (arcos - nodos + 2 * número de componentes conexos)
Complejidad esencial (complejidad ciclomática - número de subgrafos propios de entrada y salida única)
Complejidad real (número de caminos ejecutados)
LAS MÉTRICAS DE COMPLEJIDAD MÁS UTILIZADAS EN LA GENERACIÓN DE CASOS DE PRUEBA SON LAS DE MACCABE:
METODOLOGÍA DE PRUEBA La prueba tiene su propio ciclo de vida.
Los diferentes tipos de prueba implica la realización de un conjunto de actividades estándar y salidas estándar
Para cada fase del proceso de desarrollo hay alguna actividad de prueba importante.
PLANIFICACIÓN DE LA PRUEBA
– El objetivo del proceso de prueba
– Los objetos que hay que probar
– Las característica que se prueban y las que no
– El método de prueba a utilizar
– Los recursos que se van a emplear
– El plan de tiempos
– Los productos a generar durante las pruebas
– El reparto de las responsabilidades
Es la creación de un plan de pruebas que registra:
DISEÑO DE LAS PRUEBAS
Cómo llevar a cabo la prueba para alcanzar
los objetivos deseados
De qué forma se van a utilizar los métodos de
prueba
Qué objetos se van a probar en cada una de
las pruebas
Qué criterios se van a utilizar para
determinar si el objeto pasa o no pasa la
prueba.
CONSISTE EN DAR INSTRUCCIONES SOBRE:
DETERMINACIÓN DE LOS CASOS DE PRUEBA
Consiste en especificar el conjunto de casos
de prueba a utilizar en función del diseño
realizado para la prueba, especificando:
– Qué objetos se van a probar
– Qué entradas se les van a dar y
– Cuáles son las salidas esperadas
PLANIFICACIÓN DEL PROCEDIMIENTO DE
PRUEBA
Consiste en fijar un conjunto de pasos para la
ejecución de la prueba, especificando:
• La secuencia exacta de ejecución. • Los requisitos que hay que cumplir para la ejecución. • Las condiciones de terminación de cada uno de ellos
EJECUCIÓN DE LA PRUEBA
• Consiste en ejecutar cada caso de prueba, (paso anterior), y registrar los incidentes o problemas encontrados durante el sistema.
COMPARACIÓN ENTRE LOS MÉTODOS DE
CONTROL DE CALIDAD
Hay dos maneras para mejorar la calidad de los
productos que desarrollamos:
Detectar los defectos lo antes posible
Cometer menos errores
Teniendo en cuenta que el proceso de detección
puede subdividirse en las siguientes fases:
Identificar síntomas
Deducir localización del defecto a partir de los
síntomas
Averiguar qué es lo que está mal
Decidir cómo arreglar el defecto
Arreglarlo
Verificar que se ha resuelto el problema
COMPARACIÓN ENTRE LOS MÉTODOS DE
CONTROL DE CALIDAD
Por otro lado, se pueden usar una serie de métricas para poder hacer una evaluación y comparación cuantitativa entre diferentes actividades de control de calidad.
En primer lugar, se deben tomar una serie de métricas directas:
Tamaño del objeto examinado en la actividad
Tiempo invertido en la actividad
Número de defectos detectados
A partir de estas métricas básicas, se puede calcular una serie de métricas derivadas muy interesantes
COMPARACIÓN ENTRE LOS MÉTODOS DE
CONTROL DE CALIDAD
Número de Escapes:
Son los defectos que estaban ahí y no han sido detectados hasta después de concluida la actividad. Para poder calcular esto es necesario conocer la fase en la que los defectos fueron introducidos y eliminados.
Eficacia de la tarea (Yield)
Es el porcentaje de defectos encontrados una actividad sobre todos los que estaban ahí al iniciarse ésta.
La fórmula para calcularla es:
MÉTRICAS DERIVADAS
tarea_ escapes tarea_ eliminados
_tareaeliminados100
Yield
MÉTRICAS DERIVADAS
Densidad de defectos encontrados
Se mide en número de defectos por unidad de tamaño del objeto examinado
La fórmula para calcularla es:
Eficiencia de la tarea (Tasa de Eliminación de Defectos)
Nos indica cómo de rápido se encuentra defectos en la actividad correspondiente.
La fórmula para calcularla es:
revisiones _en_ invertido _ tiempo
tarea_ sencontradoTED
revisado _ objeto _ tamaño
tarea_ sencontradoDensidad
Rapidez de la revisión
Es una métrica que se aplica sólo a las revisiones, y nos indica la cantidad de material cubierto por unidad de tiempo.
La fórmula para calcularla es:
Cabe decir que no es bueno ir demasiado rápido. Se recomienda no sobrepasar los 300 LOC/hora. Generalmente resulta interesante ver la correlación de esta métrica con la Eficacia (Yield), y comprobar cómo a medida que aumenta la rapidez decrece la eficacia.
revisioninvertidotamaño
revisadoobjetotamañoRapidez
__
__
MÉTRICAS DERIVADAS
Poder de Eliminación de Defectos (Defect Removal Leverage)
Nos indica el ratio de eficiencia entre dos actividades de detección de defectos. Dicho de otro modo, permite ver cuánto más/menos eficiente es una actividad con respecto otra.
La fórmula para calcularla es:
-
2_
1_PED
tareaPED
tareaPED
MÉTRICAS DERIVADAS
150
COSTOS DE CALIDAD
Representan la diferencia entre los costos reales de un
producto o servicio y el costo reducido si no hubiera la
posibilidad de un tener un servicio por debajo de los
estándares, fallas de productos, o defectos en su
manufactura.
• Costos de prevención
• Costos de evaluación
• Costos de falla interna
• Costos de falla externa
COSTOS DE CALIDAD
151
COSTOS DE PREVENCIÓN
Son los costos de todas las actividades específicamente diseñados para prevenir fallas de calidad en productos o servicios
– Revisión de nuevos productos
– Planeación de la calidad (manuales, procedimientos, etc.)
– Evaluación de capacidad de proveedores
– Esfuerzos de mejora a través de trabajo en equipo
– Proyectos de mejora continua
– Educación y entrenamiento en calidad… etc.
EJEMPLO:
152
Son los costos asociados con las actividades de medir,
evaluar y auditar los productos o servicios para
asegurar su conformidad a los estándares de calidad y
requerimientos de desempeño.
COSTOS DE EVALUACIÓN
– Inspecciones con el proveedor y en recibo
– Pruebas e inspecciones en proceso y al producto terminado
– Auditorias al producto, proceso o servicio
– Calibración de equipos de prueba y medición
– Costos de materiales de prueba
EJEMPLO:
153
COSTOS DE FALLA INTERNA
Son los costos resultantes de productos o servicios
no conformes a los requerimientos o necesidades del
cliente, antes del embarque del producto o la
realización del servicio.
• Desperdicio (maculatura) • Retrabajos • Reinspección y repetición de pruebas • Revisión de materiales no conformes • Reducción de precio por calidad reducida
EJEMPLO
154
COSTOS DE FALLA EXTERNA
Son los costos resultantes de productos o servicios
no conformes a los requerimientos o necesidades del
cliente, después de la entrega del producto o
durante y después de la realización del servicio.
• Proceso de quejas y reclamaciones • Devoluciones del cliente • Garantías • Campañas por productos defectivos
EJEMPLO
155
COSTOS TOTALES DE CALIDAD
Es la suma de los costos de prevención,
apreciación, falla interna y falla
externa
Los sistemas contables en general no
son capaces de identificar estos costos
Es muy difícil ir al detalle del costo de
calidad tal como un error de la
secretaria
Planificación de la Calidad
PLANIFICACIÓN
Es el proceso en el que se indica que la empresa puede probar que realiza sus planes de calidad, exponiendo un plan de calidad para cada producto.
• Los objetivos de la calidad
• Planificación de la calidad.
Incluye dos aspectos centrales:
PLAN DE CALIDAD
Es el documento o conjunto de documentos:
• Que establecen los objetivos de calidad,
• La especificación de los procesos operativos necesarios y
• La disponibilidad de los recursos apropiados para satisfacer tales objetivos, para la elaboración del producto que ocupa a la organización.
PLAN SQA
Proporciona un mapa para institucionalizar la garantía de calidad del
software.
Sirve como plantilla para actividades de SQA
instituidas para cada proyecto de software.
SECCIONES
Documentación
Gestión
Revisión y Auditoría
Pruebas
Otros
SECCIONES
DOCUMENTACIÓN
Situación de la SQA dentro de la
estructura organizativa
Las tareas y las actividades de
SQA y su emplazamiento a
lo largo del proceso del
software
Los papeles y responsabilidade
s organizativas relativas a la calidad del producto
SECCIONES
Describe cada uno de los productos de trabajo producidos como parte del proceso
de software.
Documentos del proyecto (plan del proyecto)
Modelos (DERs, jerarquías de
clases),
Documentos técnicos
(especificaciones, planes de prueba)
Documentos de usuario (archivos
de ayuda)
GESTIÓN
SECCIONES
REVISIÓN Y AUDITORIA
Identifica las revisiones y auditorías que se van a llevar a cabo por el equipo de ingeniería del software, el grupo de SQA y el cliente.
Proporciona una visión general del enfoque de cada revisión y auditoría.
SECCIONES
PRUEBAS
Hace referencia al Plan y Procedimiento
de Pruebas del Software
Define requisitos de mantenimiento de
registros de pruebas.
SECCIONES
• Identifica las herramientas y métodos que soportan actividades y tareas de SQA
• Define un enfoque de gestión de contratos
• Establece métodos para reunir, salvaguardar y mantener todos los registros
• Identifica la formación que se requiere para cumplir las necesidades del plan
• Define métodos para identificar, evaluar, supervisar y controlar riesgos.
Recommended