Test De Logiciel

Tutoriel de test d'intégration pour les débutants

30 octobre 2021

Table des matières

Qu'est-ce qu'un test d'intégration ?

Le test d'intégration est décrit comme un processus de test logiciel dans lequel plusieurs modules logiciels sont logiquement intégrés et testés. Dans ce processus, plusieurs modules sont d'abord testés individuellement, puis testés en tant qu'unité intégrée unique. L'ensemble du groupe est passé en revue pour voir si le module intégré fonctionne comme prévu.

Il s'agit d'une approche pragmatique du développement logiciel qui nécessite un processus minutieux pour développer un produit par le biais de tests et de révisions continus. Cela se fait en intégrant progressivement des modules ou des composants d'une application.

Ce type de test est appliqué et agrégé pour tester et défini dans un plan de test d'intégration exécuté localement. Les tests d'intégration fournissent un système intégrateur et un système prêt pour le test. L'objectif principal de ces tests est de tester l'interaction entre les différents composants.

Les tests d'intégration sont d'une immense importance, car tous les composants et modules sont combinés et testés. Le test d'intégration devient un besoin vital pour toute entreprise lorsqu'elle envisage de passer à un nouveau modèle économique, à de nouvelles technologies, voire à de nouveaux produits ou services. Les tests d'intégration sont une partie essentielle du cycle de test, permettant aux testeurs de trouver des lacunes après avoir intégré plusieurs unités.

Nous avons différents types de tests comme Tests unitaires , Test du système , et Tests d'acceptation .

Tests d'intégration

Pourquoi les tests d'intégration ?

  • Les tests sont plus fiables et plus confortables pour isoler les pannes.
  • Des mannequins ou des stubs et des pilotes peuvent être utilisés.
  • Les tests d'intégration donnent confiance au développeur.
  • Tests plus rapides.
  • Les tests d'intégration commencent à un stade très précoce du cycle de vie du développement, et les développeurs peuvent détecter les bogues plus tôt que tard.
  • Les tests d'intégration détectent les erreurs au niveau du système, telles qu'un schéma de base de données défectueux et une mauvaise intégration du cache.
  • Plus confortable à tester dans un environnement en développement.
  • La création du bon test donne un mécanisme de boucle de rétroaction précis entre les développeurs et les ingénieurs de test.
  • Meilleure couverture du code.
  • Plus confortable pour suivre la couverture du code.
  • Aide principalement à créer des cas d'utilisation en temps réel pendant les tests de bout en bout.

Que sont les stubs et les pilotes dans les tests d'intégration ?

Les stubs et les pilotes sont des pseudo-codes ou des codes factices utilisés pour tester les composants d'intégration lorsqu'un ou plusieurs modules ne sont pas développés et sont nécessaires pour tester d'autres modules. C'est un programme qui fournit des codes codés en dur car l'entrée accepte la sortie d'un module dans le test d'intégration.

Communément appelés programmes d'appel, les stubs et les pilotes sont souhaitables de haut en bas dans la méthodologie des tests d'intégration. En revanche, les conducteurs appliquent l'approche ascendante. Les stubs et les testeurs de pilotes peuvent utiliser et stimuler le comportement des modules qui ne sont pas encore intégrés au logiciel. De plus, ils permettent de simuler l'activité des composants manquants.

Quels sont les types/approches des tests d'intégration ?

Test d'intégration Big Bang :

Un test d'intégration big bang est une approche bénéfique pour les tests logiciels ; il offre aux développeurs un ensemble complet de tests d'intégration pour leurs logiciels, systèmes et applications au début des tests d'intégration.

Les tests d'intégration Big Bang sont les tests continus qui se produisent avant que les segments du système ne forment le système. C'est l'une des approches les plus prometteuses pour test de logiciel , où l'intégration constante de systèmes et de composants conduit à la formation d'un système ou d'une application complète.

Avantages :

  • Utile pour les petits systèmes.
  • Le principal avantage est que tout est terminé avant le début des tests d'intégration.

Désavantages:

  • Très chronophage
  • Difficile de retracer la cause des échecs à cause de l'intégration retardée.
  • Les chances d'avoir des défaillances critiques sont plus grandes car, dans les tests big bang, tous les composants sont testés ensemble simultanément.
  • Il existe une forte possibilité d'apparition de bogues critiques dans l'environnement de production.
  • Si un bogue est trouvé, il devient extrêmement difficile de détacher tous les modules pour déterminer sa cause première.

Tests d'intégration incrémentiels

Dans les tests d'intégration incrémentielle, les programmeurs intègrent les modules à l'aide de stubs ou de pilotes pour découvrir les défauts un par un. Dans cette approche, les tests sont effectués en mélangeant deux ou plusieurs modules logiquement liés les uns aux autres, puis testés concernant leur bon fonctionnement. Les autres modules associés sont intégrés de manière incrémentielle et le processus se poursuit jusqu'à ce que tous les modules logiquement associés soient intégrés et testés avec succès. En revanche, le big bang est une autre technique de test d'intégration, où tous les modules sont intégrés en un seul coup.

Les tests incrémentaux sont de deux types.

1. Approche descendante :

Les tests d'intégration descendants sont l'approche dans laquelle un composant est créé à un niveau inférieur et intégré dans un composant à un niveau supérieur. Les tests d'intégration descendants se concentrent davantage sur l'intégration de composants en haut qu'en bas. Le développeur peut utiliser des stubs pour cette approche. Cette approche s'applique à un large éventail d'activités, telles que la définition d'objectifs, la budgétisation et les prévisions.

L'approche de test d'intégration descendante teste d'abord les modules de haut niveau, puis les modules de niveau de plus en plus bas. Cette méthode permet d'effectuer des tests du haut vers le bas, en suivant les flux de contrôle et les structures architecturales, avec des tests d'intégration en partant du haut vers le bas. L'application la plus courante est l'approche de haut en bas utilisant des stubs pour les tests d'intégration et la sortie du test.

Avantages :

  • Cette méthode n'a pas un impact aussi important sur les ressources d'exploitation et de maintenance que les approches ascendantes.
  • La localisation des pannes est facile.
  • Un premier prototype peut être obtenu facilement.
  • Les principaux défauts de conception ont pu être trouvés et corrigés en premier.
  • Les modules prioritaires peuvent être testés en premier.
  • L'avantage de cette approche est que les décisions peuvent être prises et mises en œuvre très rapidement.

Désavantages:

  • Cette approche nécessite de nombreux Stubs.
  • Les modules à un niveau inférieur sont testés de manière inefficace.
  • Fournit une couverture limitée dans les premières phases.
  • Les développeurs devront peut-être développer des adaptateurs personnalisés à un stade précoce.
  • Le coût de mise en œuvre est susceptible d'être plus élevé.

2. Approche ascendante :

L'approche ascendante est à l'opposé du test d'intégration descendant : les modules de la couche la plus basse sont d'abord testés et intégrés, puis intégrés séquentiellement avec d'autres modules en mouvement.

Les tests d'intégration ascendants commencent par des tests unitaires, suivis d'une construction modulaire. D'abord, le module parent est testé, puis le module enfant, et ainsi de suite jusqu'à ce qu'il soit intégré.

Le pilote de test est piloté et transmet les données correspondantes du module de bas niveau, et lorsque le code de l'autre module est prêt, le pilote remplace le module réel. Le module inférieur est testé et les modules de niveau supérieur sont testés de la même manière que dans un test d'intégration complémentaire, mais avec un pilote différent.

Avantages :

  • Localisation plus facile des pannes.
  • Le temps nécessaire pour suivre l'approche ascendante est bien inférieur à celui des autres méthodes de test.
  • Sensibilisation des utilisateurs au produit.
  • L'automatisation peut remplacer de nombreux processus manuels.
  • Rentable.
  • Observations de test plus faciles.
  • Avantageux si des défauts majeurs se produisent vers le bas du programme.

Désavantages

  • Le programme, dans son ensemble, n'existe pas tant que le dernier module n'est pas ajouté.
  • Un premier prototype n'est pas possible.
  • La stratégie ascendante est gérée par l'infrastructure existante au lieu des processus métier.
  • Les modules obligatoires (au niveau supérieur de l'architecture logicielle) qui contrôlent le flux applicatif sont testés en dernier et peuvent être sujets à des défauts.

Test sandwich / hybride

Le test sandwich est une union de l'approche ascendante et descendante, il exploite donc à la fois l'approche ascendante et l'approche descendante.

Au cours de cette phase, l'interface et la communication entre chaque module sont testées. Il est également connu sous le nom de test d'intégration hybride. Les tests sandwich modifiés sont incroyablement bénéfiques, aidant les testeurs à tester différents composants du système pendant leur intégration.

Avantages :

  • L'approche de test sandwich est utile pour les projets étendus qui ont des sous-projets.
  • Il permet des tests en parallèle.
  • C'est efficace dans le temps.
  • Les développeurs apprécient cette approche car elle combine avantages de tous associés essai frameworks, aidant les professionnels à tirer parti de tout ce qu'ils ont de mieux d'une manière claire.

Désavantages:

  • Le test sandwich est assez cher.
  • Le test sandwich ne peut pas être utilisé pour les systèmes, qui ont beaucoup d'interdépendance avec différents composants/modules.
  • Dans les essais sandwich/essais hybrides, le besoin de stubs et de pilotes est très élevé.
  • Les tests peuvent devenir compliqués.
  • Difficile de localiser les défauts.
  • Les tests mixtes nécessitent un coût élevé.
  • Cette approche n'est pas adaptée aux petits projets.

Comment faire des tests d'intégration ?

Habituellement, les tests d'intégration viennent après les tests unitaires. Une fois toutes les unités individuelles testées, les développeurs commencent à combiner ces modules testés et commencent à effectuer les tests d'intégration. L'objectif principal du processus ici est de tester les interfaces entre les unités/modules.

  • Préparez un dessin.
  • Choisissez le type d'approche de test dans la liste ci-dessus.
  • Sélectionnez les cas de test, les contours et les scripts en conséquence.
  • Déployez ensemble les unités choisies et lancez les tests d'intégration.
  • Suivre les défauts et les bogues pour enregistrer les résultats des tests des tests.
  • Répétez les points ci-dessus jusqu'à ce que l'ensemble du système soit testé.

La priorité du processus doit être sur les liens d'interface qui sont intégrés entre les modules.

Meilleurs outils pour les tests d'intégration :

VectorCAST/C++ est une solution automatisée de tests unitaires et d'intégration utilisée pour valider les systèmes embarqués critiques pour la sécurité et le marché. Cette solution de test dynamique est largement utilisée dans des secteurs tels que l'avionique, les dispositifs médicaux, l'automobile, les contrôles industriels, les chemins de fer et les secteurs financiers.

Citrus est un framework open source qui peut aider les développeurs à automatiser les tests d'intégration pour n'importe quel protocole de messagerie ou format de données. Citrus est le cadre de choix pour tester les intégrations de messagerie de votre application. Si vous utilisez un transport de messagerie tel que HTTP, REST, SOAP ou JMS.

LDRA permet aux développeurs d'effectuer des tests unitaires et d'intégration sur l'hôte et le périphérique cible. Avec LDRA, les développeurs peuvent rapidement et facilement générer et exécuter des tests au niveau de l'unité et de l'intégration, à la fois sur l'hôte (autonome ou avec simulation cible) et sur le matériel cible.

De nos jours, plusieurs entreprises encouragent l'architecture orientée métier. La méthode de test d'intégration traditionnelle, comme l'approche ascendante, nécessite des efforts considérables pour créer des données de test. Le Smart Integration Test Accelerator (SITA) de Wipro aide les développeurs à surmonter ces défis. Ce cadre permet aux développeurs d'accélérer la génération de données de test et de conception de test.

Rational Integration Tester (RIT) est un outil de test d'intégration précédemment connu sous le nom de Green Hat. IBM a acquis Green Hat en 2012. Avec Rational Integration Tester d'IBM, les développeurs peuvent obtenir un environnement sans script et le développement est possible pour les tests de messagerie SOA et les projets d'intégration. Rational Integration Tester évite les problèmes d'intégration à l'aide de méthodes de développement itératives et agiles. L'outil fait désormais partie de Rational Test Workbench.

Conseils pour les tests d'intégration :

  • Exécutez les tests d'intégration jusqu'à ce que vous trouviez au moins un défaut.
  • Après avoir isolé un défaut, résolvez-le immédiatement en ajoutant ou en modifiant le code.
  • Ne pratiquez les tests d'intégration qu'après avoir correctement effectué les tests unitaires.
  • Enregistrez vos progrès aide; les développeurs analysent mieux l'échec et conservent un enregistrement des raisons potentielles de l'échec.
  • La journalisation vous aide à analyser l'échec et à conserver un enregistrement des raisons potentielles de l'échec, ainsi qu'à exclure d'autres explications, en limitant la cause réelle.
  • Assurez-vous que vos environnements de test et de développement correspondent.
  • Utilisez des données de test précieuses.
  • Utilisez un référentiel commun pour les bogues et les tests.

Articles Liés

Tests unitaires Test du système Tests d'acceptation