Logo Parasoft

Découvrez le test Parasoft C/C++ en action !

Faites une visite guidée du produit.

Commencer

WEBINAIRE

Indispensables dans le développement de logiciels CI/CD pour Embedded

Il a été prouvé qu’une culture collaborative au sein des organisations rationalise le processus de développement de produits. Il accorde de la valeur à une communication efficace, à l'intégration et au travail d'équipe interfonctionnel pour permettre une livraison continue et rapide de produits fiables qui sont également sûrs et sécurisés.

Cette session explore comment les équipes de développement de logiciels embarqués peuvent adopter des workflows modernes et automatisés pour l'intégration, les tests, la livraison et la surveillance en continu. Elle met en lumière l'intérêt des approches Agile, DevOps et Pipelines CI / CD, présentant une démonstration pratique de Parasoft intégré à GitLab.

À retenir

  • L’importance de l’adoption d’un flux de travail de développement moderne.
  • L’importance des tests continus, y compris l’analyse statique, les tests unitaires et la couverture du code.
  • Bonnes pratiques pour la mise en œuvre de l’automatisation des tests.

Développement et collaboration agiles

Développement agile, né d'une rencontre en 2001, met l'accent sur la collaboration et la réactivité face au changement. Ses valeurs fondamentales, exposées dans le Manifeste Agile, se concentrent sur les individus et les interactions, les logiciels fonctionnels, la collaboration client et l'adaptation au changement. Ces principes constituent le fondement de méthodologies comme Scrum et Kanban, qui visent à décloisonner les équipes et à améliorer la communication.

Scrum, une méthodologie de gestion de projet populaire, rassemble des équipes pluridisciplinaires autour d'objectifs communs. Elle utilise des sprints itératifs, des réunions régulières pour évaluer l'avancement et des rôles définis pour garantir une livraison prévisible et favoriser une méthode de travail plus efficace. Kanban, quant à lui, met fortement l'accent sur le travail d'équipe et les interactions humaines, souvent visualisées par des post-it accrochés aux murs lors des séances de planification.

DevOps et le pipeline CI/CD

DevOps s'appuie sur les principes Agile en intégrant des outils et l'automatisation pour rationaliser le processus de développement logiciel. Il automatise les tâches manuelles, décloisonne les équipes et optimise la productivité. Le cœur de DevOps est le pipeline CI/CD, souvent représenté par un symbole de l'infini illustrant une approche continue et itérative.

Étapes du flux de travail DevOps

  1. Planification: Identifier les exigences et définir les livrables pour chaque itération. Des outils comme Jira sont couramment utilisés pour la gestion de projets agiles.
  2. Codage: Les développeurs travaillent sur des branches distinctes pour éviter de perturber la ligne de développement principale. Des outils comme Git pour la gestion de la configuration et des IDE comme VS Code ou Eclipse sont essentiels. Test C/C++ de Parasoft peut s'intégrer dans les IDE pour une analyse précoce du code.
  3. Construire: Déclenchée par les commits de code, cette étape compile et construit le code. L'automatisation est essentielle, grâce à des outils comme CMake et des compilateurs comme GCC. La conteneurisation avec Docker est également courante.
  4. Tester: Une fois la build réussie, des tests automatisés sont lancés. Ceux-ci incluent l'analyse statique, les tests unitaires, les tests de régression et la couverture de code. Le test C/C++ de Parasoft s'intègre aux pipelines d'intégration continue pour ces tâches.
  5. Libération: Si les tests sont réussis et sans bugs, le code est fusionné dans la branche principale, garantissant ainsi sa stabilité.
  6. Déployer: Dans le développement embarqué, notamment pour les applications critiques pour la sécurité, cette étape implique souvent un processus d'approbation et des contrôles de conformité avant le déploiement. Si le service informatique de l'entreprise peut déployer directement, les systèmes embarqués nécessitent une validation plus rigoureuse.
  7. Opérer: L'application est opérationnelle et utilisée par les clients. L'organisation surveille ses performances.
  8. Moniteur: Les retours du terrain et des clients sont recueillis. Les inefficacités du pipeline ou du flux de travail sont identifiées et corrigées, et les retours sont intégrés à la planification future, relançant ainsi le cycle.

Relier Agile aux normes de sécurité fonctionnelle

Les méthodologies agiles s'alignent bien sur les normes de sécurité fonctionnelle de l'industrie telles que ISO 26262 pour l'automobile, IEC 62304 pour le médicalet DO-178 pour l'avioniqueCes normes utilisent souvent un diagramme en V pour illustrer les phases de développement logiciel requises et les activités de vérification et de validation correspondantes. Le modèle en V décrit des phases telles que l'analyse des exigences, la conception, la mise en œuvre, puis les étapes de vérification, telles que analyse statique, tests unitaires, les tests d'intégration, les tests système et les tests d'acceptation. Bien que ces normes imposent est ce que nous faisons doit être fait pour des raisons de sécurité, ils quittent le how—la méthodologie spécifique comme Waterfall ou DevOps—dépend de l’organisation.

Démo : Test Parasoft C/C++ avec GitLab CI/CD

La démonstration a montré comment Parasoft C/C++test s'intègre aux pipelines CI/CD de GitLab. Elle a abordé la configuration d'un pipeline avec analyse statique, l'accès aux résultats via l'interface GitLab et l'utilisation d'un Extension de code VS pour télécharger et corriger les problèmes directement dans l'IDE. Cette intégration simplifie les flux de travail, réduit les coûts de conformité et améliore la productivité des développeurs en permettant l'analyse du code et la résolution des problèmes au sein de l'environnement de développement.

Avantages de l'adoption de CI/CD

Les clients qui adoptent les pratiques CI/CD constatent plusieurs avantages clés. Ils bénéficient d'une meilleure prévisibilité lors de la livraison des logiciels, d'une meilleure prise en compte des modifications des exigences et de la conception, et d'un processus de développement plus organisé et plus rapide. Un résultat significatif est la réduction des rapports de problèmes d'assurance qualité et des tickets clients, ce qui se traduit par une baisse des coûts de test et de développement. Au final, cela se traduit par des produits de meilleure qualité et une mise sur le marché plus rapide.