Découvrez quelle solution de test API est arrivée en tête dans le rapport GigaOm Radar. Obtenez votre rapport d'analyse gratuit >>

Découvrez quelle solution de test API est arrivée en tête dans le rapport GigaOm Radar. Obtenez votre rapport d'analyse gratuit >>
Aller à la section
Les organisations peuvent réduire considérablement le risque d'incidents tels que l'échec de CrowdStrike en automatisant les tests logiciels et en les déplaçant vers la gauche. Poursuivez votre lecture pour découvrir la puissance de l'adoption d'une approche de test axée sur la gauche.
Aller à la section
Aller à la section
L’échec de la mise à jour du logiciel CrowdStrike constitue une leçon cruciale sur l’importance des tests logiciels précoces, automatisés et complets. Comme mon collègue, Miroslaw Zielinski, souligné dans Informations sur les tests logiciels suite à l'incident CrowdStrike, prendre des raccourcis pour gagner du temps et de l’argent lors des tests peut conduire à des résultats désastreux. Les tests ne sont pas seulement une case à cocher. Il s'agit d'un élément essentiel pour garantir que le logiciel que vous fournissez est fiable, sécurisé et capable de fonctionner comme prévu dans le monde réel.
Bien que plusieurs facteurs soient à l’origine de cet échec, un défi commun que j’entends fréquemment de la part des organisations est la pression incessante pour publier des mises à jour fréquentes. Cette pression fait souvent de l’optimisation du coût et du temps des tests un objectif attrayant. Cependant, la clé pour éviter des incidents tels que l’échec de CrowdStrike réside dans l’adoption d’une stratégie globale et approche des tests avec décalage à gauche.
Les tests de logiciels de Parasoft, en particulier analyse statique, est conçu pour faciliter cette approche de décalage à gauche. Mais avant d'aborder cette solution, comprenons d'abord la puissance des tests de décalage à gauche.
Les tests Shift-Left sont l'un des concepts les plus puissants du développement logiciel moderne, permettant une détection précoce des erreurs et améliorant la qualité globale du code. Traditionnellement, les tests et le débogage étaient effectués vers la fin du cycle de développement, après l'écriture et l'intégration du code, et souvent après les phases de test initiales. Cette approche conduisait généralement à la découverte de bugs et de problèmes critiques tard dans le processus, alors qu'ils étaient beaucoup plus difficiles et longs à corriger.
En mettant en œuvre une analyse statique pendant le processus de mise en œuvre, les ingénieurs peuvent résoudre les problèmes de codage ou les violations de conformité au fur et à mesure qu'ils écrivent le code. Ce retour immédiat permet aux développeurs de corriger les problèmes sur place, améliorant ainsi considérablement la qualité du code dès le départ. Le résultat est une réduction substantielle des défauts qui autrement seraient découverts plus tard dans le cycle de vie du développement, où leur réparation devient de plus en plus complexe et coûteuse.
Par exemple, lorsqu’un défaut est identifié tôt grâce à une analyse statique, il peut être résolu rapidement et efficacement. Cependant, si le même défaut n’est détecté que plus tard par les tests d’assurance qualité, le processus de résolution devient plus compliqué. Un plus grand nombre de membres de l'équipe sont impliqués et les étapes de journalisation, de signalement, de reproduction et de résolution du problème prennent plus de temps, ce qui entraîne des efforts et des retards accrus.
Les enjeux deviennent encore plus importants si le défaut atteint la production. Remédier à un défaut sur le terrain est particulièrement difficile, car cela a un impact direct sur les clients et peut nécessiter des correctifs urgents, des rappels ou même un contrôle des dommages pour protéger la réputation du produit. L'équipe de développement doit agir rapidement pour corriger le bug, tandis que l'équipe d'assurance qualité doit retester la solution, ajoutant ainsi des niveaux de complexité supplémentaires au processus.
En réfléchissant à l'incident CrowdStrike, il est clair à quel point l'analyse statique est vitale pour identifier et résoudre les défauts dès le début du processus de développement, évitant ainsi que des problèmes coûteux et dommageables n'atteignent la production.
L'analyse statique est une technique avancée permettant d'examiner le code source afin d'identifier des erreurs potentielles telles que l'utilisation de variables non initialisées, le déréférencement de pointeur NULL, les débordements de tampon et de nombreux autres défauts de codage, sans exécuter le code.
Par exemple, le moteur d'analyse statique de Parasoft va au-delà des simples vérifications de syntaxe. Il effectue non seulement une analyse du flux de contrôle et du flux de données pour détecter un large éventail de bogues et de problèmes de codage, mais il devance également la concurrence grâce à une application unique de l'IA et de l'apprentissage automatique. Notre Solution basée sur l'IA examine les nouveaux résultats de l'analyse statique dans le contexte des interactions historiques avec la base de code et les résultats de l'analyse statique précédente, en prédisant la pertinence et en hiérarchisant les nouveaux résultats pour aider les organisations à adopter l'analyse statique plus efficacement.
Voici quelques types de bugs ou de problèmes que l'analyse statique peut détecter.
Ces types de bogues de codage sont recherchés et atténués de manière agressive dans les développements critiques pour la sécurité, où des vies pourraient être perdues en cas de panne ou de défaillance du système. Bien que les concepts de sécurité ne soient pas une exigence pour CrowdStrike, la qualité des logiciels l'est, et ils devraient envisager d'adopter des normes de codage telles que MISRA, CERT, CWE, ou autres.
Les normes de codage comme MISRA sont développées par des experts possédant des années d'expérience, et Parasoft, en tant que membre contributeur du MISRA C et C++ 2023 normes de codage, propose une solution d'analyse statique robuste construite sur cette expertise.
Malgré ces avantages évidents, il est surprenant de constater combien d'équipes de développement n'utilisent toujours pas l'analyse statique. L'adoption de l'analyse statique est essentielle pour réduire les coûts des tests logiciels, tout en augmentant la qualité du code.
En intégrant une analyse statique dans son pipeline d'intégration continue/déploiement continu (CI/CD), CrowdStrike aurait pu identifier automatiquement les problèmes d'accès à la mémoire qui ont conduit à l'échec de la mise à jour logicielle.
Dans un environnement CI/CD moderne, les développeurs écrivent et valident le code, déclenchant ainsi un processus de génération automatisé. Lorsqu’une build se termine avec succès, des tests automatisés, y compris une analyse statique, s’exécutent. Parasoft Solutions de tests C et C++ comme C/C++test s'intègrent facilement aux pipelines CI/CD, fonctionnant de manière transparente avec des outils tels que Jenkins, GitLab, Bamboo, VS Code, Eclipse et bien d'autres.
Cette intégration garantit que la qualité du code est surveillée et améliorée en permanence, les développeurs recevant un retour immédiat sur tout problème identifié par l'analyse statique. En automatisant ces contrôles qualité, les organisations peuvent :
L'incident CrowdStrike offre de précieuses leçons aux équipes de développement.
L'échec de la mise à jour du logiciel CrowdStrike souligne l'importance de tests complets et automatisés dans l'environnement de développement logiciel actuel. Les organisations peuvent réduire considérablement le risque de tels incidents en tirant parti des solutions Parasoft pour l'analyse statique ainsi que des tests unitaires, une couverture de code et d'autres méthodes de test. Nos outils aident les équipes à maintenir des normes élevées en matière de qualité logicielle tout en gérant les risques commerciaux, garantissant ainsi que leurs logiciels sont fiables, sécurisés et prêts à fonctionner dans le monde réel.
Le guide ultime du CI/CD pour les systèmes logiciels embarqués
« 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.