Webinaire en vedette : Tests d'API améliorés par l'IA : une approche de test sans code | Voir le séminaire
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.
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.
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.
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
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.
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.
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.
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.
Améliorez vos tests logiciels avec les solutions Parasoft.
Explorez les chapitres
- Introduction "
- 1. Aperçu »
- 2. Analyse statique »
- 3. MISRA »
- 4. AUTOSAR C++ 14 »
- 5. SEI/CERT »
- 6. CWE »
- 7. Tests unitaires »
- 8. Tests de régression »
- 9. Tests d'intégration de logiciels »
- 10. Test du système logiciel »
- 11. Couverture du code structurel »
- 12. Matrice de traçabilité des exigences »
- 13. Qualification des outils »
- 14. Rapports et analyses »