Découvrez comment la plate-forme de qualité continue de Parasoft aide à contrôler et à gérer les environnements de test pour fournir des logiciels de haute qualité en toute confiance. Inscrivez-vous pour la démo >>

BLOG

Accélérez votre tâche de couverture de code avec un conseiller en couverture

Accélérez votre tâche de couverture de code avec un conseiller en couverture Temps de lecture : 4 minutes

Les tests logiciels font partie intégrante du développement logiciel. Chaque industrie qui développe et exécute du code peut bénéficier de l'utilisation d'outils de test de couverture de code structurel. Ces outils sont particulièrement utiles dans les industries pour le développement intégré d'applications critiques pour la sécurité où les systèmes logiciels ne peuvent pas tomber en panne - ou des vies seront perdues. Test Parasoft C / C ++ 2020.2 est livré avec un conseiller de couverture pour aider les utilisateurs à créer ce cas de test insaisissable qui est difficile et long à former.

La couverture du code est une nécessité importante

L'obtention de mesures de couverture de code à 100% dans les systèmes intégrés critiques pour la sûreté et la sécurité sert à plusieurs fins. L'objectif principal est de se conformer à verification ET VALIDATION (V&V) les exigences définies dans les normes de processus telles que DO-178C, IEC 62304Et autres.

Les avantages

La valeur fournie par la couverture de code est une activité V&V complémentaire qui élimine les défauts du code. Il s'assure que chaque ligne de code a été exécutée et donc examinée par des tests. Cela vous donne un filet de sécurité supplémentaire sur la qualité et la fiabilité du code.

De plus, si vous exécutez tous vos cas de test et n'obtenez que 60%, il devient évident que vous n'avez pas créé suffisamment de cas de test. En conséquence, des vices cachés pourraient se cacher dans ces zones intactes.

Une autre préoccupation est le «code mort». Cela signifie un code qui ne serait jamais exécuté car aucun chemin d'accès n'existe. Cela peut se produire lorsqu'une fonctionnalité / capacité est implémentée, mais à un moment donné, l'exigence de la fonctionnalité est supprimée. Si vous ne supprimez pas complètement le code, cela peut entraîner un code mort. La recherche de code mort dans des fonctions ou des opérations peut également mettre en évidence une mauvaise logique de code que vous devez résoudre. Dans cette situation, le code mort indique qu'aucun chemin logique accessible n'existe.

Comment satisfaire votre exigence de couverture de code

Vous pouvez obtenir une couverture de code grâce à diverses méthodes de test ou à une combinaison de:

  • Unité
  • Intégration
  • Test du système

J'ai participé aux deux approches suivantes, que Parasoft prend facilement en charge:

  • Une combinaison de tests système et unitaires. Tout d'abord, instrumentez le code et exécutez tous les cas de test du système, ce qui génère de nombreuses mesures de couverture. Enfin, appliquez des tests unitaires pour obtenir la couverture du code non couvert restant.
  • Utilisation de tests unitaires pour atteindre une couverture de code structurel à 100%. Cette approche est simple. L'utilisateur crée des cas de test au niveau de l'unité pour assurer la couverture de chaque fonction / opération.

Mesures de couverture du code

Il existe différentes mesures de couverture à prendre en compte. Savoir quel type spécifique appliquer dépend du niveau d'intégrité logicielle (SIL) tel que défini dans IEC 61508. Un autre exemple est le niveau d'assurance de la conception (DAL) pour DO-178B / C. Pour les systèmes embarqués, les métriques de contrôle référencées sont les instructions, la branche, la couverture de décision de condition modifiée (MC / DC) et pour les exigences les plus strictes, il existe un code Objet / Assemblage. Parasoft prend en charge la collecte de toutes ces mesures de couverture, y compris des termes que d'autres secteurs utilisent comme bloc, appel, fonction, chemin, décision, etc.

Tableau de bord affichant les mesures et les tendances de la couverture du code
Figure 1: Mesures et tendances

Automatiser le processus

Le test Parasoft C / C ++ a eu un impact considérable sur la productivité en automatisant le processus d'obtention de la couverture de code. Le premier concerne la génération automatisée de cas de test. Avec un clic et une sélection de menu, la solution de test analyse le code et génère automatiquement des cas de test d'unité intelligente. Ces cas de test unitaires peuvent ensuite être exécutés. En fonction de la taille et de la complexité du code, les équipes peuvent atteindre instantanément jusqu'à 90%.

Pour le code complexe, il y a toujours ces instructions de code insaisissables dont il est extrêmement difficile d'obtenir une couverture. Il est probable qu'il existe plusieurs valeurs d'entrée avec diverses permutations et chemins possibles qui rendent le déchiffrement complexe et fastidieux. Mais une seule combinaison peut vous offrir la couverture dont vous avez besoin. Le test Parasoft C / C ++ 2020.2 a amélioré son conseiller de couverture, ce qui facilite l'obtention de la couverture des lignes de code difficiles à atteindre.

Comment obtenir une couverture dans Coverage Advisor

Dans votre éditeur, cliquez avec le bouton droit de la souris sur la ligne de code pour laquelle vous souhaitez une couverture et sélectionnez Parasoft -> Afficher dans Coverage Advisor.

Menu montrant Parasoft puis Afficher dans Coverage Advisor
Figure 2: Afficher dans le menu du conseiller de couverture

La figure 3 ci-dessous montre un rapport d'analyse fournissant à l'utilisateur une solution. Le Conditions préalables champ express:

  • La plage et les valeurs d'entrée pour mainSensorSignal et coSensorSignal
  • Les résultats attendus des appels externes

Lors de la création du cas de test unitaire avec ces valeurs de paramètres et stubs définis pour les appels externes, l'utilisateur obtiendra la couverture de la ligne sélectionnée, plus les lignes supplémentaires exprimées dans le Couverture attendue champ.

Capture d'écran de l'onglet Coverage Advisor montrant les dépendances, les conditions préalables, la couverture attendue
Figure 3: Parasoft C / C ++ test 2020.2 Coverage Advisor Line Coverage Analysis Feedback

Résumé

La réalisation de la couverture du code structurel est nécessaire lors de la construction systèmes logiciels intégrés critiques pour la sûreté et la sécurité. Avec la couverture des tests d'exigences, il garantit que:

  • Vous avez créé suffisamment de cas de test pour tester votre logiciel.
  • Il n'y a pas de code mort.
  • Chaque ligne est inspectée pour les besoins de conformité et de certification.

Parasoft C / C ++test est une solution de test unifiée qui fournit aux équipes des fonctionnalités de méthode de test et des fonctionnalités de productivité automatisées telles que Coverage Advisor. Grâce à cette fonctionnalité, les développeurs peuvent atteindre rapidement leurs objectifs de couverture de code. En conséquence, les directeurs et gestionnaires de logiciels peuvent atteindre les objectifs commerciaux en matière de délai de mise sur le marché, de réduction des coûts de main-d'œuvre, de garanties d'audit et de facilité de certification des produits.

Obtenez le livre blanc: la valeur de l'utilisation d'un outil de test unifié C / C ++

Écrit par

Ricardo Camacho

Responsable marketing produit technique pour les solutions de test embarquées de Parasoft. Il possède une expertise dans le SDLC et l'automatisation des tests d'applications embarquées en temps réel, critiques pour la sûreté et la sécurité, et la conformité des logiciels aux normes de l'industrie.

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