Obtenez les dernières informations de mise à jour critique pour la vulnérabilité Log4j. Découvrez comment résoudre le problème avec les conseils de Parasoft. En savoir plus >>

X
BLOG

Gestion des exigences et matrice de traçabilité

Gestion des exigences et matrice de traçabilité Temps de lecture : 6 minutes

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.

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.

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.

Découvrez la solution de test de développement la plus complète pour C et C ++ en action.
Essayez le test Parasoft C / C ++

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 d'Intland codeBeamer. Il montre les exigences de niveau système décomposées en exigences de haut niveau et de bas niveau, ainsi que les cas de test qui les vérifient.

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 comprendre 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 ses fonctions prévues, bien sûr, mais il doit également atténuer les risques pour réduire considérablement les risques de blessures. De plus, afin de documenter et prouver que ces fonctions de sécurité sont mises en œuvre et testées pleinement et correctement, 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).

Figure 4: Parasoft fournit une traçabilité bidirectionnelle des éléments de travail aux cas de test et aux résultats de test - à la fois en affichant des rapports de traçabilité avec Parasoft DTP et en rapportant 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 histoires créées dans Jira qui retracent les cas de test, les résultats de l'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é.

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.

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

Récapitulatif

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 faire évoluer la traçabilité des exigences. Les outils Parasoft sont conçus pour s'intégrer aux meilleurs outils de gestion des exigences pour faciliter la traçabilité des résultats d'automatisation des tests, et compléter la vérification des tests logiciels et la validation des exigences.

Découvrez la solution de test de développement la plus complète pour C et C ++ en action.
Essayez le test Parasoft 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.