Articulo de referencia

Lista de herramientas para el análisis estático de código

Esta es una lista de herramientas destacadas para el análisis estático de programas (análisis de programas es sinónimo de análisis de código). Herramientas de análisis de código...

Esta es una lista de herramientas destacadas para el análisis estático de programas (análisis de programas es sinónimo de análisis de código).

Herramientas de análisis de código estático

Idiomas

C , C++

  • Análisis estático de CODESYS : complemento integrado para CODESYS (código de aplicación implementado, por ejemplo, en ST, FBD, LD). 
  • ESLint : comprobador y formateador de sintaxis de JavaScript . 
  • Closure Compiler de Google : un optimizador de JavaScript que reescribe el código para que sea más rápido y más pequeño, y comprueba el uso de funciones nativas de JavaScript. 
  • CodeScene Análisis del comportamiento del código. 
  • Ataques de fluidos
  • JSHint : una bifurcación de JSLint impulsada por la comunidad. 
  • JSLint Comprobador y validador de sintaxis de JavaScript. 
  • Klocwork
  • Semgrep : una herramienta de análisis estático que ayuda a definir estándares de código y a detectar errores de forma temprana. También dispone de un servicio de integración continua y una biblioteca de reglas. 
  • Entender

Objective-C , Objective-C++

  • Clang El proyecto gratuito Clang incluye un analizador estático. A partir de la versión 3.2, este analizador está incluido en Xcode . [ 14 ] 
  • Infer Desarrollado por un equipo de ingeniería de Facebook con colaboradores de código abierto. Se centra en punteros nulos, fugas de memoria, uso de API y otras comprobaciones de lint. Disponible como código abierto en GitHub. 
  • Entender

Opa

  • Opa incluye su propio analizador estático. Dado que el lenguaje está diseñado para el desarrollo de aplicaciones web, el compilador con tipado estático fuerte verifica la validez de los tipos de alto nivel para los datos web y previene por defecto muchas vulnerabilidades, como ataques XSS e inyecciones de código en bases de datos.
  • Lintian : Comprueba si los paquetes de software de Debian presentan inconsistencias y errores comunes. 
  • Rpmlint : Comprueba si hay problemas comunes en los paquetes rpm. 
  • Perl::Critic : una herramienta para ayudar a aplicar las mejores prácticas comunes de Perl. La mayoría de estas mejores prácticas se basan en el libro Perl Best Practices de Damian Conway . 
  • PerlTidy : programa que actúa como verificador de sintaxis y probador/aplicador de buenas prácticas de codificación en Perl. 
  • Padre : un entorno de desarrollo integrado (IDE) para Perl que también proporciona análisis de código estático para detectar errores comunes de principiantes. 

PL/SQL

PowerBuilder , PowerScript

  • PyCharm : un entorno de desarrollo integrado (IDE) multiplataforma para Python con inspecciones de código disponibles para analizar el código sobre la marcha en el editor y realizar análisis masivos de todo el proyecto. 
  • PyDev : un entorno de desarrollo integrado (IDE) de Python basado en Eclipse con análisis de código disponible sobre la marcha en el editor o al guardar el código. 
  • Pylint : analizador de código estático. Bastante estricto; incluye también muchas advertencias de estilo. 
  • Ataques de fluidos
  • Klocwork
  • Semgrep es un analizador de código estático que ayuda a definir estándares de código y a detectar errores de forma temprana. También dispone de un servicio de integración continua y una biblioteca de reglas. 
  • Entender
  • Visual Expert : una herramienta de análisis de código SQLServer [ 16 ] que informa sobre problemas de programación y ayuda a comprender y mantener código complejo (análisis de impacto, documentación del código fuente, árboles de llamadas, matriz CRUD, etc.). 

Herramientas con detección de código duplicado

Herramientas de métodos formales

Herramientas que utilizan métodos sólidos , es decir, que sobreaproximan un modelo riguroso, se basan en un enfoque de métodos formales para el análisis estático (por ejemplo, mediante aserciones de programas estáticos ). Los métodos sólidos no presentan falsos negativos para programas sin errores, al menos con respecto al modelo matemático idealizado en el que se basan (no existe una solidez "incondicional"). Cabe señalar que no hay garantía de que informen de todos los errores de los programas con errores; informarán de al menos uno.

Véase también

Referencias

  1. "CPAchecker" . 8 de febrero de 2015.
  2. "Análisis estático en Xcode" . Apple. Archivado del original el 5 de septiembre de 2009. Consultado el 3 de septiembre de 2009 .
  3. "Ejecutar el analizador dentro de Xcode" . Archivado del original el 5 de diciembre de 2021. Consultado el 14 de enero de 2022 .
  4. "Herramientas y lenguajes compatibles para pruebas de seguridad de aplicaciones" . codedx.com . Consultado el 25 de abril de 2017 .
  5. "Sitio web de Coverity Scan" . Consultado el 23 de agosto de 2023 .
  6. «Sitio web de ECLAIR» . Consultado el 7 de octubre de 2021 .
  7. "Novedades de CppDepend" . cppdepend.com . Consultado el 1 de marzo de 2023 .
  8. "Readme.md de las guías de estilo de Google" . GitHub . Consultado el 8 de noviembre de 2021 .
  9. Malcolm, David (26 de marzo de 2020). "Análisis estático en GCC 10" . Red Hat Developer . Recuperado el 13 de abril de 2022 .
  10. "¡UNIX es libre!" . lemis.com. 24-01-2002.
  11. "NDepend lo nuevo" . ndepend.com . Consultado el 15 de junio de 2022 .
  12. "PMD - Browse /pmd/5.0.0" . SourceForge .net . Consultado el 9 de diciembre de 2012 .
  13. "Eliminar StrictDuplicateCodeCheck y todo el paquete · Problema n.° 523 · checkstyle/Checkstyle" . GitHub .
  14. "Análisis estático en Xcode" . Apple . Consultado el 3 de septiembre de 2009 .
  15. "Visual Expert for Oracle - Analizador de código PL/SQL" . www.visual-expert.com . 24/08/2017.
  16. "Visual Expert para SQL Server - Analizador de código Transact SQL" . www.visual-expert.com . 24/08/2017.
  17. Cousot, Patrick (2007). «El papel de la interpretación abstracta en los métodos formales». Quinta Conferencia Internacional IEEE sobre Ingeniería de Software y Métodos Formales (SEFM 2007) . Conferencia Internacional IEEE sobre Ingeniería de Software y Métodos Formales. págs. 135–140 . doi : 10.1109/SEFM.2007.42 . ISBN  978-0-7695-2884-7. S2CID 67212 . 
  • Lista de herramientas de análisis de código estático del Consorcio de Seguridad de Aplicaciones Web
  • Analizadores de seguridad de código fuente SAMATE
  • SATE Exposición de herramientas de análisis estático 
  • "Una comparación de herramientas para la detección de errores en Java" , por Nick Rutar, Christian Almazan y Jeff Foster, de la Universidad de Maryland . Compara Bandera, ESC/Java 2, FindBugs , JLint y PMD.
  • "Minireseña de Java Bug Finders" , por Rick Jelliffe, O'Reilly Media .
  • "Analizador de código estático"