Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Analyse statique pour la FDA: 3 clés du succès

Par Parasoft

23 juin 2011

3  min lire

Poursuivant notre série d'articles sur l'analyse de code statique pour Conformité FDA/logiciel des dispositifs médicaux

1.Faites du processus d'analyse statique un processus continu

Avoir une analyse statique étroitement intégrée dans le SDLC comme décrit dans la semaine dernière  Analyse statique pour la FDA: de quoi s'agit-il? post - plutôt que comme un simple audit à la fin du processus - offre deux avantages distincts.

  • Les développeurs adoptent de meilleures habitudes de codage qui les aident à écrire un meilleur code plus rapidement. Le processus de correction d'une violation d'analyse de code statique est plus significatif et plus pédagogique lorsqu'il est effectué dans le contexte de ce que le développeur essayait d'accomplir. Par conséquent, dans un processus continu, il est plus probable que le développeur apprenne de ses erreurs et commence éventuellement à écrire du code conforme par habitude.
  • Les développeurs résolvent les problèmes plus rapidement et plus facilement. Si le code est encore frais dans l'esprit du développeur lorsque le problème est signalé, le développeur n'a pas besoin de perdre de temps à essayer de se souvenir de ce que le code était censé faire, pourquoi il l'a écrit comme il l'a fait, quels impacts il doit prendre en compte lors de la modification du code pour répondre aux attentes de conformité, et ainsi de suite. Comme vous pouvez l'imaginer, résoudre le même problème des semaines ou des mois plus tard exigerait beaucoup plus de travail pour obtenir le même résultat.

2. Gardez les résultats de l'analyse de code statique pertinents et significatifs dans le contexte

Adoptez une approche basée sur des règles pour l'analyse statique : utilisez l'analyse de code statique pour surveiller un ensemble non négociable d'attentes concernant la fiabilité, la sécurité, les performances et la maintenabilité du code. Avec cette approche, une violation d'une directive particulière n'est pas simplement une autre suggestion pour les personnes qui créent des logiciels dans une tour d'ivoire, c'est une notification que le code n'a pas répondu aux attentes de l'organisation. Sinon, les violations de règles sont perçues comme des suggestions d'améliorations générales du code, et non comme des problèmes de codage critiques qui doivent être résolus immédiatement.

Une gestion efficace des politiques permet à une organisation de combler le fossé entre les attentes de la direction et les performances des développeurs. Essentiellement, si une règle d'analyse de code statique applique quelque chose qui fait partie de la stratégie, la correction d'une violation de cette règle n'est pas négociable. Si un développeur ne satisfait pas à la politique définie, il n'exécute pas son travail comme prévu par la direction.

Pour une analogie, considérez les règles de conduite dans votre état. Si vous conduisez un jour normal, sans la présence des forces de l'ordre, vous pouvez adopter une approche assez laxiste pour suivre certaines règles. Mais si vous passez un examen de conduite au volant que vous devez réussir pour recevoir ou renouveler votre permis, vous serez probablement beaucoup plus vigilant quant au respect de la réglementation en vigueur.

3. Réduisez la douleur de l'analyse statique grâce au processus et au flux de travail

Pour vous assurer qu'un processus d'analyse de code statique en ligne, basé sur des règles, est facile à introduire et durable à adopter, veillez à prendre en compte la gestion des règles, la gestion des workflows et l'optimisation des workflows.

La gestion des politiques est au cœur d'un tel processus en ligne. Un ensemble de politiques soigneusement définies et mises en œuvre établit une base de connaissances qui guide les développeurs pour commencer à écrire du code sûr et fiable par habitude.

Une fois une politique établie, sa mise en pratique implique la gestion du flux de travail: définir, automatiser et surveiller un flux de travail qui améliore la productivité du développement et constitue la base d'un processus durable.

Pour l'optimisation du flux de travail, les tâches de prise en charge des politiques de qualité doivent être optimisées afin qu'elles puissent devenir une partie intégrante du flux de travail existant de l'équipe, en veillant à ce que le processus d'analyse statique est à la fois durable et évolutif. Le manque d'automatisation, de répétabilité ou de cohérence dégradera toute initiative de qualité que l'organisation a l'intention de déployer.

Une façon d'optimiser le flux de travail consiste à utiliser l'analyse statique de concert avec d'autres capacités d'analyse, telles que l'analyse des métriques et la révision du code par les pairs. Cela vous permet de mieux optimiser le temps des développeurs en concentrant d'abord leurs efforts sur des scénarios plus sévères ou plus complexes. Par exemple, si vous êtes averti qu'un certain morceau de code a un niveau élevé de complexité cyclomatique ainsi que des problèmes de sécurité de haute gravité, vous voudrez finalement pointer les développeurs vers cette région en premier. En fait, c'est un excellent exemple de la façon dont l'analyse de code peut vous aider à vous concentrer sur les éléments qui devraient être discutés lors de la révision du code par les pairs.

D'autres moyens d'optimiser le flux de travail incluent:

  • Le routage de chaque problème signalé directement au développeur responsable, ainsi que la personnalisation de la hiérarchisation des problèmes en fonction des priorités de votre politique, garantit que vos problèmes les plus critiques sont résolus en temps opportun.
  • La gestion centralisée de la configuration garantit que les ensembles de règles sont appliqués de manière cohérente et peuvent être mis à jour sans effort à mesure que les priorités et les processus évoluent.
  • L'utilisation de la refactorisation automatisée chaque fois que possible aide l'équipe à corriger les violations de règles le plus rapidement possible.

***

Crédit image: ~ Brenda-Starr ~

Par Parasoft

Les outils de test de logiciels automatisés de pointe de Parasoft prennent en charge l'ensemble du processus de développement logiciel, depuis le moment où le développeur écrit la première ligne de code jusqu'aux tests unitaires et fonctionnels, jusqu'aux tests de performance et de sécurité, en exploitant des environnements de test simulés en cours de route.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.