Pruebas estáticas: qué son, cómo hacerlas y qué técnicas utilizar

Andrea Delacruz
Pragma
Published in
4 min readJul 26, 2024

Tienen la capacidad de identificar problemas o errores con antelación lo que hace que se reduzca el tiempo y los costos en la corrección de errores en la fase después del desarrollo, aumentan el entendimiento del código y facilitan a los miembros del equipo la colaboración. Son muy importantes en el proceso de desarrollo porque contribuye a la creación de productos más fuertes y de alta calidad.

¿Que son las pruebas estáticas?

Son una técnica de prueba con la que se examina los defectos sin ejecutar el código, están hechas para evitar errores con antelación así como también para identificarlos y resolverlos más fácilmente.

Hay dos tipos principales de técnicas de prueba, a saber:

  • Extensiones manuales activas: esto incluye el análisis de código manualmente, que se conoce como revisiones.
  • Ejecución del análisis automático de acuerdo con las herramientas: son un análisis estático que realiza las herramientas.

Técnicas de pruebas estáticas:

  • Reseñas informales:

Son revisiones rápidas de código entre compañeros, un desarrollador pide a otros que revisen su código y den comentarios. Esta revisión se fundamenta en la experiencia y el conocimiento de los revisores, y se centra en identificar errores claros, aumentar la legibilidad y garantizar que el código siga la mejor práctica. Comunicación directa y generalmente realizada directamente o mediante una herramienta de colaboración como comentario en la versión del sistema de control.

  • Tutoriales:

Son secciones de alineación en las que un desarrollador con experiencia sirve de guía para otros desarolladores con el código, explicando cómo funciona y por qué se tomaron ciertas decisiones de diseño, lo que no solo ayuda en la detección de errores sino que también sirve como oportunidad de aprender y tener experiencia para los menos experimentados, los tutoriales pueden ser formales o informales, según las necesidades del equipo.

  • Reseñas técnicas:

son revisiones formales y estructuradas que se centran en evaluar el diseño y la implementación técnica del código en las que un grupo de expertos revisó otros códigos y artefactos relacionados para identificar problemas de diseño, inconsistencia y campos de mejora, generalmente se documenta y puede llegar a ser una métrica específica para evaluar la calidad del código.

  • Inspecciones:

Son revisiones formales y estrictas que se basan en un proceso en el cual como regla se incluye la preparación de materiales, el ensamblaje de inspección y el monitoreo de los problemas identificados. Los roles en la auditoría incluyen el autor del código, uno o más inspectores y el moderador que dirige el proceso; Estas inspecciones por lo general detectan defectos en el código y garantizan el cumplimiento de los estándares de calidad.

  • Análisis estatico:

Técnicas automatizadas realizan la revisión del código sin ejecutarlo y utiliza herramientas especializadas para identificar variedad de problemas tales como: errores de sintaxis, violaciones de estándar de código, vulnerabilidades de seguridad y problemas de rendimiento, dichas herramientas se integran con IDE para brindar feebacks en tiempo real.

  • Flujo de Datos:

Revisa como se transforman y se mueven los datos a través del código y ayuda a identificar problemas como: uso de varibales no inicializadas, perdida de datos y fuga de memoria. El analizar el flujo de datos garantiza que los datos se administren correctamente y el código sea seguro y eficiente.

  • Flujo de Control:

Se centra en la estructura lógica del código, examinando rutas de ejecución, ayuda a identificar problemas como: bucles infinitos, condiciones y caminos de código inalcanzables y asegura que todas las posibles rutas se comporten según lo previsto.

Herramientas utilizadas para pruebas estáticas

a continuación algunas y su documentación:

¿Que es la revisión de pruebas?

Es un proceso fundamental en el desarrollo que implica que el código fuente, la documentación y otros artefactos se verifican sin realizarlos. Este proceso tiene como objetivo identificar errores, defectos, problemas de diseño y violaciones de los estándares de código de las primeras etapas del desarrollo.

¿Por qué realizarlas?

  • Corrección y detección anticipada de defectos.
  • Reducción de defectos en etapas posteriores a las pruebas.
  • Reducción de costos y tiempos de respuesta.
  • Mejora en la calidad del código..
  • Reducción de plazos de desarrollo.
  • Mejora trabajo en equipo y conocimiento.

¿Que se prueba en las pruebas estaticas?

  • Casos de pruebas unitarias
  • Documento de requisitos
  • Casos de uso
  • Requisitos del sistema/funcionales
  • Prototipos
  • Documentación de especificaciones del prototipo
  • Datos de prueba
  • Matriz trazabilidad
  • Manual de usuario
  • Plan de pruebas
  • Scripts de pruebas automatizadas y rendimiento

¿Como se realizan?

Para realizar pruebas estáticas:

  • Realice el proceso de verificación para inspeccionar completamente el diseño de la aplicación.
  • Use la lista de verificación para cada documento considerado para asegurarse de que todas las revisiones estén completamente cubiertas.

Las diversas actividades para realizar pruebas estáticas:

  1. Comprobación de requisitos casos de uso: está permitido que se identifiquen todas las acciones del usuario final, así como cualquier entrada y salida relacionada con ellas. Cuantos más detalles y casos completos de uso, más precisos y completos puedan ser los ejemplos de prueba.
  2. Verificación de los requisitos funcionales: garantiza que los requisitos funcionales determinan todos los elementos necesarios. También analiza la funcionalidad de la base de datos, interfaces y requisitos de hardware, software y red.
  3. Revisión de la arquitectura: todos los procesos: como servidores, diagramas de red, definiciones de protocolo, equilibrio de carga, accesibilidad a la base de datos, equipos de prueba, etc.
  4. Verificación del modelo de prototipo/pantalla: esta etapa incluye verificar los requisitos y casos de uso.
  5. Validación del diccionario de campos: cada campo de la interfaz de usuario se determina lo suficientemente bien como para crear casos de verificación en el nivel de campo. Los campos se prueban en términos de longitud mínima y máxima, valores de lista, mensajes de error, etc.

--

--