Un test d'intégration vérifie que les composants d'un système complexe (logiciels, avions, centrales, etc.) fonctionnent ensemble comme prévu.
Imaginons qu'il s'agisse d'un avion (avec un logiciel, c'est plus abstrait et difficile à faire la différence). Les tests d'intégration comprennent, vérifiant:
- interaction correcte entre certains composants. Exemple: en appuyant sur le bouton de démarrage, le moteur démarre et l'hélice atteint la vitesse de rotation attendue (l'avion reste toujours au sol)
- interaction correcte avec les composants externes. Exemple: vérifier que la radio intégrée peut communiquer avec une radio fixe (avion encore au sol)
- interaction correcte entre tous les composants impliqués, de sorte que le système dans son ensemble fonctionne comme prévu. Exemple: une équipe de pilotes d'essais et d'ingénieurs démarre l'avion et vole avec lui (ils portent tous des parachutes ...).
Le test d'intégration répond à un problème technique , à savoir que le système fonctionne malgré sa subdivision en composants. Dans le logiciel, les composants peuvent être des cas d’utilisation, des modules, des fonctions, des interfaces, des bibliothèques, etc.
Le test d'acceptation vérifie que le produit est adapté à l'usage auquel il est destiné. Ils sont en principe effectués par le client. En prenant l'analogie de l'aéronef, ils vérifient notamment que:
- Les scénarios d’entreprise envisagés donnent les résultats escomptés dans une situation presque réelle. Exemple: répétez un embarquement avec des passagers d’essai pour vérifier que le personnel peut contrôler l’embarquement comme prévu avec les procédures opérationnelles. Certains scénarios peuvent être si simples qu’ils ressemblent à des tests unitaires, mais ils sont réalisés par l’utilisateur (par exemple, essayez les prises électriques avec les équipements de l’entreprise).
- le système fonctionne dans une situation commerciale presque réelle. Exemple: effectuez un vol d’essai vide entre deux destinations réelles, avec des pilotes nouvellement formés de la compagnie aérienne pour vérifier que la consommation de carburant est conforme aux promesses.
Le test d'acceptation aborde davantage un problème de responsabilité . Dans une relation client / fournisseur, il peut s'agir d'une responsabilité contractuelle (respect de toutes les exigences). Mais dans tous les cas, il incombe également à l’organisme utilisateur de s’assurer que ses fonctions peuvent être exécutées avec le système et d’éviter avec prudence tout problème imprévu (par exemple, cette société de chemins de fer qui a découvert lors des essais de réception qu’elle avait dû raccourcir certaines les nouveaux wagons étaient 5 cm trop grand - pas de blague!).
Conclusions: Les tests d'intégration et d'acceptation se chevauchent. Ils ont tous deux l'intention de montrer que le système dans son ensemble fonctionne. Cependant, le "tout" peut être plus grand pour le client (car le système peut lui-même faire partie d'un système organisationnel plus grand) et plus technique pour l'intégrateur de système: