what is system integration testing
Qu'est-ce que le test d'intégration de système?
Le test d'intégration de système (SIT) est le test global de l'ensemble du système qui est composé de nombreux sous-systèmes. L'objectif principal de SIT est de s'assurer que toutes les dépendances des modules logiciels fonctionnent correctement et que l'intégrité des données est préservée entre les modules distincts de l'ensemble du système.
SUT (System Under Test) peut être composé de matériel, de base de données, de logiciel, d'une combinaison de matériel et de logiciel ou d'un système nécessitant une interaction humaine (HITL - Human in the Loop Testing).
Dans le contexte de l’ingénierie logicielle et des tests logiciels, le SIT peut être considéré comme un processus de test qui vérifie la cooccurrence du système logiciel avec d’autres.
SIT a une condition préalable dans laquelle plusieurs systèmes intégrés sous-jacents ont déjà subi et réussi les tests du système. SIT teste ensuite les interactions requises entre ces systèmes dans leur ensemble. Les livrables du SIT sont transmis à l'UAT (Test d'acceptation des utilisateurs).
Ce que vous apprendrez:
- Besoin d'un test d'intégration de système
- La granularité du SIT
- Comment effectuer des tests d'intégration système?
- Test système vs test d'intégration système
- Test d'intégration de système vs test d'acceptation des utilisateurs
- Exemple SIT
- SIT Techniques
- Conclusion
- lecture recommandée
Besoin d'un test d'intégration de système
La fonction principale de SIT est de tester les dépendances entre les différents composants du système et, par conséquent, les tests de régression sont une partie importante de SIT.
Pour les projets collaboratifs, SIT fait partie du STLC (Software Testing lifecycle). En règle générale, un cycle pré-SIT est effectué par le fournisseur de logiciel avant que le client n'exécute ses propres cas de test SIT.
Dans la plupart des organisations travaillant dans des projets informatiques suivant le modèle de sprint Agile, une série de SIT est menée par l'équipe QA avant chaque version. Les défauts trouvés dans le SIT sont renvoyés à l'équipe de développement et ils travaillent sur les correctifs.
La version MVP (Minimum Viable Product) du sprint ne fonctionne que lorsqu'elle est transmise par SIT.
SIT est nécessaire pour exposer les défauts qui se produisent lorsque l'interaction se produit entre les sous-systèmes intégrés.
Plusieurs composants sont utilisés dans le système et ils ne peuvent pas être testés individuellement. Même si l'unité est testée individuellement, il est également possible qu'elle échoue lorsqu'elle est combinée dans le système car de nombreux problèmes surviennent lorsque les sous-systèmes interagissent les uns avec les autres.
Ainsi, SIT est très nécessaire pour exposer et corriger les pannes avant de déployer le système du côté de l'utilisateur. SIT détecte les défauts à un stade précoce et économise ainsi le temps et les coûts de réparation ultérieure. Cela vous aide également à obtenir des commentaires plus tôt sur l'acceptabilité du module.
La granularité du SIT
La SIT peut être menée à trois niveaux de granularité différents:
(i) Test intra-système: Il s'agit d'un faible niveau de test d'intégration qui vise à fusionner les modules pour construire un système unifié.
(ii) Test inter-système: Il s'agit de tests de haut niveau qui nécessitent d'interfacer des systèmes testés indépendamment.
(iii) Test par paires: Ici, seuls deux sous-systèmes interconnectés dans l'ensemble du système sont testés à la fois. Cela vise à garantir que les deux sous-systèmes peuvent bien fonctionner lorsqu'ils sont combinés en supposant que les autres sous-systèmes fonctionnent déjà correctement.
Comment effectuer des tests d'intégration système?
La méthode la plus simple pour effectuer un SIT consiste à utiliser une méthode basée sur les données. Cela nécessite une utilisation minimale des outils de test logiciel.
quelle est ma clé de sécurité Internet
Tout d'abord, l'échange de données (importation de données et exportation de données) se produit entre les composants du système, puis le comportement de chaque champ de données dans la couche individuelle est examiné.
Une fois le logiciel intégré, il existe trois principaux états du flux de données, comme indiqué ci-dessous:
# 1) État des données dans la couche d'intégration
La couche d'intégration agit comme une interface entre l'importation et l'exportation de données. L'exécution de SIT à cette couche nécessite des connaissances de base sur certaines technologies telles que le schéma (XSD), XML, WSDL, DTD et EDI.
Les performances de l'échange de données peuvent être examinées à cette couche à travers les étapes ci-dessous:
- Validez les propriétés des données au sein de cette couche par rapport à BRD / FRD / TRD (document d'exigence métier / document d'exigence fonctionnelle / document d'exigence technique).
- Vérifiez la demande de service Web à l'aide de XSD et WSDL.
- Exécutez des tests unitaires et validez les mappages de données et les demandes.
- Consultez les journaux du middleware.
# 2) État des données dans la couche de base de données
L'exécution de SIT à cette couche nécessite une connaissance de base de SQL et des procédures stockées.
Les performances de l'échange de données à cette couche peuvent être examinées à travers les étapes ci-dessous:
- Vérifiez si toutes les données de la couche d'intégration ont été atteintes avec succès au niveau de la couche de base de données et ont été validées.
- Validez les propriétés de la table et de la colonne par rapport à BRD / FRD / TRD.
- Validez les contraintes et les règles de validation des données appliquées dans la base de données selon les spécifications métier.
- Vérifiez les procédures stockées pour toutes les données de traitement.
- Consultez les journaux du serveur.
# 3) État des données dans la couche Application
Le SIT peut être effectué sur cette couche en suivant les étapes ci-dessous:
- Vérifiez si tous les champs obligatoires sont visibles dans l'interface utilisateur.
- Exécutez des cas de test positifs et négatifs et validez les propriétés des données.
Noter: Il peut y avoir de nombreuses combinaisons correspondant à l'importation et à l'exportation de données. Vous devrez exécuter SIT pour les meilleures combinaisons compte tenu du temps dont vous disposez.
Test système vs test d'intégration système
Différences entre les tests de système et SIT:
SIT (test d'intégration système) | Test du système |
---|---|
SIT est principalement fait pour vérifier comment les modules individuels interagissent les uns avec les autres lorsqu'ils sont intégrés dans un système dans son ensemble. | Les tests du système sont principalement effectués pour vérifier si l'ensemble du système fonctionne comme prévu en référence aux exigences spécifiées. |
Il est effectué après les tests unitaires et sera effectué à chaque fois qu'un nouveau module est ajouté au système. | Elle est menée au niveau final, c'est-à-dire après la fin des tests d'intégration et juste avant la livraison du système pour UAT. |
C'est un test de bas niveau. | C'est un test de haut niveau. |
Les cas de test SIT se concentrent sur l'interface entre les composants du système. | Les cas de test, dans ce cas, se concentrent sur la simulation des scénarios réels. |
Test d'intégration de système vs test d'acceptation des utilisateurs
Voici la différence entre SIT et UAT:
comment exécuter un fichier .bin
SIT (test d'intégration système) | UAT (test d'acceptation par l'utilisateur) |
---|---|
Ce test est du point de vue de l'interfaçage entre les modules. | Ce test est du point de vue des besoins des utilisateurs. |
SIT est réalisé par des développeurs et des testeurs. | UAT est fait par les clients et les utilisateurs finaux. |
Fait après les tests unitaires et avant les tests du système. | Il s'agit du dernier niveau de test et est effectué après le test du système. |
En règle générale, les problèmes rencontrés dans SIT seraient liés au flux de données, au flux de contrôle, etc. | Les problèmes trouvés dans UAT seraient généralement comme les fonctionnalités qui ne fonctionnent pas selon les exigences de l'utilisateur. |
L'image ci-dessous sur les niveaux de test vous rendrait clair le flux entre les tests unitaires et l'UAT:
Exemple SIT
Supposons qu'une entreprise utilise un logiciel pour stocker les détails du client.
Ce logiciel a deux écrans dans l'interface utilisateur - Écran 1 et Écran 2, et il dispose d'une base de données. Les détails saisis dans les écrans 1 et 2 sont saisis dans la base de données. Désormais, l'entreprise est satisfaite de ce logiciel.
Cependant, quelques années plus tard, l'entreprise constate que le logiciel ne répond pas aux exigences et qu'il est nécessaire de l'améliorer. Par conséquent, ils ont développé un écran 3 et une base de données. Maintenant, ce système ayant l'écran 3 et une base de données est intégré au logiciel plus ancien / existant.
Désormais, le test effectué sur l'ensemble du système après l'intégration est appelé test d'intégration du système. Ici, la coexistence d'un nouveau système avec un système existant est testée pour s'assurer que l'ensemble du système intégré fonctionne correctement.
SIT Techniques
Principalement, il existe 4 approches pour faire SIT:
- Approche descendante
- Une approche en profondeur
- Approche sandwich
- Approche du Big Bang
L'approche descendante et l'approche ascendante sont une sorte d'approches progressives. Commençons d'abord la discussion par l'approche descendante.
# 1) Approche descendante:
Sous cela, le test commence avec le module le plus haut d'une application, c'est-à-dire l'interface utilisateur que nous appelons comme pilote de test.
La fonctionnalité des modules sous-jacents est simulée avec des stubs. Le module supérieur est intégré avec le stub de module de niveau inférieur un par un, puis la fonctionnalité est testée.
Une fois chaque test terminé, le stub est remplacé par le module réel. Les modules peuvent être intégrés soit selon la largeur en premier, soit selon la profondeur en premier. Le test se poursuit jusqu'à ce que toute l'application soit créée.
L'avantage de cette approche est qu'il n'y a pas besoin de pilotes et que les cas de test peuvent être spécifiés en termes de fonctionnalité du système.
Le principal défi de ce type d'approche est la dépendance à la disponibilité des fonctionnalités des modules de niveau inférieur. Il peut y avoir un délai dans les tests jusqu'à ce que les vrais modules soient remplacés par des stubs. L'écriture de talons est également difficile.
meilleur téléchargement de convertisseur youtube en mp3
# 2) Approche ascendante:
Elle élimine les limites de l'approche descendante.
Dans cette méthode, tout d'abord, les modules de niveau le plus bas sont assemblés pour former des clusters. Ces clusters servent de sous-fonction de l'application. Ensuite, un pilote est créé pour gérer l'entrée et la sortie du scénario de test. Après cela, le cluster est testé.
Une fois le cluster testé, le pilote est supprimé et le cluster est combiné avec le niveau supérieur suivant. Ce processus se poursuit jusqu'à ce que toute la structure de l'application soit réalisée.
Il n'y a pas besoin de stubs dans cette approche. Cela se simplifie à mesure que le traitement augmente et que le besoin de chauffeurs diminue. Cette approche est recommandée pour la réalisation de SIT pour les systèmes orientés objet, les systèmes en temps réel et les systèmes ayant des besoins de performance stricts.
Cependant, la limitation de cette approche est le sous-système le plus important, c'est-à-dire que l'interface utilisateur est testée en dernier.
# 3) Approche sandwich:
Ici, les approches descendante et ascendante discutées ci-dessus sont combinées.
Le système est perçu comme ayant trois couches - la couche intermédiaire qui est la couche cible, une couche au-dessus de la cible et une couche en dessous de la cible. Les tests sont effectués dans les deux directions et se rassemblent au niveau de la couche cible qui se trouve au milieu et cela est illustré dans l'image ci-dessous.
Stratégie de test sandwich
Un avantage de cette approche est que la couche supérieure et la couche inférieure du système peuvent être testées en parallèle. Cependant, la limitation de cette approche est qu'elle ne teste pas de manière exhaustive les sous-systèmes individuels avant l'intégration.
Pour éliminer cette limitation, nous avons modifié les tests sandwich dans lesquels l'intégration des couches supérieure, intermédiaire et inférieure est testée en parallèle à l'aide de stubs et de pilotes.
# 4) Approche du Big Bang:
Dans cette approche, l'intégration se fait une fois que tous les modules de l'application sont complètement prêts. Les tests sont effectués après l'intégration de tous les modules pour vérifier si le système intégré fonctionne ou non.
Il est difficile de trouver la cause profonde du problème dans cette approche, car tout est intégré en même temps, contrairement aux tests incrémentiels. Cette approche est généralement adoptée lorsqu'un seul cycle de SIT est nécessaire.
Conclusion
Dans cet article, nous avons appris ce qu'est le test d'intégration système (SIT) et pourquoi est-il important de le réaliser.
Nous avons compris les concepts de base, les techniques, les approches et les méthodes impliquées dans la réalisation de SIT. Nous avons également expliqué en quoi SIT est différent de l'UAT et des tests de système.
J'espère que vous avez apprécié cet excellent article !!
lecture recommandée
- Qu'est-ce que le test de composant ou le test de module (apprendre avec des exemples)
- Qu'est-ce que le test de comparaison (apprendre avec des exemples)
- Qu'est-ce que le test d'intégration (tutoriel avec exemple de test d'intégration)
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Les différences entre les tests unitaires, les tests d'intégration et les tests fonctionnels
- Test fonctionnel vs test non fonctionnel
- Intégration de Selenium avec JMeter
- Spock pour l'intégration et les tests fonctionnels avec sélénium