¿Herramienta para el análisis estático incremental del código?

¿Hay alguna herramienta gratuita que permita el análisis estático incremental del código (para SVN y preferiblemente Git)? Actualmente estamos usando Sonar (2.12 ¿creo?) Pero el problema es el time que necesita para analizar todo el código en nuestro proyecto, que es de 40-60 minutos. Y tenemos que multiplicarlo ya que tenemos varias twigs que trabajan en diferentes subproyectos.

Es por eso que estoy buscando una herramienta que pueda analizar el código solo de la última confirmación (que, según mi conocimiento, Sonar no es compatible) o solo del código que se ha modificado en las últimas X horas / días / lo que sea.

He encontrado el complemento Cutoff para Sonar, que supuestamente hace lo que quiero (solo comtesting el código del file que se modificó después de una date determinada) pero:

  1. Todavía necesito verificar si funciona
  2. compruebe si admite cambios dynamics de date (por lo que solo tomaría en consideración el código de, por ejemplo, el último día y no que tendría que cambiar la date de exclusión manualmente todos los días).
  3. no parece estar bien soportado (último cambio en 2010 y todavía está en la versión 0.1)

Sería perfecto si solo verificara el código de la última confirmación, pero no lo he visto en ninguna parte.

También como una pregunta secundaria: ¿es bueno o debería evitarse ejecutar el análisis después de cada confirmación (es decir, utilizando el complemento hudson sonar)? En mi último equipo teníamos un sonar ejecutado así y recibíamos un correo electrónico instantáneo si lo "rompíamos" (se agregaba una crítica importante del código). Esto fue muy conveniente ya que sabíamos quién tuvo la culpa (según la información del compromiso). ¿O deberíamos analizarlo con less frecuencia (digamos una vez a la semana)? En ese caso, tendría que verificar si Sonar podría decir quién cometió el código problemático.

Hay muy pocas, especialmente porque hay muchas herramientas / reglas que se basan en caminar las posibles stacks para limitar la cantidad de falsos positivos. Por lo tanto, un cambio en un ensamblaje también requeriría una reevaluación de los ensamblajes llamantes, no es tan simple como parece desde el exterior.

Para acelerar el análisis estático, considere invertir en un disco de memory o un SSD para almacenar las fonts y los binarys. Use una máquina multi-core, tenga mucha memory y ejecute la versión x64 de estas herramientas siempre que sea posible. Muchas de estas herramientas son primero E / S y luego CPU limitada. La mayoría de las mejoras se pueden encontrar al networkingucir la latencia y el performance del sistema y la cantidad de intercambio requerido (al tener suficiente memory) para networkingucir aún más las E / S.

También puede usar una compilation comstackda / validar compilation en un server de compilation para download el time de compilation a una máquina diferente que se puede compartir entre los desarrolladores.

También existen herramientas para el análisis estático como:

  1. PMD
  2. Checkstyle
  3. FindBugs

Altas posibilidades de que le resulte una alternativa útil para el Sonar.

No mencionó si usa la herramienta de continuous integration o no. Probablemente lo necesitará para ejecutar inspecciones con cualquiera de estas herramientas.

Me doy count de que llego tarde a la fiesta, pero hay otra herramienta que podría ser relevante para ti: Teamscale

Teamscale se conecta a su repository (por ejemplo, Git o SVN) y analiza su código de forma incremental, justo después de cada confirmación. Con eso, recibes comentarios sobre problemas de código nuevo / fijo casi inmediatamente después de tu confirmación. También puede ver el historial completo de su código, los falsos positivos de la list negra y mucho más. (Descripción completa: soy un desarrollador de Teamscale)

    Intereting Posts