Verificación de software
Verificación de software es una disciplina de la ingeniería de software, lenguajes de programación y teoría de la computación cuyo objetivo es asegurar que el software satisfaga los requisitos esperados.
Amplio alcance y clasificación
Una definición amplia de verificación la relaciona con las pruebas de software. En ese caso, existen dos enfoques fundamentales para la verificación:
- Verificación dinámica, también conocido como experimentación, pruebas dinámicas o simplemente pruebas. - Esto es bueno para encontrar fallas ( bugs de software).
- Verificación estatica, también conocido como análisis o, pruebas estáticas - Esto es útil para probar la corrección de un programa. Aunque puede resultar en falsos positivos cuando hay uno o más conflictos entre el proceso un software realmente hace y lo que la verificación estática supone que lo hace.
Bajo el Sistema de Clasificación Informática ACM, los temas de verificación de software aparecen en "Software y su ingeniería", dentro de "Creación de software", mientras que la verificación de programas también aparece en Teoría de la computación en Semántica y razonamiento, razonamiento del programa.
Verificación dinámica (Prueba, experimentación)
La verificación dinámica se realiza durante la ejecución del software, y controla dinámicamente su comportamiento; se conoce comúnmente como la fase de prueba. La verificación es un proceso de revisión. Dependiendo del alcance de las pruebas, podemos clasificarlas en tres familias:
- Prueba en el pequeño: una prueba que comprueba una sola función o clase (prueba Unit)
- Prueba en el gran: una prueba que comprueba un grupo de clases, como
- Prueba de módulo (un módulo único)
- Prueba de integración (más de un módulo)
- Prueba de sistema (todo el sistema)
- Prueba de aceptación: una prueba formal definida para comprobar los criterios de aceptación para un software
- Prueba funcional
- Prueba no funcional (performance, test de estrés)
El objetivo de la verificación dinámica del software es encontrar los errores introducidos por una actividad (por ejemplo, tener un software médico para analizar datos bioquímicos); o por el rendimiento repetitivo de una o más actividades (como una prueba de estrés para un servidor web, es decir, comprobar si el producto actual de la actividad es tan correcto como era al comienzo de la actividad).
Verificación estática (Análisis)
La verificación estática es el proceso de comprobar que el software cumple con los requisitos inspeccionando el código antes de ejecutarlo. Por ejemplo:
- Verificación de los convenios de código
- Detección de malas prácticas (anti-pattern)
- Cálculo de métricas de software
- Verificación formal
Verificación por Análisis - El método de verificación de análisis se aplica a la verificación por investigación, cálculos matemáticos, evaluación lógica y cálculos utilizando métodos de libro de texto clásico o métodos de computadora de uso general aceptados. El análisis incluye muestreo y correlacionamiento de datos medidos y resultados de prueba observados con valores estimados calculados para establecer la conformidad con los requisitos.
Alcance limitado
Cuando se define más estrictamente, la verificación es equivalente sólo a las pruebas estáticas y se pretende aplicar a los artefactos. Y, la validación (de todo el producto del software) sería equivalente a pruebas dinámicas y se pretende aplicar al producto del software de funcionamiento (no sus artefactos, excepto los requisitos). Observe que los requisitos de validación pueden realizarse estadística y dinámicamente (ver validación del artefacto).
Comparación con validación
La verificación de software a menudo se confunde con la validación de software. La diferencia entre verificación y validación:
- Software Verificación pregunta: "¿Estamos construyendo el producto correctamente?"; es decir, ¿el software se ajusta a sus especificaciones? (Como una casa se ajusta a sus planos.)
- Software validación pregunta: "¿Estamos construyendo el producto adecuado?"; es decir, ¿hace el software lo que realmente requiere el usuario? (Como una casa se ajusta a lo que el propietario necesita y quiere.)
Contenido relacionado
Tabla de métodos virtuales
ALGOL Y
Hacer bucle while
API de repositorio de contenido para Java
Datosflex