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

Conformité des logiciels ISO 26262 dans l'industrie automobile

Tests d'intégration de logiciels

Test d'intégration Les tests unitaires ont pour objectif de valider la conception architecturale ou les exigences de haut niveau. Les tests d'intégration peuvent être effectués de bas en haut et de haut en bas avec une combinaison d'approches probables dans de nombreuses organisations de logiciels.

Intégration ascendante

Les testeurs prennent des cas de test unitaires et suppriment les stubs ou les combinent avec d'autres unités de code qui constituent des niveaux de fonctionnalité plus élevés. Ces types de cas de test intégrés sont utilisés pour valider les exigences de haut niveau.

Intégration descendante

Dans ce type de test, les modules ou sous-systèmes de haut niveau sont testés en premier. Progressivement, les tests des modules de niveau inférieur (sous-sous-systèmes) sont inclus. Cette approche suppose que les sous-systèmes importants sont suffisamment complets pour être inclus et testés dans leur ensemble.

Le modèle en V est un bon moyen d'illustrer la relation entre les étapes de développement et les étapes de validation. À chaque étape de test, des parties plus complètes du logiciel sont validées par rapport à la phase qui les définit.

Le modèle en V peut impliquer une méthode de développement en cascade. Cependant, il existe des moyens d'intégrer Agile, DevOps et CI/CD dans ce type de développement de produit tout en restant conforme aux normes.

Graphique du modèle en V montrant la relation entre la conception architecturale et les tests d'intégration.
Le modèle en V du développement logiciel montre la relation entre chaque phase et la validation déduite à chaque étape de test.

Bien que l'acte d'effectuer des tests soit considéré comme une validation logicielle, il est soutenu par un processus de vérification parallèle qui implique les activités suivantes pour garantir que les équipes construisent correctement le processus et le produit :

Avis

soluces

Analyse

Traçabilité

Teste

Couverture du code et plus

Le rôle clé de la vérification est de garantir que les artefacts livrés par le bâtiment lors de l'étape précédente sont conformes aux spécifications, conformément aux directives de l'entreprise et du secteur. 

Intégration et tests système dans le cadre d'un processus de test continu

Effectuer un certain niveau de automatisation des tests est fondamental pour les tests continus. De nombreuses organisations commencent par automatiser l'intégration manuelle et les tests système (de haut en bas) ou les tests unitaires (de bas en haut).

Pour permettre des tests continus, les organisations doivent se concentrer sur la création d'une pratique d'automatisation des tests évolutive qui s'appuie sur une base de tests unitaires, qui sont isolés et plus rapides à exécuter. Une fois les tests unitaires entièrement automatisés, l'étape suivante est celle des tests d'intégration et, éventuellement, des tests système.

Test continu s'appuie sur l'automatisation et les données issues des tests pour fournir une évaluation objective et en temps réel des risques associés à un système en cours de développement. Appliqué de manière uniforme, il permet aux responsables commerciaux et techniques de prendre de meilleures décisions de compromis entre le périmètre, le temps et la qualité de la version.

Les tests continus ne se résument pas à une automatisation accrue. Il s'agit d'une réévaluation plus large des pratiques de qualité logicielle, qui sont motivées par le coût de la qualité d'une organisation et équilibrées en termes de rapidité et d'agilité. Même dans le cadre du modèle en V utilisé dans le développement de logiciels critiques pour la sécurité, les tests continus restent une approche viable, en particulier pendant les phases de test, par exemple lors des tests unitaires et des tests d'intégration.

Le diagramme ci-dessous illustre comment les différentes phases de test font partie d’un processus continu qui repose sur une boucle de rétroaction des résultats de test et de l’analyse.

Exemple d'un pipeline de tests continus
Un cycle de tests continu

Analyse et reporting Parasoft à l'appui des tests d'intégration et de système

Les outils d'automatisation des tests Parasoft prennent en charge la validation (activités de test réelles) en termes d'automatisation des tests et de tests continus. Ces outils prennent également en charge la vérification de ces activités, ce qui signifie qu'ils prennent en charge les exigences des processus et des normes. Un aspect clé du développement de logiciels automobiles critiques pour la sécurité est traçabilité des exigences et couverture de code.

Traçabilité bidirectionnelle

Les exigences des 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 pleinement le produit. Cette dépendance à l'égard des exigences documentées est une bénédiction mitigée, car les exigences médiocres sont l'une des causes critiques des incidents de sécurité dans les logiciels. En d'autres termes, ce n'est pas l'implémentation qui est en cause, mais les exigences médiocres ou manquantes.

Automatiser la traçabilité bidirectionnelle

La tenue à jour des enregistrements de traçabilité à n'importe quelle échelle nécessite une automatisation. Les outils de gestion du cycle de vie des applications incluent des fonctionnalités de gestion des exigences qui sont matures et tendent à être la plaque tournante de la traçabilité. Les outils de test de logiciels intégrés comme Parasoft complètent la vérification et la validation des exigences en fournissant une traçabilité bidirectionnelle automatisée jusqu'au cas de test exécutable. Cela inclut le résultat de réussite ou d'échec et remonte jusqu'au code source qui implémente l'exigence.

Parasoft s'intègre aux outils de gestion des exigences ou aux systèmes ALM leaders du marché tels que PTC Codebeamer, Polarion de Siemens, Atlassian Jira, Jama Connect, Jira et autres. Comme le montre l'image ci-dessous, chacune des solutions d'automatisation des tests de Parasoft, Test C/C++, test C/C++ CT, Jtest, pointTEST, SOAtestet Sélénique, utilisé dans le cycle de vie du développement, prend en charge l'association des tests avec les éléments de travail définis dans ces systèmes, tels que les exigences, les défauts et les cas de test/exécutions de test. La traçabilité est gérée via Parasoft Tableau de bord central de reporting et d'analyse de DTP.

Graphique d'une boucle de rétroaction des résultats de test et de l'analyse pour différentes phases de test dans un processus continu.
Traçabilité et reporting des exigences

Parasoft DTP corrèle les identifiants uniques du système de gestion avec :

  • Résultats de l'analyse statique
  • Couverture de code
  • Résultats des tests unitaires, d'intégration et fonctionnels

Capture d'écran du tableau de bord du Parasoft DTP Reporting Center montrant les mesures de traçabilité des exigences bidirectionnelles.
Parasoft fournit un tableau de bord de reporting qui capture l'état des tests du projet, la corrélation avec les exigences et la progression vers l'achèvement.

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é et un reporting bidirectionnels complets dans le cadre de la matrice de traçabilité du système.

Instantané d'une matrice de traçabilité Codebeamer
Matrice de traçabilité Codebeamer. Des exigences système aux exigences de haut niveau, en passant par les exigences de bas niveau, les cas de test et les résultats de test.

Les rapports de traçabilité dans Parasoft DTP sont hautement personnalisables. L'image suivante montre un modèle de matrice de traçabilité des exigences pour les exigences créées dans Polarion qui remontent aux cas de test, aux résultats de l'analyse statique, aux fichiers de code source et aux révisions manuelles du code.

Capture d'écran de la matrice de traçabilité des exigences Parasoft DTP intégrée à Siemens Polarion.
Modèle de matrice de traçabilité des exigences de Parasoft DTP intégré à Siemens Polarion.
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 la couverture des tests et du 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é.

Couverture de code

La couverture du code exprime le degré auquel le code source de l'application est soumis à toutes les pratiques de test, y compris les tests unitaires, d'intégration et système, à la fois automatisés et manuels.

La collecte de données de couverture tout au long du cycle de vie permet d'obtenir des mesures de qualité et de couverture plus précises, tout en exposant les parties non testées ou sous-testées de l'application. En fonction du niveau d'intégrité de sécurité (ASIL dans la norme ISO 26262), la profondeur et l'exhaustivité de la couverture du code varient.

La couverture des applications peut également aider les organisations à concentrer leurs efforts de test lorsque les contraintes de temps limitent leur capacité à exécuter la suite complète de tests de régression manuels. La capture des données de couverture sur le système en cours d'exécution sur son matériel cible pendant l'intégration et les tests système complète la couverture du code à partir des tests unitaires.

Avantages de la couverture globale du code

Les données de couverture capturées sont exploitées dans le cadre du processus d'intégration continue (CI), ainsi que dans le cadre du flux de travail du testeur. Parasoft DTP effectue des analyses avancées sur la couverture du code de tous les tests, les modifications du code source, les résultats d'analyse statique et les résultats des tests. Les résultats aident à identifier le code non testé et sous-testé et d'autres zones à haut risque dans le logiciel.

L'analyse du code, l'exécution des tests, le suivi de la couverture et la création de rapports sur les données dans un tableau de bord ou un graphique constituent une première étape utile pour évaluer les risques, mais les équipes doivent toujours consacrer beaucoup de temps et de ressources à la lecture des feuilles de thé et espérer qu'elles ont interprété les données correctement.

Pour comprendre les risques potentiels de l'application, il faut des processus d'analyse avancés qui fusionnent et corrélent les données. Cela offre une meilleure visibilité sur la couverture réelle du code et permet d'identifier les lacunes et les chevauchements de tests. Par exemple, quelle est la couverture réelle de l'application testée lorsque vos outils signalent des valeurs de couverture différentes pour les tests unitaires, les tests fonctionnels automatisés et les tests manuels ?

Les pourcentages ne peuvent pas être simplement additionnés car les tests se chevauchent. Il s'agit d'une étape essentielle pour comprendre le niveau de risque associé à l'application en cours de développement.

Capture d'écran du tableau de bord de reporting et d'analyse de Parasoft DTP montrant la gestion des changements.
Tableau de bord de reporting et d'analyse Parasoft DTP

Accélération de l'intégration et des tests système avec les outils d'automatisation des tests Parasoft

Les outils d'automatisation des tests logiciels de Parasoft accélèrent la vérification en automatisant les nombreux aspects fastidieux de la tenue des registres, de la documentation, des rapports, de l'analyse et du reporting.

Icône à l'intérieur d'un cercle bleu montrant une ligne horizontale blanche avec des flèches aux deux extrémités.

Traçabilité bidirectionnelle pour tous les artefacts garantit que les exigences sont accompagnées de code et de tests prouvant qu'elles sont respectées. Les métriques, les résultats des tests et les résultats des analyses statiques sont reliés aux composants et vice versa.

Icône à l'intérieur d'un cercle bleu montrant des crochets blancs ouvrants et fermants avec une barre oblique entre les deux pour représenter le code.

Code et couverture de test vérifie que toutes les exigences sont mises en œuvre et s'assure que la mise en œuvre est testée comme requis.

Icône à l'intérieur d'un cercle bleu montrant un contour blanc d'une cible.

Exécution de test basée sur la cible et l'hôte prend en charge différentes techniques de validation selon les besoins.

Icône à l'intérieur d'un cercle bleu montrant le contour d'un petit cercle blanc au centre de trois autres cercles, reliés à chacun par une ligne représentant les appareils intelligents connectés.

Exécution intelligente des tests gère les changements en se concentrant sur les tests uniquement pour le code qui a changé et les dépendances impactées.

Icône à l'intérieur d'un cercle bleu montrant quatre lignes blanches verticales de différentes hauteurs représentant un graphique.

Rapports et analyse fournit des informations permettant de prendre des décisions importantes et de suivre les progrès. La prise de décision doit être basée sur les données collectées à partir des processus automatisés.

Icône à l'intérieur d'un cercle bleu montrant un contour blanc d'une liste de contrôle des directives.

Génération de documentation automatisée à partir des analyses et des résultats des tests, prenez en charge les processus et la conformité aux normes.

Icône à l'intérieur d'un cercle bleu montrant trois flèches blanches formant un cercle continu.

Automatisation de la conformité aux normes réduit les frais généraux et la complexité en automatisant les processus les plus répétitifs et fastidieux. Les outils peuvent suivre l'historique du projet et relier les résultats aux exigences, aux composants logiciels, aux tests et aux écarts enregistrés.

Bannière bleu foncé avec l'image d'un homme parlant à une femme tenant une tablette à la main dans une salle de serveurs.
Image d'un homme et d'une femme avec une tablette à la main en train de discuter dans une salle de serveurs.

Améliorez vos tests logiciels avec les solutions Parasoft.