Revisión de código automatizada


El software de revisión de código automatizado verifica el código fuente para verificar que cumpla con un conjunto predefinido de reglas o mejores prácticas. El uso de métodos analíticos para inspeccionar y revisar el código fuente para detectar errores o problemas de seguridad ha sido una práctica de desarrollo estándar tanto en dominios de código abierto como de software comercial. [1] Este proceso se puede realizar tanto de forma manual como automatizada. [2] [3] Con la automatización, las herramientas de software brindan asistencia con la revisión del códigoy proceso de inspección. El programa o herramienta de revisión generalmente muestra una lista de advertencias (violaciones de los estándares de programación). Un programa de revisión también puede proporcionar una forma automatizada o asistida por un programador para corregir los problemas encontrados. Este es un componente para dominar fácilmente el software. Esto está contribuyendo a la práctica de Software Intelligence . Este proceso suele llamarse "linting" ya que una de las primeras herramientas para el análisis de código estático se llamaba Lint .

Algunas herramientas de análisis de código estático se pueden usar para ayudar con la revisión de código automatizada. No se comparan favorablemente con las revisiones manuales, sin embargo, se pueden hacer de manera más rápida y eficiente. [ cita requerida ] Estas herramientas también encapsulan un conocimiento profundo de las reglas subyacentes y la semántica requerida para realizar este tipo de análisis, de modo que no requiere que el revisor de código humano tenga el mismo nivel de experiencia que un auditor humano experto. [2] Muchos entornos de desarrollo integrados también proporcionan una función básica de revisión de código automatizada. Por ejemplo , Eclipse [4] y Microsoft Visual Studio [5]Los IDE admiten una variedad de complementos que facilitan la revisión del código.

Junto a las herramientas de análisis de código estático , también hay herramientas que analizan y visualizan estructuras de software y ayudan a los humanos a comprenderlas mejor. Dichos sistemas están más orientados al análisis porque, por lo general, no contienen un conjunto predefinido de reglas para verificar el software. Algunas de estas herramientas (p. ej ., Imagix 4D , Resharper , SonarJ , Sotoarc , Structure101 , ACTool [6] ) permiten definir arquitecturas de destino y hacer cumplir que la implementación del software real no viole las restricciones de la arquitectura de destino.