• No se han encontrado resultados

Ingeniería de Software Dr. Marcello Visconti Z. Ingeniería de Software

N/A
N/A
Protected

Academic year: 2021

Share "Ingeniería de Software Dr. Marcello Visconti Z. Ingeniería de Software"

Copied!
19
0
0

Texto completo

(1)

Universidad Técnica Federico Santa María Departamento de Informática

Ingeniería de Software

Ingeniería de Software

Dr. Marcello Visconti Z.

Programa

Programa

Proceso de Software y Paradigmas de Desarrollo Gestión de Proyectos

Fases del Desarrollo de Software

íAseguramiento de Calidad de Software Evolución de Software

(2)

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Calidad de SoftwareSQA, V&VRevisiones e InspeccionesMedición de CalidadCleanroomTesting

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Objetivo último de Ingeniería de Software: producir software de calidad

Calidad engloba todo el proceso, y está determinada por factores directos e indirectos

Calidad es un concepto complejo y multifacético, que puede describirse desde diversas perspectivas

(3)

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Visiones de Calidad

Visiones de Calidad

Visión trascendental

puede ser reconocida pero no definida

Visión del usuario

grado de adecuación al propósito

Visión del productor

conformidad con la especificación

Visión del producto

ligada a características inherentes del mismo

Visión basada en valor

¿cuánto el cliente está dispuesto a pagar?

Aseguramiento

Aseguramiento

de Calidad de Software

de Calidad de Software

Facilidad de Mantenimiento (¿Puedo corregirlo?) Flexibilidad (¿Puedo cambiarlo?)

Facilidad de Prueba (¿Puedo probarlo?)

Revisión del Producto Transición del Producto Operación del Producto Portabilidad

(¿Podré usarlo en otra máquina?) Reusabilidad

(¿Podré reusar alguna parte del software?)

Interoperabilidad (¿Podré hacerlo interactuar con otro sistema?)

(4)

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Software Quality Assurance (SQA)

Acciones sistemáticas y planificadas requeridas para asegurar la calidad de software

Ingeniería de Software Dr. Marcello Visconti Z.

Objetivos: planificar, desarrollar y controlar el proceso de verificación y validación

Actividades: aplicación de métodos, revisiones e inspecciones, testing, estándares, control de cambios, mediciones, registro

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Grupo de SQA

Grupo de SQA

(5)

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Verificación y Validación

Verificación y Validación

Verificación -- ¿estamos construyendo el producto correctamente?

Validación -- ¿estamos construyendo el producto correcto?

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Revisiones de Software

Revisiones de Software

Actúa como un filtro

Descubrimiento temprano de defectos -- gran impacto en los costos de testing y mantención

(6)

Ingeniería de Software Dr. Marcello Visconti Z.

Revisiones de Software

Revisiones de Software

Efecto de Amplificación de

Efecto de Amplificación de

Defectos

Defectos

Diseño preliminar Diseño detallado Codificación/prueba de unidad Prueba de integración Prueba de validación

Prueba del sistema

Errores latentes 12 24 47 94 37 10 6 4 0 0 0% 4 x 1.5 x = 1.5 6 0% 25 27 x 3x = 3 10 20% 25 0 50% 0 50% 0 0 50% 0 0 10 Para la integración 94 Sin revisiones

Ingeniería de Software Dr. Marcello Visconti Z.

Revisiones de Software

Revisiones de Software

Efecto de Amplificación de

Efecto de Amplificación de

Defectos

Defectos

Diseño preliminar Diseño detallado Codificación/prueba de unidad Prueba de integración Prueba de validación

Prueba del sistema

Errores latentes 3 6 12 24 15 3 2 1 5 10 0 0 70% 1 * 1.5 2 50% 25 10 * 3 5 60% 25 0 50% 0 50% 0 0 50% 0 0 10 Para la integración 24 Con revisiones

(7)

Ingeniería de Software Dr. Marcello Visconti Z.

Revisiones de Software

Revisiones de Software

Objetivos

Objetivos

Detectar errores en la lógica, función o implementación

Verificar satisfacción de requerimientos

Asegurar cumplimiento de estándares

Fomentar uniformidad

Hacer proyectos más manejables

Revisiones de Software

Revisiones de Software

Guías de Acción

Guías de Acción

Definir tamaño, conformación y duración

Revisar producto, no productor

Establecer agenda

Limitar debates y rebates

Enunciar problemas, no resolverlos

(8)

Ingeniería de Software Dr. Marcello Visconti Z.

Revisiones de Software

Revisiones de Software

Guías de Acción

Guías de Acción

Limitar tamaño del grupo

Exigir preparación previa

Definir checklists

Asignar recursos

Entrenar a los revisores

Revisar las revisiones

Ingeniería de Software Dr. Marcello Visconti Z.

Inspecciones

Inspecciones Fagan

Fagan

Desarrolladas en 1972, por Michael Fagan

Beneficios: prevención y reducción de defectos, y por ende de costos

(9)

Ingeniería de Software Dr. Marcello Visconti Z.

Inspecciones

Inspecciones Fagan

Fagan

Etapas

Etapas

Planeación -- preparación logística (materiales,

disponibilidades, fechas)

Overview

-- conocimiento general, asignación de

roles (autor, lector,

tester

, moderador)

Preparación -- estudio del material a ser

inspeccionado

Inspección -- búsqueda de defectos

Rework

-- hacer las correcciones

Iteración -- verificación de lo realizado, y de la

no introducción de efectos secundarios

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

Medición de Calidad

Medición de Calidad

Visión del usuario

confiabilidad (mtbf)

usabilidad (instalación, aprendizaje, uso)Visión del productor

defectosrework

(10)

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

ISO 9126

ISO 9126

Estándar reciente para medir calidad

6 características básicas, descompuestas en subcaracterísticas

Refleja una visión de usuario, mientras McCall refleja una visión de producto

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

ISO 9126

ISO 9126

Funcionalidad -- adecuación, precisión, interoperabilidad, seguridad

Confiabilidad - madurez, tolerancia a fallas, recuperación de fallas

Usabilidad -- facilidad de comprensión, facilidad de aprendizaje, facilidad de operación

(11)

Ingeniería de Software Dr. Marcello Visconti Z.

Aseguramiento de

Aseguramiento de

Calidad de Software

Calidad de Software

ISO 9126

ISO 9126

Eficiencia -- comportamiento temporal, comportamiento de recursos

Facilidad de mantención -- facilidad de análisis, facilidad de cambio, estabilidad, facilidad de prueba

Portabilidad -- facilidad de instalación, conformidad, facilidad de reemplazo

Fundamentos teóricos

especificación y diseño formalprueba de correctitudtesting estadístico

Aseguramiento de Calidad

Aseguramiento de Calidad

de Software

de Software

Cleanroom

Cleanroom

(12)

Ingeniería de Software Dr. Marcello Visconti Z.

Cleanroom

Cleanroom

Especificación

Función Uso Requerimientos del Cliente

Planificación de Desarrollo Incremental Especificación de Uso Especificación Funcional Estructura de Cajas Especificación & Diseño Verificación y Corrección Generación Estadística de casos de test Plan incremental de desarrollo Datos erroneos

Casos de Test Casos de Test

Testing Estadístico

Certificación de la Calidad del Modelo Feedback

Medidas de Rendimiento Operacional

Ingeniería de Software Dr. Marcello Visconti Z.

Costos de SQA -- prevención y evaluación

Beneficios de SQA -- asociados a

disminución de

rework

(menos defectos y

mayor confiabilidad)

Importante que beneficios superen a los

costos

Implicancia: para ganar hay que invertir

Aseguramiento de Calidad

Aseguramiento de Calidad

de Software

de Software

Aspectos Económicos

Aspectos Económicos

(13)

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Objetivo: demoler el producto de software con el propósito de detectar defectos

Es una actividad esencialmente destructiva, pero que requiere mucha creatividad

Consiste en ejecutar un programa con la intención de encontrar un defecto

Testing

Testing de Software

de Software

Caso de Prueba

Caso de Prueba

Un buen test case es aquel que tiene una alta

probabilidad de encontrar un defecto no descubierto, no aquel en que el programa funciona correctamente

(14)

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing

de Software

de Software

Configuración del software Configuración de prueba Resultados de la prueba Resultados esperados Errores Correcciones Predicción de confiabilidad Datos de tasa de error Prueba Evaluación Modelo de confiabilidad Depuración

Flujo de información en la prueba

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Terminología Básica

Terminología Básica

Cobertura (test coverage)

grado en que un conjunto de pruebas abarca todos los requerimientos especificados

Ramificación (branch coverage)

cada decisión, cada rama se ejecuta al menos una vezPath coverage

(15)

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Terminología Básica

Terminología Básica

Regresión (regression testing)

prueba selectiva para comprobar que modificaciones no han causado efectos indeseados

Plan de prueba (test plan)

plan para asegurar el control de la prueba del producto

Caja blancacaminos básicosestructuras de controlCaja negraclases de equivalenciaanálisis de fronteras

Testing

Testing

de Software

de Software

Diseño de Casos

(16)

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Estrategias

Estrategias

S R D C U I V ST Ingeniería del Sistema

Codificación Requerimientos Diseño Prueba de Unidad Prueba de Integración Prueba de Validación Prueba del Sistema

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Test Unitario

Test Unitario

Módulo --- --- ---Interfaz

Estructuras de datos locales Condiciones límite Caminos independientes Caminos de manejo de errores

Casos de prueba

(17)

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing

de Software

de Software

Test de Integración

-Test de Integración -

Bottom

Bottom

-

-

Up

Up

D3 D1 D2 Mb Grupo 3 Grupo 2 Grupo 1 Mc Ma Integración ascendente

Testing

Testing de Software

de Software

Test de Integración

-Test de Integración -

Top

Top

-

-

Down

Down

M1

(18)

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Test de Validación

Test de Validación

Objetivo: determinar si el funcionamiento

satisface al cliente/usuario

Pruebas alfa: conducidas en laboratorios del

desarrollador por el usuario final

Pruebas beta: conducidas en ambientes de

trabajo

reales

por usuarios finales,

generalmente “amistosos”; la prueba se

desarrolla antes de la distribución general

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Test de Sistemas

Test de Sistemas

Objetivo: determinar si el sistema en su globalidad opera satisfactoriamente (recuperación de fallas, seguridad y protección, stress, performance)

(19)

Ingeniería de Software Dr. Marcello Visconti Z.

Testing

Testing de Software

de Software

Criterios de

Criterios de

Completación

Completación

¿Cómo saber cuándo dejar de hacer testing?

Normalmente, se abandona al agotarse los recursos

En la práctica el testing nunca acaba, solo cambia de tester ... del profesional al usuario

Referencias

Documento similar

Todo esto aplicado para el desarrollo de una propuesta de solución ante la principal debilidad de la empresa, fue necesario realizar un diagnóstico financiero

Pressman donde define el término de Calidad de Software y uniéndolo a los vocablos gestión y administración, se tiene que el Aseguramiento de Calidad del Software es el

Las revisiones del software juegan un papel fundamental en el control de la calidad, son un filtro en el proceso de ingeniería de software aplicadas en varios momentos de

En el proyecto productivo Sistema de Gestión de Inventarios y Almacenes para introducir las revisiones en el proceso de desarrollo lo primero que se efectúo fue la planificación de

El Aseguramiento de la Calidad no sustituye al Control de Calidad (etapa anterior) sino que lo absorbe y lo complementa. Existen muchas empresas que aún no han superado

[r]

En la capa de calidad se debe definir explícitamente que cosa es la calidad del software, crear un conjunto de actividades que ayuden a garantizar que todo producto de la

A partir de este estudio se definen los principios y premisas que debe cumplir la propuesta a desarrollar en esta investigación, la cual está orientada a realizar una