sonar reglas pruebas para herramientas fuente estructuras estatico dinamico codigo analisis testing scala functional-programming static-analysis

testing - pruebas - reglas de analisis estatico de codigo



¿Hay alguna herramienta para realizar análisis estático del código de Scala? (9)

¿Hay alguna herramienta para realizar un análisis estático del código Scala, similar a FindBugs y PMD para Java o Splint para C / C ++? Sé que FindBugs funciona en el bytecode producido compilando Java, así que tengo curiosidad sobre cómo funcionaría en Scala.

Las búsquedas de Google (hasta el 27 de octubre de 2009) revelan muy poco.

Las búsquedas de Google (a partir del 1 de febrero de 2010) revelan esta pregunta.


Aquí hay una respuesta actualizada a partir de agosto de 2014 para algunos que están orientados o funcionan bien con Scala.

Personalmente, creo que los JVM o Java terminan con demasiados falsos positivos o tienen inspecciones que están destinadas principalmente a clases específicas de Java. Por ejemplo, dado que en Scala no tendemos a utilizar las colecciones de Java, no se necesitan todas las inspecciones basadas en la colección de findbugs. Otro ejemplo son las inspecciones para el uso de campos estáticos que son irrelevantes en Scala.



FindBugs analiza los códigos de bytes JVM, independientemente de la herramienta que los generó. Intenté usar FindBugs para verificar archivos .class generados por Scala. Desafortunadamente, FindBugs produjo muchas advertencias, incluso para los triviales programas de Scala.



Los Findbugs y otras herramientas basadas en bytecode funcionarán, en el sentido de que encontrarán fallas en tu código. Desafortunadamente, los enfoques basados ​​en bytecode se han ajustado a la salida de los compiladores javac, lo que significa que es probable que produzcan tasas de falsos positivos muy altas y omitan problemas básicos, ya que Scala producirá expresiones diferentes al compilador javac.



No sé mucho sobre Scala, pero si es compatible con Java, el producto Solo de Klocwork podría funcionar. Puedes encontrarlo aquí Klocwork Solo



Ahora hay Scalastyle que hace el trabajo que Checkstyle hace para Java. Esto incluye no solo el formateo de las verificaciones, sino también algunas verificaciones de fuentes conocidas de errores, como una clase que implementa hashCode () pero no es igual.

Actualmente hay unos 40 controles, pero los estamos agregando todo el tiempo.

Para obtener más información, visite www.scalastyle.org .