Verificación y Validación de Software

Unidad 1. Introducción al proceso de verificación y validación.
1.1  Contextualización de la verificación y validación.
1.2  Terminología del proceso.
1.3  El proceso de la verificación y validación.
1.4  Tipos generales de los errores.
1.5  Responsabilidad de pruebas.
1.6  Organigrama de proceso de testing (un modelo propuesto).
1.7  Costos del error.


1.1  Contextualización de la verificación y Validación
Verificación y Validación v&v
Conjunto de procesos de comprobación y análisis que aseguran que el software que se desarrolla está acorde a su especificación y cumple las necesidades de los clientes.
Verificación
¿Estamos construyendo el producto correctamente?
Se prueba que el software cumple los requisitos funcionales y no funcionales de su especificación.
validacionyverificacionsoftwareisrael.blogspot.com
Validación
¿Estamos construyendo el producto correcto?
Comprueba que el software cumple las expectativas que el cliente espera.
Objetivos de V&V
Descubrir defectos (para corregirlos)
·         Provocar fallas (una forma de detectar defectos)
·         Revisar los productos
Evaluar la calidad de los productos
·         El probar o revisar el software da una idea de la calidad del mismo.
Identificación y Corrección de Defectos
Identificación de defectos
·         Es el proceso de determinar que defecto o defectos causaron la falla.
Corrección de defectos
·         Es el proceso de cambiar el sistema para remover los defectos.
¿Quién Verifica?
·         Los desarrolladores
·         Verificadores (especialistas en verificación)
·         Depende de los tipos de pruebas que se vallan a aplicar.
Revisiones
·      Informales: No hay procedimientos definidos, por lo que la revisión se realiza de la forma más flexible.
·     Semi-formales: Se definen unos procedimientos mínimos a seguir.
·    Formales: Se define completamente el proceso. Revisión en detalle, por una persona o grupo distintos del autor 

Imagen 1.- Mapa mental. Contextualización de la verificación y validación

1.2  Terminología de proceso del software
¿Qué es un proceso de software?
El proceso de software es un conjunto de actividades y resultados asociados que conducen a la creación de un producto de software. Somerville 2002.


Imagen 2.- Mapa mental. Terminología de proceso del software

1.3  El proceso de la verificación y validación.
El SDP define el qué, quién, cuándo y cómo del desarrollo de software.
Cuatro actividades fundamentales que son comunes para todos los procesos de desarrollo de software:
·         Especificación del software
·         Desarrollo del software
·         Validación del software
·         Evolución del software
       Modelo de proceso:
·         Descripción simplificada (abstracción) de un proceso de desarrollo de software real.

Testing: terminología básica
·         Error: desatino del programador (el cual resulta en la introducción de un bug).
·         Defecto, “bug”: manifestación concreta del error de programación en el código.
·         Falla: resultado de la ejecución de un bug.
·         Un test es una prueba de software, compuesta usualmente por:
·         una precondición (condiciones bajo las cuales se ejecuta el código a testear),
·         una porción de código (bloque a testear).
·         una condición de aceptación (criterio para saber si el código “pasó” la prueba).
Existen diferentes tipos de testing, de acuerdo a las características de sus partes. Algunos de estos tipos son los siguientes:
·         Sistema: el bloque a testear es todo el sistema.
·         Integración: el bloque a testear es la composición de varios módulos, y la condición de aceptación corresponde a propiedades de la ejecución combinada de los módulos.
·         Regresión: la condición de aceptación es preservar el comportamiento de versiones anteriores del software.
·         Diferencial: la condición de aceptación es mantener un comportamiento similar a otro software con el mismo propósito que el testeado.


Imagen 3.- Mapa mental. El proceso de la verificación y validación.




1.4 Tipos generales de los errores.

Sintácticos. Los errores de sintaxis, o sintácticos, ocurren cuando el programador escribe código que no va de acuerdo a las reglas de escritura del lenguaje de programación.

Lógicos. Los errores lógicos ocurren a causa de un mal diseño del programa. Puede ocurrir que una línea de código observe todas las reglas sintácticas del lenguaje, pero el código tenga una lógica equivocada.

Depuradores
·      Un sistema interactivo de depuración proporciona posibilidades al programador que le ayudan en la prueba y depuración de programas.

·       Permite depurar o “limpiar” los errores de un programa.

Imagen 4.- Mapa mental. Tipos generales de los errores.


1.5  Responsabilidad de pruebas.
El método fagan para inspecciones

El método de inspección más utilizado hasta el momento, es el de Fagan (1976).
Fagan (1976) menciona que las inspecciones son un método formal, eficiente y económico para encontrar errores en el diseño y el código.
Para su método, Fagan propone un conjunto de roles y un proceso a seguir durante las inspecciones.

El equipo
·         Moderador:
·         Diseñador
·         Implementador/Codificador
·         Encargado de pruebas
El Moderador
·        Es la persona clave en una inspección exitosa.
·        Debe ser un programador competente, pero no necesita ser un técnico experto en el programa siendo inspeccionado.
·    Es recomendable usar un moderador de un proyecto no relacionado, para preservar la objetividad, e incrementar la integridad de la inspección.
·        Debe administrar al equipo de inspección y ofrecer un liderazgo.
Sus tareas incluyen:
·        Calendarizar reuniones y lugares de reunión
·         Reportar los resultados de la inspección
·         Dar seguimiento al retrabajo
El diseñador
Es el responsable de producir el diseño del programa.

El implementador/codificador
El responsable de transformar el diseño en código.

El encargado de las pruebas

El responsable de escribir y/o ejecutar los casos de prueba o alguna otra forma de probar los productos del diseñador y el codificador.
Imagen 5.- Mapa mental. Responsabilidad de pruebas.


1.6  Organigrama de proceso de testing (un modelo propuesto).
Ciclo de las pruebas
Diversos Testing como se muestra en la
siguiente tabla
Estrategias de pruebas: Planea la estrategia que se a seguir para analizar, diseñar, implementar y ejecutar las pruebas de algún proyecto, así mismo se define qué tipos de pruebas se van a realizar y como se ejecutaran.
Recursos del plan de pruebas: Se identifican los recursos humanos y no humanos (hardware, software, herramientas de soporte, configuración de entorno de pruebas, entre otros), necesarios para desarrollar el proceso del plan de pruebas de la solución del sistema
Evaluación de pruebas ejecutadas: Describe los métodos de evaluación de las pruebas ejecutadas, de tal forma que permitirá evaluar los grados de aceptación de las pruebas
Técnica de la especificación de las pruebas: Es la aplicación de las estrategias planificadas previamente haciendo uso de los recursos disponibles para estas
Imagen 6.- Mapa mental. Organigrama de proceso de testing (un modelo propuesto).


1.7 Costos del error.
Costos de error
Primer problema: los errores se aceptan. Esto no es productivo en el tratamiento del problema
Bug: algo que se arrastra por propia voluntad en el código y produce problemas. No atribuible a una persona, involuntario los bugs se pueden aceptar, los defectos NO el primer paso para lograr calidad es identificar los defectos como lo que son, fallas individuales
Spoilage: esfuerzo dedicado al diagnóstico y eliminación de fallas que fueron introducidas durante el proceso de desarrollo.
Representa el 55 % del costo total del sistema
El costo de detección y corrección de errores durante y después de las etapas de integración y test resultan entre 10 y 15 veces más que en las etapas de desarrollo y codificación.

Estudios realizados concluyen que el medio ambiente en el que se desarrolla el Software contribuye enormemente al aumento de errores.
Imagen 6.- Mapa mental.Costos del error.



Referencia

https://es.slideshare.net/ocomur/pruebas-unitarias-9368721

Comentarios

Entradas más populares de este blog