Webinar: Evaluation - 05.12
PVS‑Studio est solution de tests de sécurité des applications statiques (SAST). Cet outil augmente la qualité, la fiabilité et la sécurité du code.
PVS‑Studio détecte les erreurs et vulnérabilités potentielles aux premiers stades du développement. Donc, il réduit le coût de leur fix. L'analyseur prend en charge l'analyse des programmes en C, C++, C#, Java.
L'analyseur PVS‑Studio est fortement demandé ou chaque erreur peut causer de considérables pertes en temps, en réputation ou en argent.
L'un de ces secteurs de développement de logiciels est le domaine financier. Par exemple, il y a des logiciels pour le trading et les services bancaires.
Voici une petite histoire de notre utilisateur que nous avons rencontré à la conférence.
L'analyseur a la règle de diagnostic V3040, qui détecte une situation où une valeur entière est divisée par une autre valeur entière. Le résultat de la division est placé dans une variable de type float ou double float. En effet, un tel code n'est pas toujours erroné, mais il est certainement suspect et nécessite une vérification.
Quelqu'un pourrait penser que cette erreur est tirée par les cheveux et que V3040 est souvent faux. Ils peuvent être justes et injustes. Tout dépend du type d'application et de ce que ce programme calcule réellement.
L'utilisateur dit que son équipe a découvert une erreur désagréable avec l'aide de cette règle de diagnostic. Nous ne vous dirons pas sa place de travail, puisque cette histoire a été racontée sous couvert d'anonymat (non, ce n'est pas une banque).Le module dans lequel l'erreur a été détectée calcule des tarifs flexibles pour diverses options et conditions de commandes. En d'autres termes, le logiciel a calculé le tarif que les managers devraient indiquer au client potentiel. L'erreur s'est glissée dans le calcul d'un certain coefficient. Une division entière a été utilisée là où ce n'était pas nécessaire :
double K; .... if (foo) K = 200 / 95; else ....
Précisons immédiatement que cet élément de code est un exemple. Nous ne savons pas à quoi ressemble le code réel. L'idée est qu'au lieu d'un coefficient de 2.1, un coefficient de 2 a été utilisé dans le code. En conséquence, lors de la communication avec les clients, les managers fixent le tarif un peu plus bas qu'ils ne s'y attendaient. Le tarif n'a été calculé à tort que dans une certaine combinaison de conditions, donc personne n'a jamais remarqué l'erreur, faisant confiance aux chiffres fournis par le programme.
Puisque ce coefficient a été calculé incorrectement seulement dans de rares cas, cette erreur n'a pas clairement nuit aux revenus de l'entreprise. Cependant, l'erreur a été si désagréable que les développeurs ont décidé de la cacher à la gestion et de la corriger en silence.N'entrons pas dans la discussion pour savoir si un tel comportement est éthique ou non. Ce qui est plus intéressant, une simple erreur dans la division entière entraîne des conséquences telles que les développeurs craignent d'en parler à la gestion.
Vous pouvez voir, même les erreurs plus simples peuvent entraîner des pertes d'argent, de temps et d'effort. Si nous parlons de logiciels plus sérieux, alors les erreurs peuvent être très chères en général. Ceux qui développent des logiciels pour le financement utilisent une approche intégrée pour garantir la fiabilité. L'analyseur statique PVS‑Studio est un excellent ajout aux outils vérificateur de qualité du code.