PVS-Studio - moteur de progrès

Figure 1

L'équipe PVS-Studio et notre produit contribuent grandement au développement de la qualité logicielle. De plus, en plus de la détection explicite des erreurs dans les projets fermés et ouverts, il y a une contribution indirecte au développement de compilateurs et d'autres outils d'analyse de code. Nous sommes heureux que nous soyons parfois des précurseurs et nous avons décidé d'y consacrer une petite note sur notre blog.

PVS-Studio est un analyseur statique pour détecter les erreurs et les vulnérabilités potentielles dans le code source des programmes écrits en C, C ++, C # et Java.

Pour vulgariser la méthodologie de l'analyse de code statique et notre outil, nous rédigeons des notes sur la vérification de divers projets open source. En particulier, nous vérifions de temps en temps divers compilateurs. Par exemple, nous avons vérifié et trouvé des erreurs dans des projets tels que: GCC, LLVM, PascalABC.NET, Roslyn.

Nous avons remarqué à plusieurs reprises un fait intéressant. Dès que nous vérifions, disons, LLVM ou GCC, après une ou deux versions de ces compilateurs, deux nouveaux diagnostics apparaissent, visant à identifier les erreurs que PVS-Studio pourrait trouver dans leur code :). Malheureusement, nous n'avons pas pensé à écrire les dates et les liens vers les innovations pertinentes, vous devez donc nous croire sur parole ici. Divers compilateurs C ++ empruntent certains de nos diagnostics, et nous pensons que c'est tout à fait normal, correct et utile!

En plus des compilateurs C ++, les analyseurs C # sont désormais connectés pour emprunter des diagnostics. Cela signifie que l'analyseur C # implémenté dans PVS-Studio devient un modèle différent! Le réaliser est agréable et génial.

Dans ce cas, je peux réparer, nous pouvons dire, en temps réel, comment cela se produit. Le 13 août 2019, nous avons publié un grand article consacré à la vérification des bibliothèques .NET Core (CoreFX). Entre autres choses, dans cet article, nous avons décrit le modèle d'erreur associé à l'utilisation de chaînes interpolées (voir Diagnostics V3138 ). Les développeurs de CoreFX étaient très intéressés par notre publication et ont commencé à corriger les bogues que nous avons trouvés. Et déjà le 14 août, ils sont arrivés aux erreurs que nous avons trouvées concernant ces lignes très interpolées: Correction de quelques $ s manquants pour l'interpolation de chaîne dans le traçage .

Maintenant, la partie amusante. Le même jour, une tâche est apparue dans le projet Roslyn Analyzers pour implémenter le nouveau diagnostic " Nouvelle règle: les chaînes interpolées auxquelles il manque le caractère spécial $ # 2767 ", qui est liée précisément aux erreurs corrigées dans CoreFX.

Nous sommes ravis que notre travail ait été utile aux développeurs CoreFX et que nos diagnostics soient devenus un exemple à suivre pour les développeurs de Roslyn Analyzers. Il est dommage que l'outil PVS-Studio ne soit mentionné nulle part dans la discussion. Il s'avère que comme s'ils avaient eux-mêmes trouvé ces erreurs et ont trouvé leurs propres diagnostics. Bien sûr, nous serions flattés si nous étions mentionnés comme source. Oh bien.

Pourquoi avons-nous décidé d'écrire sur tout cela? Nous sommes très heureux et nous sommes même un peu fiers de nous! En étudiant notre expérience, d'autres compilateurs implémentent de nouveaux diagnostics, ce qui améliore la qualité du logiciel développé dans son ensemble. Je comprends que non seulement nous influencons le développement de la capacité des compilateurs à trouver des erreurs. Cependant, nous sommes heureux de savoir que nous contribuons à ce processus.

Cela nous dérange-t-il que d'autres outils apprennent progressivement à trouver les mêmes erreurs que PVS-Studio? Non. Notre outil existe et est vendu pour la raison que nous sommes toujours en avance sur le compilateur. Notre tâche est de toujours garder une longueur d'avance. La conscience du fait que nous sommes constamment rattrapés ne nous permet pas de nous détendre et profite à tout le monde. En plus de cela, il faut comprendre que PVS-Studio n'est pas seulement des avertissements, mais aussi:

  • Support rapide de haute qualité (seuls les programmeurs répondent aux lettres);
  • Intégration avec Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
  • Capacité à utiliser à la fois localement et dans le cloud (Docker, Travis CI);
  • Outils d'intégration de l'analyse dans de grands projets anciens (Mass Suppression);
  • Documentation détaillée avec des exemples pour chaque modèle d'erreur;
  • Le mécanisme d'envoi de lettres aux développeurs (BlameNotifier);
  • Surveillance du compilateur;
  • Et ainsi de suite.

Merci de votre attention. J'espère que vous étiez content de nous pour PVS-Studio. Et essayez notre analyseur pour un contrôle qualité continu du code de vos projets.

Liens supplémentaires:

  1. Calendrier de développement des capacités de diagnostic dans PVS-Studio .
  2. Technologies utilisées dans l'analyseur de code PVS-Studio pour rechercher des erreurs et des vulnérabilités potentielles .



Si vous souhaitez partager cet article avec un public anglophone, veuillez utiliser le lien vers la traduction: Andrey Karpov. PVS-Studio: moteur de progrès .

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


All Articles