Rejoignez-nous le 30 avril : dévoilement de Parasoft C/C++test CT pour l'excellence en matière de tests continus et de conformité | En savoir plus

L'analyse statique aide le fabricant d'outils de télécommunications à fournir un logiciel de haute qualité

Portrait de Ricardo Camacho, directeur de la conformité de la sûreté et de la sécurité
30 janvier 2020
4 min lire

L'importance de l'analyse statique pour garantir la qualité de votre code logiciel est indéniable. Lisez pour savoir comment l'analyse statique est essentielle pour atteindre les objectifs de sécurité et de qualité des logiciels.

Dans cet article, je vais discuter de certaines des raisons pour lesquelles l'analyse statique est une technologie indispensable pour atteindre vos objectifs de sécurité et de qualité logicielles. Je partagerai également quelques informations sur le parcours de déploiement de l'analyse statique de l'un de nos précieux clients.

L'un des meilleurs moyens de vous différencier dans l'espace logiciel critique de l'entreprise est de fournir des produits sûrs, sécurisés et fiables qui répondent aux attentes de vos clients. Mais fournir un logiciel sans défaut est un défi, surtout si votre projet exploite des constructions complexes pour optimiser les performances, contient des millions de lignes de code et est touché par plusieurs développeurs. C'est pourquoi de nombreuses entreprises, comme G3 Technologies, une organisation de télécommunications sans fil qui fournit des outils et des solutions sur mesure, s'appuient sur l'analyse statique dans le cadre de leur politique de développement. Téléchargez l'étude de cas de G3 Technologies pour en savoir plus.

Comment l'analyse statique prend-elle en charge la qualité et la sécurité du code ?

L'analyse statique aide les organisations à atteindre leurs objectifs de sécurité et de qualité logicielles en comparant le code aux modèles de programmation connus pour rendre le logiciel vulnérable aux erreurs et aux exploits de sécurité. Les vérificateurs de code d'analyse statique recherchent les constructions qui peuvent entraîner des fuites de mémoire, des problèmes de maintenabilité du code et d'autres problèmes et signalent les constructions comme des violations. Par exemple, de nombreux vérificateurs rapporteront une violation si des instructions «goto» ou «jump» sont utilisées car elles ajoutent de la complexité à la logique du programme, ce qui augmente la probabilité d'erreurs de blocage du logiciel.

Les vérificateurs de code (également appelés règles d'analyse statique) sont basés sur des ensembles de directives, telles que MISRA C 2012, CWE Top 25 ou OWASP Top Ten, qui sont devenues des normes pour de nombreuses industries. Pour leur déploiement d'analyse statique, G3 a profité de la prise en charge native de Parasoft pour toutes les principales directives de programmation. Parasoft, en outre, vous permet de personnaliser les vérificateurs utilisés pour analyser votre code, vous donnant la possibilité d'utiliser des vérificateurs mix and match de plusieurs normes afin que vous puissiez adapter l'analyse à votre code.

G3 utilise plus de 1000 règles d'analyse statique Parasoft dans le cadre de son processus d'intégration continue, ce qui aide l'entreprise à garantir que le code de production est libre et exempt de problèmes de programmation courants. Au cours des six premiers mois de déploiement des outils d'analyse statique de Parasoft, G3 a résolu environ 50,000 XNUMX violations, dont certaines étaient des bogues critiques, tels que des problèmes de conversion de type, des variables inutilisées et des déréférences de pointeur nul.

Le coût élevé des défauts logiciels

S'il est toujours utile de trouver des défauts logiciels, les trouver tôt dans le cycle de vie du développement est la façon dont les organisations tirent le plus de valeur de leur investissement en analyse statique. Le graphique suivant montre le coût de la recherche de défauts par rapport au cycle de vie du développement logiciel (SDLC).


In leur étude de cas, G3 met en évidence l'intérêt de trouver des erreurs lors de l'étape de codage. L'exploitation de l'analyse statique a permis à G3 de détecter les erreurs de programmation avant que le logiciel n'entre en production, ce qui a permis d'économiser les coûts associés au nouveau test, à la recertification et au redéploiement. Plus important encore, la détection précoce des défauts permet à G3 de rester en règle avec ses clients. Leur approche proactive pour détecter le plus de bogues le plus tôt possible permet à l'entreprise de fournir rapidement les logiciels de haute qualité auxquels ses clients s'attendent, tout en évitant les coûts associés à la détection des défauts à un stade avancé.

Il est stupéfiant que certaines entreprises renoncent à l'analyse statique dans leurs projets. Dans l'un de mes rôles précédents en tant que chef de projet de services, j'ai été engagé par un client pour effectuer des tests unitaires sur trois sous-systèmes logiciels. Le logiciel contenait environ 111,000 620 lignes de code C et C ++. Après quelques mois de tests et plus de 80 défauts identifiés, j'ai décidé d'effectuer une analyse statique du code à titre expérimental. Je découvre que plus de XNUMX% des défauts identifiés par les tests unitaires ont été découverts en une heure grâce à une analyse statique. Les économies de coûts pour le client auraient été substantielles s'il avait adopté l'analyse statique et l'avait complétée par des tests unitaires.

Toutes les solutions d'analyse statique ne sont pas égales

Félicitations si vous avez déployé ou êtes sur le point de déployer une analyse statique. Toutes les mesures que vous prenez pour améliorer la sûreté, la sécurité et la fiabilité de votre code seront appréciées par vos utilisateurs. Et tandis que nous applaudissons tous les efforts pour améliorer les logiciels du monde, vous devez prendre en considération ce qui est important pour votre organisation avant de choisir un fournisseur d'analyse statique.

Il va sans dire qu'une analyse de code approfondie, approfondie et précise est l'exigence minimale pour toute solution d'analyse statique. Cependant, certains fournisseurs concentrent leur technologie d'analyse statique sur des aspects spécifiques du développement, tels que la sécurité. En revanche, l'approche de Parasoft est de construire de la qualité et sécurité dans l'application. En fait, l'une des raisons pour lesquelles G3 a quitté son ancien fournisseur d'analyse statique en faveur de Parasoft est que son ancien fournisseur se concentrait sur la qualité globale du logiciel et sur une hyper-concentration sur la sécurité.

Mis à part les différences d'implémentation, nous vous recommandons de rechercher un fournisseur d'analyse statique qui démontre une volonté de collaborer avec vous lors de votre parcours d'analyse statique. G3 a trouvé son partenaire chez Parasoft car nous nous engageons à travailler avec G3 dans un avenir prévisible. Leur fournisseur précédent n'était pas disposé à travailler avec G3 pour améliorer leur solution d'analyse statique. Ils ont reconnu que la collaboration avec un fournisseur d'outils d'analyse statique sur les améliorations les aide non seulement à analyser plus efficacement le code, mais également à garantir que le fournisseur est disponible pour aider G3 à fournir un produit de haute qualité dans le futur. Téléchargez l'étude de cas de G3 Technologies pour en savoir plus.

Conclusion

L'analyse statique est la pierre angulaire de toute politique de qualité et de sécurité des logiciels. La pratique qualité aide les organisations à détecter les défauts logiciels le plus tôt possible, ce qui réduit le coût global de la qualité tout au long du cycle de vie du développement logiciel. Cependant, tous les fournisseurs d'analyses statiques ne sont pas identiques. Si vous explorez une solution d'analyse statique ou êtes à la recherche d'un nouveau partenaire, considérez comment l'approche d'implémentation du fournisseur, sa volonté de partenariat et la prise en charge des directives de programmation s'alignent sur les objectifs de qualité et de sécurité de vos logiciels.

Parasoft est fier et honoré de fournir la technologie d'analyse statique permettant à G3 Technologies de continuer à fournir des logiciels de haute qualité tout en respectant son calendrier de publication rigoureux. Les solutions de test logiciel de Parasoft et notre relation de collaboration avec G3 ont fait de Parasoft un partenaire technologique clé, garantissant que les applications logicielles G3 sont développées correctement du premier coup. Parasoft a également été intégré au processus d'intégration continue de G3, garantissant que le logiciel ne sera pas mis en production tant que tous les défauts identifiés n'auront pas été résolus. Vous pouvez lire l'histoire de la réussite client de G3 en suivant ce lien: Étude de cas de G3 Technologies

Découvrez l'intérêt d'utiliser une solution de test C/C++ unifiée et comment optimiser le retour sur investissement des tests.

« MISRA », « MISRA C » et le logo triangulaire sont des marques déposées de The MISRA Consortium Limited. ©The MISRA Consortium Limited, 2021. Tous droits réservés.