Tests d'intégration

Les tests d'intégration ont une importance non négligeable dans les projets informatiques. Cette page vous permettra de comprendre pourquoi, et en quoi ils consistent vraiment.

Test d'intégration : définition

Les développeurs savent généralement grosso-modo ce qu'est un test unitaire, même ceux qui n'en pratiquent pas. Les choses se compliquent allègrement quand on commence à parler d'intégration et de tests d'intégration.

Il y a intégration et intégration : ne confondons pas tout

Dans certains domaines (spécialement dans le Web), il est devenu de coutume de parler d'intégration pour désigner quelque chose qui n'a rien à voir avec l'intégration telle qu'on la conçoit traditionnellement en génie logiciel. Ceci à notamment donné lieu à une nouvelle profession : intégrateur ! Voici la description de ce métier selon l'ONISEP : « Travaillant dans une agence web ou une société de services en ingénierie informatique (SSII), l'intégrateur web assemble les différents éléments (textes, images, sons, vidéos, animations) en vue de la construction d'un site internet ».

Cette définition ne correspond pas du tout à ce que nous allons raconter sur cette page !

Important Que les choses soient bien claires : faire des tests d'intégration, ce n'est pas tester que les CSS produisent un joli rendu et que les images s'affichent bien sur les pages d'un site Internet !

OK, mais du coup c'est quoi l'intégration ?

L'intégration, c'est simplement le fait d'assembler plusieurs composants logiciels élémentaires pour réaliser un composant de plus haut niveau. Par exemple, le fait d'utiliser une classe Client et une classe Produit pour créer un module de process commande sur un site marchant, c'est de l'intégration !

Définition Un test d'intégration vise à s'assurer du bon fonctionnement de la mise en œuvre conjointe de plusieurs unités de programme, testés unitairement au préalable.

Pré-requis : les tests unitaires

Avant de tester que l'assemblage des quatres pieds et du plateau d'une table est possible et que l'ensemble est solide, un menuisier commence par s'assurer que chaque pied est solide et à la bonne hauteur, et que le plateau est à la bonne dimension et lui aussi bien solide. Ensuite, seulement ensuite, il commence à tester l'ensemble.

Vous l'aurez compris : avant de réaliser des tests d'intégration, il faut s'assurer que des tests unitaires pertinents ont été réalisés sur les différents composants à intégrer.

L'intégration continue

Le concept d'intégration continue fait référence à la notion d'intégration exposée plus haut. Le principe consiste à rendre systématique et plus ou moins automatique l'intégration des différents composants d'un système dès que ces composants sont modifiés, pour faire en sorte que les effets produits par ces modifications soient rapidement mesurables. Ceci permet notamment d'éviter les gros bugs difficiles à déceler, et favorise l'agilité dans les projets.

Des outils (serveurs d'intégration continue) permettent de simplifier la mise en œuvre de l'intégration continue (Jenkins, Bamboo…).

Bouquins sur l'intégration et l'intégration continue

Continuous Integration

Continuous Integration

Voir

Continuous Integration: Improving Software Quality and Reducing Risk

Continuous Integration: Improving Software Quality and Reducing Risk

Voir