Técnicas de Verificación de Código en Ingeniería de Software
La verificación de código es el proceso utilizado para verificar el código de software en busca de errores introducidos durante la fase de codificación.
El propósito del proceso de verificación del código es realizar una inspección exhaustiva del código del software. Este proceso incluye verificar la alineación de los requisitos del usuario con la fase de diseño.
Tenga en cuenta que el proceso de verificación del código no se centra en probar la corrección del programa. En su lugar, verifica que el código del software se haya traducido de acuerdo con la solicitud del usuario.
Las técnicas de verificación de código se dividen en dos categorías, dinámicas y estáticas. La tecnología dinámica se realiza mediante la ejecución de algunos datos de prueba.
La salida de un programa se prueba para encontrar errores en el código del software. Esta técnica sigue los métodos tradicionales utilizados para probar el código de software.
En tecnología estática, los programas se ejecutan conceptualmente sin ningún dato. En otras palabras, las técnicas estáticas no utilizan ninguno de los métodos tradicionales utilizados en las técnicas dinámicas.
Algunas técnicas estáticas de uso común son la lectura de código, el análisis estático, la ejecución simbólica y la inspección y revisión de código.
Lectura de código
La lectura de código es una forma de enfocarse en cómo leer y comprender la tecnología de programación de computadoras. Saber leer código es esencial para los desarrolladores de software.
El proceso de leer un programa de software para entenderlo se llama lectura de códigos o lectura de programas. En el camino, intente comprender la documentación, las especificaciones del software o el diseño del software.
El propósito de leer un programa es determinar la corrección y consistencia del código. Además, la lectura de código se realiza para mejorar el código de software sin cambiar completamente el programa o con una interrupción mínima de la funcionalidad actual del programa. La lectura de código también tiene como objetivo examinar el código y eliminar (arreglar) errores del mismo.
La lectura de códigos es un proceso pasivo que requiere concentración. Las actividades efectivas de lectura de código se enfocan principalmente en revisar "lo que es importante".
Las convenciones generales que puede seguir al leer código de software se enumeran a continuación.
- Averigua qué es importante: Al leer el código, el enfoque debe estar en buscar la técnica gráfica (negrita, cursiva) o la ubicación (comienzo o final de una sección). Las notas importantes se pueden resaltar en la introducción o al final del código del software. El nivel de detalle será el requerido por el código del software.
- Lea las cosas importantes: Cuando lea el código, concéntrese en verificar la sintaxis y la estructura, como paréntesis, bucles anidados y funciones, en lugar de buscar cosas insignificantes, como el nombre del desarrollador de software que escribió el código del software.
Análisis estático
El análisis estático incluye un conjunto de métodos para analizar el código fuente u objeto del software para comprender su funcionalidad y establecer estándares para verificar su corrección.
El análisis estático estudia el código fuente sin ejecutarlo y proporciona información relacionada con la estructura de los modelos utilizados, flujo de datos y control, precisión sintáctica, etc.
Por lo tanto, existen varios métodos de análisis estático, que se enumeran a continuación.
Análisis de flujo de control: En este análisis se examinan las estructuras de control utilizadas en el código, como la secuencia, selección y repetición. Se identifican construcciones incorrectas e ineficientes, y también se informa sobre código inalcanzable, es decir, código que el control nunca puede alcanzar.
Análisis de los datos: Este análisis garantiza que se apliquen las operaciones correctas a los objetos de datos, como las estructuras de datos y las listas vinculadas. Además, este enfoque garantiza el uso correcto de los datos definidos. El análisis de datos incluye dos métodos: dependencia de datos y análisis de flujo de datos.
Dependencia de datos es fundamental para determinar la dependencia de una variable con otra, lo cual es esencial para evaluar la precisión de sincronización entre múltiples procesadores.
Análisis de flujo de datos: Este método se utiliza para verificar las definiciones y referencias de las variables.
Análisis de fallos: En este análisis se examinan las fallas en el modelo, tanto los componentes del modelo incorrectos como el comportamiento incorrecto de los componentes del modelo. Se utiliza una descripción de transición de entrada-salida para identificar las condiciones que conducen a la falla. Para identificar fallas en condiciones específicas, se deben examinar las especificaciones de diseño del modelo.
Análisis de interfaz: Este proceso verifica y valida simulaciones interactivas y distribuidas para comprobar el código del software. Existen dos técnicas básicas de análisis de interfaz, a saber, análisis de interfaz de modelo y análisis de interfaz de usuario.
Análisis de la interfaz del modelo: Se encarga de verificar las interfaces del submodelo y determinar la precisión de la estructura de la interfaz.
Análisis de la interfaz de usuario: En este enfoque se examina la maqueta de la interfaz de usuario y se analizan las precauciones tomadas para evitar errores durante la interacción del usuario con el modelo. También se enfoca en la precisión con la que se integra la interfaz, en modelos holísticos y simulaciones.
Ejecución simbólica
La ejecución simbólica se centra en evaluar la precisión del modelo utilizando valores simbólicos en lugar de los valores de datos reales de las entradas.
La ejecución simbólica, también conocida como evaluación simbólica, se realiza proporcionando entradas simbólicas que generan expresiones para la salida.
Esta técnica utiliza técnicas matemáticas estándar para representar entradas de programa arbitrarias (variables) en forma simbólica.
Para realizar los cálculos, se utilizan máquinas que realizan operaciones algebraicas sobre expresiones simbólicas.
Estas expresiones incluyen datos simbólicos para su ejecución. La ejecución simbólica se representa como un símbolo de estado simbólico que consta de valores de símbolo variables, rutas y condiciones de ruta. Actualice el estado del símbolo en cada paso en una entrada arbitraria.
A continuación se enumeran los pasos que normalmente se siguen para actualizar el estado de un símbolo teniendo en cuenta todas las rutas posibles.
- Cree símbolos de lectura o entrada.
- Esta asignación crea una expresión de valor simbólico.
- Las condiciones en los estados de los símbolos agregan restricciones a las condiciones de la ruta.
La salida de la ejecución simbólica se representa en forma de un árbol de ejecución simbólica. Las ramas del árbol representan caminos hacia el modelo.
Hay un punto de decisión para representar un nodo del árbol. Este nodo está etiquetado con el valor simbólico de los datos en ese cruce.
Las hojas del árbol son caminos completos a través del modelo y representan el resultado de la ejecución simbólica. La ejecución simbólica ayuda a mostrar la corrección de todas las rutas de cálculo.
Tenga en cuenta que en este enfoque, el árbol de ejecución simbólica crece en tamaño y se vuelve más complejo a medida que crece el modelo.
Inspección y revisión del código
Esta técnica es una revisión formal y sistemática del código fuente para detectar errores. Durante este proceso, el software se envía al director del proyecto y a los usuarios para su aprobación.
El equipo de inspección verifica el código fuente en busca de errores antes de proporcionar cualquier comentario. Generalmente, este equipo consiste en el siguiente personal:
- anfitrión: Lleva a cabo reuniones de inspección, revisa los errores y se asegura de que se siga el proceso de inspección.
- lector: Explica el funcionamiento del código de software.
- Grabadora: Documenta cada error en el código del software.
Como se mencionó anteriormente, el lector interpreta el significado de un pequeño fragmento de código durante una revisión de código.
En otras palabras, el lector toma el fragmento de código de computadora y lo traduce a un idioma común (por ejemplo, inglés).
El proceso de inspección es para verificar si la implementación del código de software se completa de acuerdo con los requisitos del usuario.
En general, para realizar una inspección de código, se requieren los siguientes pasos.
- Planificación: Una vez que se compila el código y no hay más errores ni advertencias en el código del software, el autor envía los hallazgos al moderador responsable de formar el equipo de inspección. Una vez que se forma el equipo de inspección, el moderador distribuye la lista de verificación y otros archivos relevantes, como documentos de diseño, a cada miembro del equipo. Los moderadores planean revisar las reuniones y coordinar con los miembros del equipo.
- Descripción general: Este es un paso opcional y solo se requiere si los miembros del equipo de inspección no entienden cómo funciona el proyecto.
Esto libera a otros miembros del equipo de la tarea de pensar profundamente en el código del software.
- Autor: Observe en silencio el proceso de revisión del código y solo ofrezca ayuda cuando se le solicite explícitamente. El papel del autor es comprender los errores encontrados en el código del software.
Para familiarizar a los miembros del equipo, el autor proporciona detalles que les permitan comprender el código.
Preparar: Cada miembro del equipo de inspección inspecciona individualmente el código y sus materiales asociados.
Usan una lista de verificación para asegurarse de que se revisen todas las áreas problemáticas. Cada miembro del equipo de inspección mantiene una lista de verificación donde se mencionan todas las áreas problemáticas.
Consultar sesión: Esto se hace con todos los miembros del equipo para revisar el código del software. El moderador analiza el código que se está revisando con los miembros del equipo de revisión.
Hay dos listas de verificación para registrar los resultados de la inspección de códigos, a saber, la lista de verificación de inspección de códigos y la lista de errores de inspección.
Lista de verificación de código: Contiene un resumen de todos los diferentes tipos de errores encontrados en el código del software. Esta lista de verificación se utiliza para comprender la eficacia del proceso de inspección.
Comprobar la lista de errores: Proporciona detalles para cada error que requiere reelaboración. Tenga en cuenta que esta lista solo contiene detalles de aquellos errores que requirieron repetir todo el proceso de codificación.
Todos los errores en la lista de verificación se clasifican como mayores o menores. Un error se denomina error importante si causa un problema y los usuarios lo conocen más tarde. Los errores menores, por otro lado, son errores tipográficos e incumplimiento.
La clasificación de errores es útil cuando el software se va a entregar a los usuarios y hay poco tiempo para verificar todos los errores presentes en el código del software.
Al final de la sesión de inspección, se toma la decisión de aceptar el código en su forma actual o devolverlo para su revisión.
Si es necesario modificar el código del software, el autor hace todas las correcciones sugeridas y luego compila el código.
Cuando el código está libre de errores, se envía de vuelta al host. El moderador revisa el código que ha sido reelaborado.
Si el moderador está completamente satisfecho con el código del software, la revisión se completa oficialmente y comienza el proceso de prueba del código del software.
Si quieres conocer otros artículos parecidos a Técnicas de Verificación de Código en Ingeniería de Software puedes visitar la categoría Desarrollo.
Entradas Relacionadas 👇👇