Webinaire en vedette : Tests d'API améliorés par l'IA : une approche de test sans code | Voir le séminaire

Gestion des exigences et matrice de traçabilité

Portrait de Ricardo Camacho, directeur de la conformité de la sûreté et de la sécurité
12 mai 2023
8 min lire

La principale préoccupation de la gestion des exigences est de s'assurer que les objectifs fixés pour le développement de produits sont atteints. Cependant, il peut être difficile d'atteindre ces objectifs fixés sans traçabilité. Cet article vous apprend tout ce que vous devez savoir sur la gestion de la traçabilité des exigences.

La pierre angulaire d'un processus de développement logiciel rigoureux est la gestion des exigences et la traçabilité de ces exigences à la mise en œuvre et, par la suite, la preuve d'une mise en œuvre correcte.

La traçabilité des exigences est définie par les auteurs, Gotel et Finkelstein, comme « la capacité de décrire et de suivre la vie d'une exigence, à la fois en avant et en arrière (c. et l'itération dans l'une de ces phases).

Le traçage des exigences ne consiste pas simplement à lier un paragraphe d'un document à une section de code ou à un test. La traçabilité doit être maintenue tout au long des phases de développement, à mesure que les exigences se manifestent dans la conception, l'architecture et la mise en œuvre. Considérez le diagramme en « V » typique du logiciel.

Le diagramme classique en V montre comment la traçabilité avance et recule à travers chaque phase de développement.

Figure 1: Le diagramme en V classique montre comment la traçabilité avance et recule à chaque phase de développement.

Chaque phase entraîne la phase suivante. À leur tour, les éléments de travail de ces phases doivent répondre aux exigences de la phase précédente. La conception du système est basée sur les exigences. La conception du système répond aux exigences, etc.

La gestion de la traçabilité des exigences (RTM) prouve que chaque phase satisfait aux exigences de chaque phase suivante. Cependant, ce n'est que la moitié de l'image. Aucune de cette traçabilité ne démontre que les exigences sont satisfaites. Cela nécessite des tests.

Modèle en V démontrant les tests de vérification et de validation pour prouver la mise en œuvre de la spécification dès la phase de conception correspondante. La validation a généralement lieu à la fin du cycle de développement lors des tests d'acceptation finale avec le client.

Figure 2: L'autre partie importante de la traçabilité des exigences est la vérification et les tests de validation pour prouver la mise en œuvre de la spécification à partir de la phase de conception correspondante. La validation a généralement lieu à la fin du cycle de développement lors du test d'acceptation final avec le client.

Dans le diagramme en V illustré à la figure 2, chaque phase de test vérifie la satisfaction des spécifications associées à la phase de conception / mise en œuvre correspondante. Dans l'exemple, les tests d'acceptation valident les exigences, les tests d'intégration vérifient la conception de l'architecture, les tests unitaires vérifient la conception des modules, etc. La validation a généralement lieu à la fin du cycle de vie du développement lors des tests d'acceptation avec le client.

La traçabilité des exigences nécessite à la fois le lien vers l'implémentation et la vérification, ainsi que tous les artefacts associés du processus de développement. Le développement de logiciels à n'importe quelle échelle réaliste aura de nombreuses exigences, une conception et une architecture complexes, et éventuellement des milliers d'unités et de tests unitaires. L'automatisation du RTM dans les tests est nécessaire, en particulier pour les logiciels critiques pour la sécurité qui nécessitent une documentation de traçabilité pour les certifications et les audits.

Matrice de traçabilité des exigences

Une matrice de traçabilité des exigences est un document qui illustre la satisfaction des exigences avec un élément de travail correspondant, comme un test unitaire, un code source de module, un élément de conception d'architecture, etc. La matrice est souvent affichée sous forme de tableau, qui montre comment chaque exigence est «cochée» par une partie correspondante du produit. La création et la maintenance de ces matrices sont souvent automatisées avec des outils de gestion des exigences avec la possibilité de les afficher visuellement sous de nombreuses formes et même sur papier si nécessaire.

Vous trouverez ci-dessous un exemple de matrice de traçabilité des exigences de Intland codeBeamer. Il montre les exigences au niveau du système décomposées en exigences de haut niveau et de bas niveau et les cas de test qui vérifient chacune.

Capture d'écran de l'exemple de matrice de traçabilité des exigences d'Intland codeBeamer.

Figure 3: Exemple de matrice de traçabilité des exigences dans Intland codeBeamer.

Pourquoi la traçabilité des exigences est-elle nécessaire ?

Dans le sens le plus simple, la traçabilité des exigences est nécessaire pour suivre exactement ce que vous créez lors de l'écriture d'un logiciel. Cela signifie s'assurer que le logiciel fait ce qu'il est censé faire et que vous ne construisez que ce qui est nécessaire.

La traçabilité fonctionne à la fois pour prouver que vous répondez aux exigences et pour identifier ce qui ne l'est pas. S'il y a des éléments architecturaux ou du code source qui ne peuvent pas être attribués à une exigence, alors c'est un risque et ne devrait pas être là. Les avantages vont au-delà de la preuve de la mise en œuvre. Une traçabilité disciplinée est une visibilité importante sur l'avancement du développement.

La traçabilité n'est pas nécessairement stricte dans les applications logicielles d'entreprise, bien que ce soit certainement en train de s'améliorer. Cependant, il s'agit d'une activité obligatoire dans le domaine des logiciels de sécurité et critiques.

Traçabilité des exigences dans les logiciels critiques pour la sécurité

Les exigences relatives aux logiciels critiques pour la sécurité sont le principal moteur de la conception et du développement des produits. Ces exigences comprennent la sécurité fonctionnelle, les exigences d'application et les exigences non fonctionnelles qui définissent entièrement le produit. Cette dépendance aux exigences documentées est une bénédiction mitigée, car de mauvaises exigences sont l'une des causes critiques des incidents de sécurité dans les logiciels. En d'autres termes, la mise en œuvre n'était pas en faute, mais les exigences médiocres ou manquantes l'étaient.

Il est important de réaliser que de nombreuses exigences relatives aux logiciels critiques pour la sécurité découlent de l'analyse de la sécurité et de la gestion des risques. Le système doit remplir les fonctions prévues, bien sûr, mais il doit également atténuer les risques afin de réduire considérablement les risques de blessures. De plus, afin de documenter et de prouver que ces fonctions de sécurité sont pleinement et correctement mises en œuvre et testées, la traçabilité est essentielle.

Automatiser la traçabilité bidirectionnelle

La conservation des enregistrements de traçabilité sur n'importe quel type d'échelle nécessite une automatisation. Les outils de gestion du cycle de vie des applications incluent des capacités de gestion des exigences qui sont matures et qui ont tendance à être la plaque tournante de la traçabilité. Des outils de test logiciels intégrés tels que Parasoft complètent la vérification et la validation des exigences en fournissant une traçabilité bidirectionnelle automatisée au scénario de test exécutable, qui comprend le résultat de réussite ou d'échec et des traces jusqu'au code source qui met en œuvre l'exigence.

Parasoft s'intègre aux systèmes de gestion des exigences et de planification agiles de pointe tels que Intland codeBeamer, Polarion de Siemens, Atlassian Jira, CollabNet VersionOne et TeamForge.

Comme le montre l'image ci-dessous, chacun des outils d'automatisation de test de Parasoft (Test C / C ++, Jtest, pointTEST, SOAtestet Sélénique) prennent en charge l'association de tests avec des éléments de travail définis dans ces systèmes (tels que des exigences, des histoires, des défauts, des définitions de cas de test). La traçabilité est gérée par Parasoft tableau de bord centralisé de reporting et d'analyse (PAO Parasoft).

Parasoft fournit une traçabilité bidirectionnelle des éléments de travail aux cas de test et aux résultats des tests, tous deux affichant des rapports de traçabilité avec Parasoft DTP ainsi que des rapports sur les résultats au système de gestion des exigences.

Figure 4 : Parasoft fournit une traçabilité bidirectionnelle des éléments de travail aux cas de test et aux résultats des tests, affichant à la fois des rapports de traçabilité avec Parasoft DTP et renvoyant les résultats au système de gestion des exigences.

Parasoft DTP met en corrélation les identifiants uniques du système de gestion avec les résultats de l'analyse statique, la couverture du code et les résultats des tests des tests unitaires, d'intégration et fonctionnels. Les résultats sont affichés dans les rapports de traçabilité de Parasoft DTP et renvoyés au système de gestion des exigences. Ils fournissent une traçabilité bidirectionnelle complète et des rapports dans le cadre de la matrice de traçabilité du système.

Le reporting de traçabilité dans Parasoft DTP est hautement personnalisable. L'image suivante montre un modèle de matrice de traçabilité des exigences pour les récits créés dans Jira qui retracent les cas de test, les résultats d'analyse statique, les fichiers de code source et les révisions de code manuelles.

Figure 5: Modèle de matrice de traçabilité des exigences de Parasoft DTP intégré à Altassian Jira.

La corrélation bidirectionnelle entre les résultats des tests et les éléments de travail constitue la base de la traçabilité des exigences. Parasoft DTP ajoute une analyse de couverture de test et de code pour évaluer l'exhaustivité des tests. Le maintien de cette corrélation bidirectionnelle entre les exigences, les tests et les artefacts qui les implémentent est un élément essentiel de la traçabilité.

Avantages de la traçabilité automatisée

La traçabilité automatisée offre plusieurs avantages aux équipes de développement logiciel. Vous trouverez ci-dessous un examen plus approfondi de la manière dont l'automatisation peut améliorer la traçabilité dans le développement de logiciels.

  1. Améliore la gestion des exigences. La traçabilité automatisée simplifie et rationalise la gestion des exigences en fournissant une approche claire et systématique pour lier automatiquement les exigences aux documents de conception, au code et aux cas de test, ce qui facilite le suivi de la progression des exigences, de la conception à la mise en œuvre. Cela garantit que toutes les exigences sont correctement traitées, réduisant les erreurs manuelles humaines et le risque de négliger des fonctionnalités critiques.

De plus, la traçabilité automatisée permet une analyse d'impact efficace, permettant aux parties prenantes de comprendre les implications des modifications apportées aux exigences et de prendre des décisions éclairées.

  1. Facilite la collaboration en équipe. La traçabilité automatisée facilite la collaboration entre les équipes. Lorsque les exigences sont liées aux décisions de conception, au code et aux tests, les parties prenantes peuvent visualiser l'impact des changements et des modifications. Cette représentation visuelle facilite les discussions productives, permettant aux parties prenantes de prendre des décisions éclairées sur la hiérarchisation des exigences, la portée et les compromis. Cela encourage une participation active et attire les contributions de toutes les parties concernées, ce qui conduit à un meilleur consensus sur les exigences du projet.

De plus, la traçabilité automatisée identifie les dépendances et les impacts entre les différents composants du logiciel. Par conséquent, lorsque des modifications sont apportées à un composant, la traçabilité permet aux parties prenantes d'identifier rapidement les exigences associées, les décisions de conception et les tests qui peuvent être affectés. Cette connaissance des dépendances et des impacts favorise la collaboration en garantissant que toutes les parties concernées sont conscientes des conséquences potentielles des changements.

  1. Améliore l'assurance qualité. La traçabilité automatisée améliore considérablement les efforts d'assurance qualité tout au long du cycle de vie du développement logiciel. Lorsque la traçabilité est automatisée, elle permet de lier automatiquement les exigences aux cas de test, ce qui garantit à son tour que toutes les exigences sont correctement couvertes par les cas de test correspondants.

Avec des cas de test générés automatiquement en fonction des exigences tracées, cela réduit le risque de scénarios de test manquants, ce qui est souvent le cas lorsque les cas de test sont créés manuellement. Mais avec la traçabilité automatisée, tous les scénarios de test nécessaires sont directement dérivés des exigences, ce qui réduit le risque de manquer des scénarios de test.

  1. Rationalise les processus de maintenance et de dépannage. La maintenance et le dépannage sont des aspects inhérents au développement de logiciels. Grâce à la traçabilité automatisée, ces processus deviennent plus efficients et efficaces. Par exemple, lorsque des problèmes ou des bogues surviennent, la traçabilité permet aux développeurs d'identifier rapidement les exigences spécifiques, les décisions de conception ou les composants de code associés au problème. Cela accélère le processus de dépannage, économisant ainsi un temps et des ressources précieux.

De plus, la traçabilité automatisée aide également à documenter les étapes de résolution, facilitant la maintenance future et réduisant les risques de problèmes récurrents.

  1. Accélère la conformité réglementaire et l'audit. La conformité aux réglementations et aux normes est un aspect crucial du développement de logiciels, et la traçabilité automatisée aide les organisations à démontrer leur respect des exigences réglementaires.

La traçabilité automatisée fournit une piste d'audit claire des décisions, actions et modifications apportées au cours du processus de développement logiciel. Cela rend les audits de conformité plus fluides et plus simples, car toutes les informations nécessaires sont facilement disponibles et traçables.

Outils de traçabilité des exigences

Plusieurs outils sont disponibles pour faciliter la traçabilité des exigences, offrant des fonctionnalités de liaison, de suivi, de gestion et d'analyse des relations entre les exigences. Certains outils populaires pour la traçabilité des exigences incluent les suivants.

  1. Parasoft. Offre des cas de test aux fonctionnalités de gestion de la traçabilité des exigences via son tableau de bord central de reporting et d'analyse, Parasoft DTP. Outre Parasoft DTP, les autres outils de l'écosystème Parasoft qui offrent des capacités de traçabilité sont Parasoft Selenic, Parasoft SOAtest, Parasoft C/C++test, Parasoft Jtest et Parasoft DotTest. Ces outils peuvent aider les utilisateurs en complétant la traçabilité entre les exigences, les cas de test et jusqu'aux fichiers source si désiré. . Grâce à ces outils, vous pouvez facilement suivre la couverture des tests pour chaque exigence, évaluer l'impact sur la qualité plus rapidement et fournir des analyses et des rapports de test des exigences.

De plus, Parasoft peut également automatiser la création de défauts, ce qui aide à établir une boucle de rétroaction complète au sein de votre flux de travail de développement. Il contribue également à la conformité réglementaire avec des normes telles que ISO 26262, DO-178C, IEC 62304, IEC 61508 et EN 50128.

  1. Diffuseur de code. Fournit à toutes les parties prenantes une plate-forme centrale de gestion des exigences logicielles pour collaborer efficacement. Les utilisateurs partagent des idées. Ils contrôlent et enregistrent les modifications, et identifient, gèrent et suivent les exigences tout au long du cycle de vie de l'application. Cela se traduit par une réduction des coûts, des risques et des délais de livraison dans le développement de produits.
  2. Jama Connect. Permet aux équipes de capturer, gérer et suivre les exigences tout au long du processus de développement. Il offre des fonctionnalités permettant de créer et de maintenir des liens de traçabilité entre les exigences, les documents de conception, les cas de test et d'autres artefacts. L'outil offre également une visibilité en temps réel sur l'état des exigences et leurs artefacts associés.
  3. Exigences Polarion. Un outil collaboratif de gestion des exigences qui prend en charge la traçabilité de bout en bout. Il permet aux utilisateurs de définir et de gérer les exigences, de les lier à d'autres artefacts de projet et de suivre leur statut de mise en œuvre. L'outil propose des matrices de traçabilité, une analyse d'impact et des rapports personnalisables pour faciliter une gestion efficace de la traçabilité.

Gestion du flux de travail de création d'anomalies / problèmes

Parasoft DTP aide également à trier la création de défauts et de problèmes en nouveaux éléments de travail. L'automatisation des tests et l'analyse statique produisent beaucoup de données à consommer. Les outils qui aident à gérer ces données sont importants pour hiérarchiser les éléments de travail et éviter que les outils ne submergent l'équipe.

À l'aide des explorateurs de violations et de tests dans Parasoft DTP, illustrés ci-dessous, l'équipe peut créer efficacement de nouveaux éléments de travail après le triage des échecs de test et des violations de l'analyse statique. La combinaison de la traçabilité et de la création triée des problèmes / défauts fournit une boucle de rétroaction complète pour un flux de travail.

Capture d'écran des explorateurs de violations et de tests dans Parasoft DTP, permettant aux équipes de créer de nouveaux éléments de travail après le tri des échecs de tests et des violations d'analyse statique.

Figure 6: Création d'un nouveau défaut dans VersionOne lors du tri des échecs de test dans Parasoft DTP.

Résumé

La traçabilité des exigences est un élément clé de la gestion des exigences dans le développement de logiciels. Le niveau de formalité de la traçabilité varie selon le type d'application, mais la pratique est absolument nécessaire dans les logiciels critiques pour la sécurité.

La traçabilité bidirectionnelle est importante pour que les outils de gestion des exigences et autres outils du cycle de vie puissent corréler les résultats et les aligner sur les exigences et les éléments de travail associés.

La complexité des projets logiciels modernes nécessite une automatisation pour adapter la traçabilité des exigences. Les outils Parasoft sont conçus pour s'intégrer aux meilleurs outils de gestion des exigences afin de faciliter la traçabilité des résultats d'automatisation des tests et de compléter la vérification des tests logiciels et la validation des exigences.

Analyse moderne pour les tests logiciels modernes