Une équipe PVS-Studio et notre produit contribuent grandement à la mise à niveau de la qualité logicielle. De plus, en plus de détecter les erreurs dans les projets fermés et open source, il y a une contribution indirecte au développement de compilateurs et d'autres outils d'analyse de code. Nous sommes heureux que, dans certains cas, nous soyons des précurseurs et nous avons décidé d'y consacrer une petite note dans notre blog.
PVS-Studio est un analyseur de code statique pour détecter les erreurs et les vulnérabilités potentielles dans le code source des programmes, écrit en C, C ++, C # et Java.
Pour vulgariser la méthodologie de l'analyse de code statique et notre outil, nous écrivons des articles sur les contrôles de divers
projets ouverts. De plus, nous vérifions de temps en temps divers compilateurs. Par exemple, nous avons testé et trouvé des bogues dans des projets tels que: GCC, LLVM, PascalABC.NET, Roslyn.
Plus d'une fois, nous sommes tombés sur un fait intéressant. Dès que nous vérifions, disons, LLVM ou GCC, quelques nouveaux diagnostics apparaissent dans ces compilateurs dans la prochaine ou dans la prochaine mais une seule version. Et ils détectent les erreurs que PVS-Studio a réussi à trouver dans leur code :). Malheureusement, nous n'avons pas noté les dates et les liens vers les améliorations correspondantes, vous devrez donc nous croire sur parole. Divers compilateurs C ++ empruntent certains de nos diagnostics et nous pensons que c'est parfaitement normal, juste et utile!
En plus des compilateurs C ++, les analyseurs C # ont également commencé à adopter des idées de nos diagnostics. Ce qui signifie que l'analyseur C #, implémenté dans PVS-Studio, est devenu un autre lodestar! C'est agréable et cool d'en être conscient.
Dans ce cas, je peux suivre comment cela s'est produit, disons, en temps réel. Le 13 août 2019, nous avons publié un grand
article sur la vérification des bibliothèques .NET Core (CoreFX). Entre autres choses, cet article décrit un modèle d'erreur lié à l'utilisation de chaînes interpolées (voir le diagnostic
V3138 ). Les développeurs de CoreFX se sont intéressés à notre publication et ont commencé à corriger les erreurs que nous avons trouvées. Et le 14 août, ils sont arrivés aux erreurs que nous avons trouvées concernant ces chaînes très interpolées:
Correction de quelques $ s manquants pour l'interpolation de chaîne dans le traçage .
Ici commence la partie la plus intéressante. Ce même jour, une nouvelle tâche est apparue dans le projet Roslyn Analyzers sur la mise en œuvre d'un nouveau diagnostic "
Nouvelle règle: les chaînes interpolées auxquelles il manque le caractère spécial $ # 2767 ", liées au droit aux erreurs, corrigées dans CoreFX. Nous sommes ravis que nos efforts se soient révélés utiles aux développeurs CoreFX et que nos diagnostics soient devenus un modèle pour les développeurs de Roslyn Analyzers. Il est un peu regrettable que l'outil PVS-Studio ne soit mentionné nulle part dans la discussion. On dirait qu'ils ont trouvé ces erreurs et ont eu l'idée de faire des diagnostics eux-mêmes. Bien sûr, nous serions flattés si nous étions mentionnés comme source d'origine. Eh bien, ça va.
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, ils améliorent la qualité des logiciels développés dans leur ensemble. Je comprends que nous ne sommes pas les seuls à influencer le développement des capacités de recherche d'erreurs du compilateur. Cependant, nous sommes heureux de savoir que nous contribuons à ce processus.
Sommes-nous préoccupés par le fait que d'autres outils apprennent progressivement à trouver les mêmes bogues que PVS-Studio? Non. Notre outil existe et est vendu juste parce que nous sommes toujours en avance sur les capacités des compilateurs. Notre objectif est de toujours garder une longueur d'avance. La conscience que quelqu'un nous rattrape constamment ne nous laisse pas le droit de nous détendre, et cela profite à tout le monde. De plus, il faut comprendre que PVS-Studio n'est pas seulement des avertissements, mais aussi:
- Support rapide de haute qualité (seuls les programmeurs répondent au courrier);
- Intégration avec Visual Studio, IntelliJ IDEA, SonarQube, Jenkins, IncrediBuild;
- La possibilité d'utiliser l'outil à la fois localement et dans le cloud (Docker, Travis CI);
- Outils pour intégrer 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 mails aux développeurs (BlameNotifier);
- Le compilateur exécute la surveillance (surveillance du compilateur);
- Et ainsi de suite.
Merci de votre attention. J'espère que vous partagez notre joie pour PVS-Studio.
Essayez notre analyseur pour le contrôle continu de la qualité du code de vos projets.
Liens supplémentaires:
- PVS-Studio Graphique de développement des capacités de diagnostic .
- Technologies utilisées dans l'analyseur de code PVS-Studio pour trouver des bogues et des vulnérabilités potentielles .