Me gustaría obtener comentarios de personas que han usado o evaluado Coverity para analizar estáticamente el código Java. Sé que es popular en el mundo de C/C++, pero ¿vale la pena gastar el dinero para el análisis de Java o estoy mejor con PMD, Findbugs y otras herramientas de código abierto?Coverity para análisis estático de Java
Respuesta
Introduciré una respuesta algo relevante. He usado Klocwork para el código Java y el código C. Klocwork es un competidor cercano de Coverity ... en cuanto a los costos, son más o menos lo mismo (mire con cuidado, Klocwork parece más barato hasta que realmente compre lo que necesita), y en lo que respecta a las características, ellos luchan de un lado a otro.
Para C/C++, es genial. Para Java ... bueno, ayudó a encontrar una gran cantidad de pérdidas de recursos (# $ @^# ing los desarrolladores de Java parecen olvidar que los recursos como los manejadores de archivos no son basura), pero no parece encontrar muchos ". "errores" críticos Probablemente se deba a que el lenguaje mismo ayuda a proteger contra algunos de los errores más básicos pero difíciles de encontrar (desbordamientos de matriz, corrupción de punteros, etc.).
Obtenga Coverity para ejecutar una demostración, están más que felices de hacerlo. Ver qué tipo de cosas encuentran.
Si no está utilizando nada hoy, comenzaría con Findbugs y PMD. Son fáciles de instalar y usar. Concéntrese en revisar y corregir errores de corrección con Findbugs primero: recomiendan comenzar con errores de corrección de gravedad Alta y Media ya que las comprobaciones tienen muy pocos falsos positivos y obtendrá un buen rendimiento de su tiempo. Haga que los desarrolladores usen PMD para limpiar el código y el complemento Findbugs en Eclipse para revisar el nuevo código. Trabajar progresivamente hará que los desarrolladores comprendan y acepten la utilidad de estas herramientas.
Las comprobaciones de Java de Coverity son todavía débiles en comparación con sus comprobadores de C/C++. Usamos Findbugs, PMD, Coverity y Klocwork porque todos tienen diferentes puntos fuertes y somos paranoicos. Si no está paranoico, puede seguir con las herramientas de código abierto y obtener un gran valor. O si necesita verificación de seguridad: entonces Klocwork o especialmente Fortify debe hacer un trabajo más completo para usted.
Añadiré un número limitado de respuestas anteriores, algo restringido por el NDA de Coverity al que estoy obligado. Coverity Prevent tiene un historial público impresionante para encontrar errores en el código C/C++ de código abierto, pero su producto Java es mucho más nuevo. (Coverity tiene un comunicado de prensa sobre mi antiguo empleador, por lo que puedo decir que ayudó a encontrar y corregir muchos errores en nuestro código C/C++, más de lo que había encontrado en toda mi carrera anterior en la búsqueda de errores). FindBugs sí un trabajo impresionante en código Java, y no se puede superar el precio. Pero el gran punto ya se ha hecho: pruebe los dos en su código real antes de comprar. No hay sustituto para la realidad, y la sabiduría convencional en el análisis estático es que sorprendentemente hay poca superposición en lo que las herramientas descubren.
Como han dicho otros, la mejor manera de decidir es probar todas estas herramientas.
Coverity anunció recientemente un producto alojado de análisis estático como servicio denominado Code Spotter(), actualmente en versión beta. Está utilizando el mismo motor de análisis que el producto empresarial Coverity, pero está envuelto en una interfaz de usuario diferente (simplificada). Como se trata de un servicio alojado, es muy fácil jugar con él para tener una idea de las capacidades de análisis de Coverity.
En el momento de escribir esto, Code Spotter es solo para Java, pero otros lenguajes compatibles con Coverity deberían estar disponibles próximamente.
- 1. Java de código estático análisis
- 2. ¿Cómo obtener el análisis estático de Coverity compatible con el estándar C++ 0x?
- 3. Análisis estático del gráfico de llamadas Java
- 4. Recomendación de herramienta de análisis estático para Java?
- 5. Análisis del código Objective-C para análisis estático
- 6. mejor desarrollo con análisis estático
- 7. Herramientas de análisis de código estático de TeamCity para .NET
- 8. Análisis de código de ActionScript estático?
- 9. Herramientas de análisis de código estático
- 10. ¿Existen útiles herramientas de análisis estático para bases de datos?
- 11. análisis de código estático para lenguaje de ensamblaje
- 12. Herramienta de análisis de código estático para Common Lisp?
- 13. Herramientas de análisis de código estático para VB6
- 14. Análisis de código estático en Python?
- 15. ¿Qué es el análisis de código estático?
- 16. Análisis del código estático para un nuevo idioma. ¿Donde empezar?
- 17. Análisis de código fuente estático con LLVM
- 18. ¿Qué herramientas de análisis estático están disponibles para C#?
- 19. ¿Qué herramientas usas para el análisis de código estático?
- 20. ¿Cuáles son los buenos complementos de análisis de código estático?
- 21. C# Análisis estático, valores posibles para una variable/parámetro
- 22. ¿Buen texto introductorio sobre análisis estático para encontrar errores?
- 23. herramienta de análisis de código Java
- 24. Biblioteca Java para análisis de código
- 25. Análisis de Java/XSD
- 26. optimizador de bytecode estático de java (como proguard) con análisis de escape?
- 27. Herramientas de análisis estático de inclusión de archivos de cabecera?
- 28. ¿Qué tan bien funciona el análisis de código estático con Spring y otras abstracciones?
- 29. Analizador de código estático: no administrado C++ Visual Studio 2008
- 30. Comparación de herramientas de análisis de código estático en Linux?
¿Tiene alguna comparación de varias de estas herramientas para Java? –
es suficiente para utilizar findbugs, incluso el uso de la cubierta que. verifique las características clave (subtítulo FindBugs) http://www.coverity.com/library/pdf/coverity-ds-java.pdf – ozhan