Verificación y Validación de Software: Proceso, Fases y Herramientas
Clasificado en Diseño e Ingeniería
Escrito el en español con un tamaño de 4,89 KB
Objetivos de las Pruebas de Software
El proceso de pruebas del software tiene dos objetivos principales:
- Demostrar al desarrollador y al cliente que el software cumple con sus requerimientos.
- Descubrir defectos en el software donde el comportamiento es incorrecto, no deseable o no cumple con su especificación.
Diferencias entre Verificación y Validación
Verificación y validación no son lo mismo:
- Verificación: Implica comprobar que el software está de acuerdo con su especificación.
- Validación: Es un proceso más general. Su objetivo es asegurar que el sistema software satisface las expectativas del cliente.
El nivel de confianza requerido depende del propósito del sistema, las expectativas de los usuarios y el entorno de mercado.
Aproximaciones para el Análisis y Comprobación de Sistemas
Dentro del proceso de V & V, existen dos aproximaciones complementarias:
- Inspecciones de software: Analizan y comprueban las representaciones del sistema (documento de requerimientos, diagramas de diseño, código fuente).
- Pruebas de software: Implican ejecutar una implementación del software con datos de prueba.
Tipos de Pruebas
- Pruebas de validación: Intentan demostrar que el software es el que el cliente quiere (satisface sus requerimientos).
- Pruebas de defectos: Intentan revelar defectos en el sistema en lugar de simular su uso operacional.
Pruebas y Depuración
Tienen diferentes objetivos:
- Verificación y validación: Intentan establecer la existencia de defectos.
- Depuración: Localiza y corrige estos defectos.
Pruebas de Regresión
Se utilizan para comprobar que los cambios en el programa no introducen nuevos defectos.
Planificación de las Pruebas
Relacionada con el establecimiento de estándares para el proceso de las pruebas, no sólo con la descripción de los productos de las pruebas.
Fases Principales del Proceso de Prueba
- Requerimientos.
- Elementos probados.
- Calendario de pruebas.
- Procedimientos de registro de las pruebas.
- Requerimientos hardware y software.
- Restricciones.
Proceso de Inspección de Programas
Las inspecciones de programas son revisiones cuyo objetivo es la detección de defectos en el programa.
Antes de una inspección, es esencial que:
- Se tenga una especificación precisa del código.
- Los miembros del equipo estén familiarizados con los estándares de la organización.
- Se haya distribuido una versión compilable y actualizada del código.
Análisis Estático Automatizado
Los analizadores estáticos son herramientas software que escanean el código fuente de un programa y detectan posibles defectos y anomalías.
El objetivo es llamar la atención del inspector sobre las anomalías del programa.
Etapas del Análisis Estático
- Análisis del flujo de control.
- Análisis del uso de los datos.
- Análisis de interfaces.
- Análisis del flujo de información.
- Análisis de caminos.
Verificación y Métodos Formales
Los métodos formales de desarrollo del software se basan en representaciones matemáticas del software, normalmente como una especificación formal.
Pruebas del Sistema
Dos actividades fundamentales:
- Prueba de componentes
- Prueba integral
El proceso de pruebas del software tiene dos objetivos distintos:
- Demostrar al desarrollador y al cliente que el software satisface sus requerimientos.
- Descubrir defectos en el software en que el comportamiento de éste es incorrecto, no deseable o no cumple su especificación del sistema —probar el sistema como un todo.
Fases de las Pruebas del Sistema
- Pruebas de integración: El equipo de pruebas tiene acceso al código fuente.
- Pruebas de entregas: Se prueba una versión del sistema que podría ser entregada a los usuarios.
Cuando los clientes se implican en las pruebas de entregas, a menudo se denominan pruebas de aceptación.
Aproximaciones para Diseñar Casos de Prueba
- Pruebas basadas en requerimientos.
- Pruebas estructurales.
- Pruebas de particiones.
Banco de Pruebas de Software
Un banco de pruebas del software es un conjunto de herramientas para soportar el proceso de pruebas.