PVS-Studio: motor de progreso

Figura 1

Un equipo de PVS-Studio y nuestro producto hacen una gran contribución a la actualización de la calidad del software. Además, además de detectar errores en proyectos de código abierto y cerrado, hay una contribución indirecta al desarrollo de compiladores y otras herramientas de análisis de código. Nos complace que, en algunos casos, marquemos tendencias y decidimos dedicar una pequeña nota a esto en nuestro blog.

PVS-Studio es un analizador de código estático para detectar errores y vulnerabilidades potenciales en el código fuente de los programas, escrito en C, C ++, C # y Java.

Para popularizar la metodología de análisis de código estático y nuestra herramienta, escribimos artículos sobre comprobaciones de varios proyectos abiertos. Además, revisamos varios compiladores de vez en cuando. Por ejemplo, hemos probado y encontrado errores en proyectos como: GCC, LLVM, PascalABC.NET, Roslyn.

Más de una vez nos hemos encontrado con un hecho interesante. Tan pronto como verifiquemos, digamos, LLVM o GCC, aparecerán un par de diagnósticos nuevos en estos compiladores en la próxima versión o en la siguiente, pero una. Y detectan errores que PVS-Studio logró encontrar en su código :). Desafortunadamente, no hemos anotado las fechas y los enlaces a las mejoras correspondientes, por lo que tendrá que confiar en nuestra palabra. Varios compiladores de C ++ toman prestados algunos de nuestros diagnósticos y creemos que es perfectamente normal, correcto y útil.

Además de los compiladores de C ++, los analizadores de C # también han comenzado a adoptar ideas de nuestros diagnósticos. Lo que significa que el analizador C #, implementado en PVS-Studio, se ha convertido en otra estrella polar. Es agradable y genial ser consciente de ello.

En este caso, puedo rastrear cómo sucedió, digamos, en tiempo real. El 13 de agosto de 2019 publicamos un gran artículo sobre la verificación de las bibliotecas de .NET Core (CoreFX). Entre otras cosas, este artículo describe un patrón de error relacionado con el uso de cadenas interpoladas (consulte el diagnóstico V3138 ). Los desarrolladores de CoreFX se interesaron en nuestra publicación y comenzaron a corregir los errores que encontramos. Y el 14 de agosto, llegaron a los errores que encontramos relacionados con estas cadenas muy interpoladas: corrija algunos $ s faltantes para la interpolación de cadenas en el seguimiento .

Aquí comienza la parte más interesante. En ese mismo día, apareció una nueva tarea en el proyecto Roslyn Analyzers sobre la implementación de un nuevo diagnóstico " Nueva regla: cadenas interpoladas a las que les falta el carácter especial $ 2767 ", relacionado con el derecho a errores, corregido en CoreFX. Estamos muy contentos de que nuestros esfuerzos resultaron útiles para los desarrolladores de CoreFX y nuestros diagnósticos se han convertido en un modelo a seguir para los desarrolladores de Roslyn Analyzers. Es un poco desafortunado que la herramienta PVS-Studio no se mencione en ninguna parte de la discusión. Parece que encontraron esos errores y se les ocurrió la idea de hacer diagnósticos ellos mismos. Por supuesto, nos sentiríamos halagados si se nos mencionara como la fuente original. Bueno, esta bien.

¿Por qué decidimos escribir sobre todo esto? ¡Estamos muy contentos e incluso estamos un poco orgullosos de nosotros mismos! Al estudiar nuestra experiencia, otros compiladores implementan nuevos diagnósticos, mejoran la calidad del software desarrollado en su conjunto. Entiendo que no somos los únicos que influimos en el desarrollo de las capacidades de búsqueda de errores del compilador. Sin embargo, nos complace saber que estamos contribuyendo a este proceso.

¿Nos preocupa que otras herramientas estén aprendiendo gradualmente a encontrar los mismos errores que PVS-Studio? No Nuestra herramienta existe y se vende correctamente porque siempre estamos por delante de las capacidades de los compiladores. Nuestro propósito es estar siempre a la vanguardia. La conciencia de que alguien nos está compensando constantemente no nos deja el derecho a relajarnos, y beneficia a todos. Además, debe entenderse que PVS-Studio no es solo advertencias, sino también:

  • Soporte rápido de alta calidad (solo los programadores responden al correo);
  • Integración con Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
  • La capacidad de usar la herramienta tanto localmente como en la nube (Docker, Travis CI);
  • Herramientas para integrar el análisis en grandes proyectos antiguos (supresión masiva);
  • Documentación detallada con ejemplos para cada patrón de error;
  • El mecanismo para enviar correos a los desarrolladores (BlameNotifier);
  • El compilador ejecuta la supervisión (Compiler Monitoring);
  • Y así sucesivamente.

Gracias por su atencion Esperemos que comparta nuestra alegría por PVS-Studio. Pruebe nuestro analizador para el control continuo de la calidad del código de sus proyectos.

Enlaces adicionales:

  1. PVS-Studio Gráfico de desarrollo de habilidades de diagnóstico .
  2. Tecnologías utilizadas en el analizador de código PVS-Studio para encontrar errores y vulnerabilidades potenciales .

Source: https://habr.com/ru/post/464411/


All Articles