Está en la página 1de 66

Verificacin y Validacin del Software

Presentacin

Objetivo general de curso


Proporcionar al alumno una visin general de la verificacin, validacin y pruebas del software, el uso de comprobadores de modelos y el panorama actual de la investigacin en tcnicas de pruebas.

Evaluacin
Trabajos o investigaciones 40%

Participaciones 10%
Evaluacin 40%

Asistencia 10%

Temario
Unidad 1

Introduccin
1.1 Contextualizacin de la verificacin y validacin. 1.2 Comentarios.

Aseguramiento de la Calidad del Software

La crisis del software


En los 70s
Se pierde la capacidad de producir sistemas basados en software, cada ves ms grandes y complejos, con la tecnologa existente. El mantenimiento sobrepasa el costo de los primeros desarrollos. El costo del software aumenta mientras que el hardware se hace cada vez ms barato. Fallas costosas en los grandes sistemas de software.

La crisis del software


A mediados de los ochenta, el software se vuelve una gran industria en crecimiento.
El desarrollo de software se convierte en una disciplina. Se observa la necesidad de definir procesos que ayuden a mejorar el desarrollo de software. Nacen las herramientas CASE. No haba una correspondencia entre el proceso requerido para el uso de las herramientas CASE, y el realizado por las organizaciones.

La crisis del software


Soluciones a la crisis del software
Pruebas formales de correctez del software No es aplicable sino hasta que el software ha sido desarrollado, adems de que no es aplicable a todo el software Verificacin y validacin (V&V) independiente Es costoso contratar organizaciones independientes para verificar y validar el software. Aseguramiento de la calidad del software Utiliza un grupo interno para realizar tareas de V&V Mejorar el proceso de desarrollo de software.

Situacin actual
La crisis del software no es crisis
Es una propiedad del software tener errores. No existe el software perfecto. La calidad del producto est relacionada con la calidad del proceso, y no con la falta de errores o fallas en el software.

Qu es la calidad en el software?

Qu es la calidad del software?


La calidad del software debe ser definida desde la perspectiva del usuario; est relacionada con la concordancia del software con los requerimientos del usuario, y con la visin que tiene el mismo usuario con respecto al software. Si el software es de calidad para el usuario, entonces es de calidad.

Las preguntas clave son, entonces:


Quienes son los usuarios? Qu es importante para ellos? Cmo se relacionan sus prioridades con la forma en que nosotros construimos, empaquetamos y damos soporte a nuestros productos?

Multidimensionalidad de la calidad
La calidad puede verse como un concepto multidimensional, dependiente del punto de vista
Vista trascendental: es algo que se reconoce pero no se define. Se puede concebir la calidad como un ideal al que se intenta llegar, aunque no lo conseguimos. Vista del usuario: es adecuacin al propsito. Se puede cuantificar las caractersticas de los productos, medirlos y establecer objetivos a alcanzar. Vista de fabricante: es conformidad con las especificaciones. Se trata de una vista centrada en el proceso. Vista del producto: la calidad est unida a las caractersticas inherentes al producto. Se centra en la medida de los atributos internos de los productos. Vista basada en valor: la calidad depende de la

Orgenes de la calidad
La calidad realizada: la que es capaz de obtener la persona que realiza el trabajo, gracias a su habilidad en la ejecucin de la tarea.
Se potencia con la mejora de las habilidades personales y tcnicas de los participantes en un proceso.

La calidad programada: la que se ha pretendido obtener. Es la que aparece descrita en una especificacin.
Se potencia con la elaboracin de una especificacin que sirva de buena referencia a los participantes del proyecto.

La calidad necesaria: la que el cliente exige con mayor o menor grado de concrecin o, al menos, la que le gustara recibir.
Se potencia con una adecuada obtencin de informacin de la idea de calidad de los clientes.

Cunto cuesta la calidad?


El costo de emprender actividades para asegurar la calidad cuesta, por lo tanto, Es recomendable invertir en stas actividades? La respuesta:
C1 Cunto cuestan los defectos invirtiendo en calidad? C2 Cunto cuesta invertir en asegurar la calidad? C3 Cunto no hacer nada? Si C3 >cuesta C1 + C2, entonces invertir

El costo de las fallas


Requerimientos y Especificacin Modelado de anlisis Diseo Codificacin Pruebas $1 $5

Entre ms tarde se detecten, ms costoso es resolverlos.


$ 20 $ 50 $ 100 Mantenimiento

Distintos estudios han mostrado que el costo relativo de encontrar un defecto durante los requerimientos, puede incrementarse ms de 50 veces si se encuentra en la fase de pruebas, y ms de 100 veces si se detecta despus de liberado el producto.

Cunto cuesta la calidad?


El costo de realizar actividades de V&V es controlable y fcil de estimar, en cambio el costo de no hacerlas no es controlable ni fcil de medir.

Midiendo el costo de la calidad


La medicin del costo de la calidad comprende las siguientes tres actividades:
Deteccin

Enfocada en tareas que ayudan a encontrar defectos.

Prevencin

Centrada en tareas que ayudan a prevenir que los defectos ocurran.


Incluye una variedad de tareas relacionadas con el aislamiento y la correccin de errores, la verificacin de que han sido corregidos, y el costo asociado a preparar medios de distribucin y redistribucin de software. Introduccin a la V&V

Remocin

Qu es el aseguramiento de la calidad del software?

Aseguramiento de la calidad del software


Es la prctica de asegurar que los estndares, procesos y procedimientos usados en los proyectos de desarrollo de software son apropiados, y estn implementados correctamente.

El proceso de aseguramiento de la calidad es un proceso para proveer una seguridad adecuada de que los productos de software y procesos en el ciclo de vida de un proyecto estn de conformidad con los requerimientos especificados, y adheridos a los planes establecidos.

Aseguramiento de la calidad del software


No se refiere slo al descubrimiento y correccin de defectos, sino a evitar que estos ocurran. Para esto es necesario:
Conocer las causas de los defectos para poder evitarlos, identificando y evitando estas causas antes de que se conviertan en problemas o fallas en el software o el proceso de desarrollo. Identificando las causas de los problemas ocurridos, para tratar de evitarlas en futuros proyectos.

Aseguramiento de la calidad del software


Actividades principales:
Verificacin y Validacin del software
Evitar las causas de las fallas en el proceso y los productos.

Pruebas del Software


Encontrar las fallas en los productos y procesos para corregirlas.

Administracin de la Configuracin del Software


Documentar y rastrear los problemas y fallas para buscar evitarlas en el futuro.

Qu es la verificacin y validacin del software?

Verificacin y Validacin
Son actividades encaminadas a determinar si se est construyendo el producto correcto de la manera correcta.

Se utiliza para mostrar que el sistema se ajusta a su especificacin y que cumple con las expectativas del cliente que lo comprar

Verificacin y Validacin
Durante y despus del proceso de implementacin, el programa que se est desarrollando debe ser comprobado para asegurar que satisface su especificacin y entrega la funcionalidad esperada por las personas que pagan por el software.

A estos procesos de anlisis y prueba se les conoce como Verificacin y Validacin.

La Verificacin y Validacin son dos cosas distintas

Verificacin y Validacin
El papel de la verificacin implica comprobar que el software est de acuerdo con su especificacin.

La validacin busca asegurar que el sistema software satisface las expectativas del cliente. Es decir, va ms all.

Verificacin
Ayuda a contestar la siguiente pregunta:

Estamos construyendo el producto de la manera correcta?

Verificacin
Es el proceso de determinar si los productos de una determinada fase del ciclo del proceso de desarrollo cumplen los requerimientos establecidos durante la fase previa. Las actividades de verificacin son desarrolladas de manera concurrente con las actividades del desarrollo de software.

Verificacin
La verificacin se da en torno a tres procesos bsicos:
Inspeccin
Es una revisin tcnica a fondo, rigurosa y formal, diseada para identificar problemas tan cerca de su punto de origen como sea posible.

Medicin
Es el proceso por medio del cual se miden la mayor cantidad de atributos del producto y proceso, con el fin de tener informacin cuantificable til para la mejora continua.

Administracin de la configuracin

Validacin
Ayuda a contestar la siguiente pregunta:

Estamos construyendo el producto correcto?, o en su defecto, Construimos el producto correcto?

Validacin
Es el proceso de evaluar el software al final del proceso de desarrollo para asegurar que cumple con los requerimientos.

Las actividades de validacin se dan despus de que el software ha sido desarrollado, para determinar si se han implementado correctamente los requerimientos.

Validacin
La validacin comprende actividades dentro de tres procesos bsicos:
Pruebas Medicin Aumento de la confiabilidad del software

Ayuda en la toma de decisiones con respecto a cundo hay que dejar de probar y liberar el software.

Verificacin y Validacin
El objetivo es establecer la seguridad de que el sistema es lo suficientemente bueno para su uso predeterminado.

Nivel de confianza requerido

La funcin del software

Las expectativas del usuario

El entorno de mercado

Funcin del software


El nivel de confianza depende de:
Lo crtico que sea al software para una organizacin.

Expectativas del usuario


El nivel de confianza depende de:
Lo que el cliente est dispuesto a aceptar

Algunos usuarios estn dispuestos a aceptar fallos en los sistemas cuando los beneficios de su uso son mayores que sus desventajas.

Entorno de mercado
El nivel de confianza depende de:
Los programas competidores, el precio que los clientes estn dispuestos a pagar y la agenda requerida para entregar el sistema.

Verificacin y Validacin
Existen dos aproximaciones para el anlisis y comprobacin de los sistemas:
Inspecciones de software: analizan y comprueban las representaciones del sistema. Pruebas del software: implican ejecutar una implementacin del software con datos de prueba.

Verificacin y Validacin

Especificaciones de requerimientos

Diseo de alto nivel

Especificacin formal

Diseo detallado

Programa

Prototipo

Prueba de programas

Tarea
Bajar y estudiar el documento del modelo MoProSoft
Identificar las actividades de verificacin y validacin en los distintos procesos Identificar los documentos a verificar y validar Escribir sus reflexiones, conclusiones y comentarios sobre las actividades de V&V requeridas en el modelo.

Traer el documento y su escrito para la siguiente clase.

Integracin de la Verificacin y Validacin al Proceso de Desarrollo


Hacer un anlisis de las actividades de verificacin y validacin en el modelo MoProSoft Qu actividades de verificacin marca el modelo? Qu actividades de validacin marca? Qu elementos son verificados y cules validados?

Cmo se integra la verificacin y validacin en el modelo MoProSoft?

La V&V en el proceso de desarrollo


La V&V es un proceso caro, por lo que se requiere una planifiacin cuidadosa. La V&V debe iniciarse en etapas tempranas del proceso de desarrollo. Los planes de prueba deben derivarse a partir de la especificacin y diseo del sistema.

La V&V en el proceso de desarrollo

Modelo V (Sommerville, p. 475)

El papel de los estndares en el proceso de V&V

El papel de los estndares en el proceso de V&V


Para la planificacin de la V&V
Se debe decidir un equilibrio entre las aproximaciones estticas (inspeccin) y las dinmicas (pruebas) Se debe pensar en estndares y procedimientos para las inspecciones y pruebas del software Se deben establecer listas de comprobacin para conducir las inspecciones de programas Se debe definir el plan de pruebas del software

El papel de los estndares en el proceso de V&V


La planificacin de las pruebas est relacionada con el establecimiento de estndares para el proceso de pruebas, no slo con la descripcin de los productos de pruebas.

Estndar IEEE-10122004

IEEE Std. 1012-2004


Este estndar aplica al software en desarrollo, en mantenimiento, o siendo reutilizado.

El trmino software tambin aplica a:


Firmware Microcode Documentacin

El proceso de V&V incluye:


Anlisis, Evaluacin, Revisin, Inspeccin, Auditora, Y pruebas de productos de software

IEEE Std. 1012-2004


Es un proceso estndar que define los procesos de V&V en trminos de actividades especficas y tareas relacionadas.

Tambin define el contenido del plan de V&V de software (SVVP), incluyendo un formato ejemplo.

Introduccin
El propsito del proceso de V&V es ayudar a construir la calidad dentro del software a lo largo de todo el ciclo de vida.

El proceso incluye: auditoras, anlisis, evaluaciones, revisiones, inspecciones, y pruebas de los productos y procesos de software.

Es una extensin de la administracin de programas e ingeniera de sistemas que utiliza una metodologa rigurosa para obtener concusiones y datos objetivos que den una retroalimentacin de la calidad, rendimiento y calendarizacin del software a la organizacin que lo desarrolla.

Seccin 1: Vista general del estndar


Da una visin general sobre los propsitos y alcances del estandar. Se organiza en:
lcance Propsito Campo de aplicacin Objetivos de la V&V Organizacin del estandar Audiencia objetivo Aclaraciones

Seccin 1.1: Alcance


Indica en qu casos y para qu puede ser aplicado el estndar.

Indica que el proceso de verificacin puede proporcionar evidencia objetiva para identificar si el software o sus procesos o productos asociados:
Estn acorde a los requerimientos para todas las actividades del ciclo de vida, durante cada ciclo de vida Satisface estndares, prcticas y convenios durante los procesos del ciclo de vida Cada actividad del ciclo de vida es terminada satisfactoriamente, y satisface todos los criterios para iniciar las actividades subsecuentes en el ciclo de vida.

Seccin 1.1: Alcance


Indica que el proceso de validacin provee evidencia para conocer si el software y sus productos y procesos asociados:
Satisface los requerimientos del software al final de cada actividad del ciclo de vida Resuelve el problema adecuado Satisface las necesidades de uso y del usuario indicadas.

Seccin 1.2: Propsito


El propsito es:
Establecer un marco de trabajo comn para los procesos, actividades y tareas de V&V para soportar cualquier proceso de ciclo de vida, incluyendo procesos de adquisicin, distribucin, desarrollo, operacin, y mantenimiento. Define las tareas de V&V, y las entradas y salidas requeridas Identifica las tareas de V&V mnimas correspondientes a un esquema de integridad del software de cuatro niveles. Define el contenido de un plan de V&V de software.

Seccin 1.3: Campo de aplicacin


Indica que es til para cualquier campo de aplicacin del software.

Identifica y describe los elementos que intervienen o se relacionan con un sistema de software, como:
Entorno Operador o usuario Hardware Otro software

Seccin 1.4: Objetivos de la V&V


Se busca obtener los siguientes beneficios:
Facilitar la deteccin y correccin temprana de anomalas en el software Exaltar aspectos administrativos dentro de los riesgos de proceso y producto Apoyar al proceso de ciclo de vida para asegurar la concordancia con el rendimiento, calendarizacin y presupuesto del programa Proveer una auditora temprana del rendimiento del sistema y del software Proveer evidencia objetiva de la concordancia del sistema t del software para soportar un proceso de certificacin formal Mejorar los procesos de desarrollo y mantenimiento Apoyar la mejora del proceso para un modelo integrado de anlisis del sistema.

Seccin 1.5: Organizacin

Se organiza en 7 clusulas, 3 tablas, 2 figuras y 8 anexos.

Seccin 2: Referencias

Reservado para referencias normativas.


Actualmente no se tiene ninguna.

Seccin 3: Definiciones, Abreviaciones y Acrnimos

Muestra las definiciones, abreviaciones y acrnimos de los principales conceptos usados dentro en el estndar.

Seccin 4: Niveles de integridad del software


Los niveles de integridad del software son un rango de valores que representan la complejidad, criticalidad, riesgo, nivel de seguridad, rendimiento, confiabilidad u otra caracterstica nica del proyecto deseada, que define la importancia del software para el usuario o el comprador.

Las caractersticas usadas para determinar el nivel de integridad varan dependiendo de la aplicacin y uso del sistema esperados.

Actividad
Pensar en una caracterstica que pueda ser utilizada para determinar el nivel de integridad de un sistema de software.

Seccin 4: Niveles de integridad del software


El nivel de integridad asignado al sistema puede cambiar conforme el software evoluciona.
El diseo, codificacin, procedimientos, y aspectos tecnolgicos implementados en el sistema o el software, pueden incrementar o disminuir el nivel de integridad del software.

El nivel de integridad del software establecido para un proyecto debe resultar de un acuerdo entre el comprador, el distribuidor, el desarrollador, y de autoridades aseguradoras independientes.

Seccin 4: Niveles de integridad del software


El estndar usa los niveles de integridad del software para determinar las actividades de V&V a ser realizadas.
Un nivel de integridad alto, requiere un conjunto mayor de procesos de V&V, y una aplicacin ms rigurosa de las tareas de V&V.

Los niveles de integridad son asignados a los requerimientos del software, funciones, grupos de funciones, componentes de software, o subsistemas.

Seccin 4: Niveles de integridad del software


El estndar define como ejemplo un esquema de niveles de integridad basado en los conceptos de consecuencia y potencial de mitigacin.

Descripcin

Seccin 4: Niveles de integridad del software

Nivel

Los elementos de software deben ejecutarse correctamente u ocurrirn consecuencias graves (prdida de vidas, prdida del sistema, prdidas sociales o econmicas). No es posible ningn tipo de mitigacin.
Los elementos del software deben ejecutarse correctamente o el uso esperado del sistema no ser alcanzado, causando consecuencias serias (degradacin grave del sistema, impacto social o econmico). Es posible una mitigacin de parcial a completa. Los elementos de software deben funcionar correctamente o alguna funcin esperada del sistema no ser alcanzada, causando consecuencias menores. Es posible una mitigacin completa. Los elementos de software deben funcionar correctamente o alguna funcin esperada del sistema no ser alcanzada, causando consecuencias casi imperceptibles. No se requiere mitigacin.

Seccin 4: Niveles de integridad del software


El nivel de integridad del sistema debe ser asignado despus de un anlisis del nivel de criticalidad del sistema.