Qu'est-ce que le test de composants ? Techniques, exemples de cas de test

โšก Rรฉsumรฉ intelligent

Les tests de composants vรฉrifient chaque partie d'une application individuellement, sans l'intรฉgrer au reste, afin que les dรฉfauts soient dรฉtectรฉs et corrigรฉs au sein d'un seul module avant le dรฉbut de l'assemblage.

  • ๐Ÿงฉ Portรฉe: Un composant ร  la fois, isolรฉ des composants qui l'entourent.
  • ๐Ÿ‘ฅ Propriรฉtaire: Les testeurs l'exรฉcutent une fois que les dรฉveloppeurs ont terminรฉ les tests unitaires.
  • (I.e. CTIS : Le test de composants en mode rรฉduit isole complรจtement le composant.
  • ๐Ÿ”— CTIL : Les tests de composants ร  grande รฉchelle conservent les dรฉpendances, rรฉelles ou simulรฉes.
  • ๐Ÿงฑ Doubles: Un pilote appelle le composant ; un stub est appelรฉ par celui-ci.
  • โœ… Exit: Aucun dรฉfaut critique, รฉlevรฉ ou moyen ne reste ouvert dans le journal.

Techniques de test des composants et exemples de cas de test

Qu'est-ce que le test de composants ?

Test de composants Il s'agit d'un type de test logiciel oรน les tests sont effectuรฉs sur chaque composant individuellement, sans l'intรฉgrer aux autres. D'un point de vue architectural, on l'appelle รฉgalementโ€ฆ test de moduleet certaines rรฉfรฉrences l'appellent test de programme.

Tout logiciel est composรฉ de plusieurs composants, et les tests au niveau des composants consistent ร  tester ces composants individuellement. C'est l'une des mรฉthodes les plus frรฉquentes. test de la boรฎte noire types de tรขches effectuรฉes par l'รฉquipe d'assurance qualitรฉ.

Il convient de faire une remarque dรจs le dรฉbut concernant la dรฉnomination. Le glossaire ISTQB traite des tests de composants et tests unitaires On utilise souvent les termes ยซ tests unitaires ยป et ยซ tests de composants ยป pour dรฉsigner le mรชme niveau de test. Dans la pratique, de nombreuses รฉquipes de dรฉveloppement, et cet article le confirment, font la distinction : les dรฉveloppeurs exรฉcutent les tests unitaires sur leur propre code, puis les testeurs exรฉcutent les tests de composants sur la version livrรฉe. Le tableau comparatif ร  la fin de cet article illustre cette distinction.

Comme le montre le schรฉma ci-dessous, les tests de composants possรจdent leur propre stratรฉgie et leur propre plan de test, dans lesquels chaque partie du logiciel ou de l'application est considรฉrรฉe individuellement. Pour chaque composant, scรฉnario d'essai est dรฉfini, puis dรฉcomposรฉ en cas de test de haut niveau et enfin en cas de test dรฉtaillรฉs de bas niveau. cas de test avec prรฉrequis.

Hiรฉrarchie des tests de composants, de la stratรฉgie de test jusqu'aux cas de test de bas niveau

Lโ€™usage du terme ยซ tests de composants ยป varie selon les domaines et les organisations. Les trois raisons les plus courantes de cette diffรฉrence de perception sont prรฉsentรฉes ci-dessous.

  1. Le type de modรจle de cycle de vie de dรฉveloppement choisi
  2. La complexitรฉ du logiciel ou de l'application testรฉe
  3. Que les tests soient effectuรฉs avec ou sans isolation des autres composants de l'application

Le cycle de vie des tests logiciels gรฉnรจre de nombreux artefacts de test, c'est-ร -dire les documents crรฉรฉs et utilisรฉs lors des activitรฉs de test. Parmi eux figurent la politique et la stratรฉgie de test, qui dรฉfinissent les types de tests utilisรฉs et leur niveau de dรฉtail dans un projet donnรฉ.

Qui effectue les tests de composants

Les tests de composants sont effectuรฉs par les testeurs. Les tests unitaires sont rรฉalisรฉs par les dรฉveloppeurs, qui testent une fonction ou une procรฉdure individuelle. Une fois les tests unitaires terminรฉs, les tests de composants sont effectuรฉs et pris en charge par les testeurs.

Quand effectuer des tests de composants

Les tests de composants sont effectuรฉs peu aprรจs les tests unitaires rรฉalisรฉs par les dรฉveloppeurs et la mise ร  disposition de la version de dรฉveloppement ร  l'รฉquipe de test. Cette version est appelรฉe version de test unitaire (UT). Les principales fonctionnalitรฉs de chaque composant sont testรฉes lors de cette phase.

Critรจres d'entrรฉe pour les tests de composants

  • L'ensemble minimal de composants ร  inclure dans la version UT a รฉtรฉ dรฉveloppรฉ et testรฉ unitairement.

Critรจres de sortie pour les tests de composants

  • Chaque composant fonctionne comme prรฉvu.
  • Aucun dรฉfaut critique, de gravitรฉ รฉlevรฉe ou moyenne, ni aucun dรฉfaut prioritaire ne reste ouvert dans le journal des dรฉfauts.

Techniques de test des composants

En fonction du niveau de profondeur des tests, les tests de composants sont catรฉgorisรฉs de deux maniรจres.

  1. CTIS โ€” Tests de composants en petit
  2. CTIL โ€” Tests de composants ร  grande รฉchelle

CTIS โ€” Tests de composants en petit

Les tests de composants peuvent รชtre effectuรฉs avec ou sans isolation des autres composants de l'application testรฉe. Lorsqu'ils sont rรฉalisรฉs avec les autres composants isolรฉs, on parle de tests de composants ร  petite รฉchelle.

Exemple 1: Sur un site web comportant cinq pages diffรฉrentes, tester chaque page sรฉparรฉment et indรฉpendamment des autres composants constitue un test de composants ร  petite รฉchelle.

Exemple 2: La page d'accueil de guru99.com, prรฉsentรฉe ci-dessous, comporte de nombreuses sections, telles que Accueil, Tests, SAPWeb, ร€ apprendre absolument !, Big Data, Projets en direct et Blog.

Guru99 menus de navigation de la page d'accueil traitรฉs comme des composants testables distincts

Tout logiciel est composรฉ de nombreux composants, et chaque composant possรจde ses propres sous-composants. Tester sรฉparรฉment chaque module listรฉ dans l'exemple 2, sans tenir compte de son intรฉgration avec les autres composants, revient ร  effectuer des tests de composants ร  petite รฉchelle.

L'ouverture du menu dรฉroulant Tests rรฉvรจle les sous-composants du composant Tests : Test manuel, SOAPUI, QTP, JUnit, Selenium, Gestion des tests et Test mobile. Sur la capture d'รฉcran ci-dessous, ces sous-composants sont mis en รฉvidence en rouge.

Test du menu dรฉroulant avec ses sous-composants mis en รฉvidence en rouge

CTIL โ€” Tests de composants ร  grande รฉchelle

Les tests de composants effectuรฉs sans isolation des autres composants de l'application testรฉe sont appelรฉs tests de composants ร  grande รฉchelle.

Un exemple permet de mieux comprendre la diffรฉrence. Supposons qu'une application soit composรฉe de trois composants : le composant A, le composant B et le composant C.

Le dรฉveloppeur a crรฉรฉ le composant B et souhaite le faire tester. Pour tester complรจtement le composant B, certaines de ses fonctionnalitรฉs dรฉpendent du composant A et d'autres du composant C, comme l'illustre le schรฉma ci-dessous.

Le composant B a รฉtรฉ testรฉ avec un pilote remplaรงant le composant A et un stub remplaรงant le composant C.

Le flux de fonctionnalitรฉs est A โ†’ B โ†’ C, ce qui signifie que le composant B dรฉpend ร  la fois de A et de C. Dans ce flux, le stub est la fonction appelรฉe et le pilote est la fonction appelante.

Les composants A et C n'ont pas encore รฉtรฉ dรฉveloppรฉs. Pour tester complรจtement le composant B, A et C sont remplacรฉs, selon les besoins, par un pilote et un stub ; les deux รฉlรฉments manquants servent donc d'objets factices en attendant la crรฉation des composants dรฉfinitifs.

  • Bout: Un stub est appelรฉ par le composant testรฉ. Le composant C n'รฉtant pas prรชt, un stub le remplace et renvoie les rรฉponses attendues par B.
  • Driver: Un pilote appelle le composant testรฉ. Le composant A n'รฉtant pas prรชt, un autre pilote le remplace et invoque le composant B avec les entrรฉes requises.

Exemples de cas de test pour les tests de composants

Les deux pages web ci-dessous sont liรฉes fonctionnellement, ce qui en fait une paire de composants utiles ร  tester.

La page Web 1 est la page de connexion du site bancaire de dรฉmonstration.

Composant de page de connexion avec champs d'identifiant et de mot de passe utilisateur

Lorsque l'utilisateur saisit un identifiant et un mot de passe valides et clique sur le bouton ยซ Soumettre ยป, la page redirige vers la page d'accueil du site web de dรฉmonstration de la banque, illustrรฉe ci-aprรจs.

Composant de page d'accueil du gestionnaire avec liens de navigation et images

Ici, la page de connexion est un composant et la page d'accueil en est un autre. Tester la fonctionnalitรฉ de chaque page sรฉparรฉment constitue un test de composant.

Scรฉnarios de test des composants sur la page web 1 :

  • Saisissez un identifiant utilisateur invalide et vรฉrifiez qu'un avertissement convivial est affichรฉ ร  l'utilisateur final.
  • Saisissez un identifiant et un mot de passe invalides, cliquez sur Rรฉinitialiser, puis vรฉrifiez que les champs identifiant et mot de passe sont effacรฉs.
  • Saisissez un nom d'utilisateur et un mot de passe valides, puis cliquez sur le bouton ยซ Se connecter ยป.

Scรฉnarios de test des composants sur la page web 2 :

  • Vรฉrifiez que le message de bienvenue de la page de gestion s'affiche bien sur la page d'accueil.
  • Vรฉrifiez que tous les liens situรฉs ร  gauche de la page Web sont cliquables.
  • Vรฉrifiez que l'identifiant du responsable est affichรฉ au centre de la page d'accueil.
  • Vรฉrifiez la prรฉsence des trois images diffรฉrentes sur la page d'accueil, conformรฉment au schรฉma.

Tests unitaires et tests de composants

Le tableau ci-dessous rรฉsume les diffรฉrences entre les deux niveaux dans la pratique quotidienne.

Tests unitaires Test des composants
Tester les programmes et modules individuels pour dรฉmontrer que le programme s'exรฉcute conformรฉment aux spรฉcifications. Tester chaque objet ou partie du logiciel sรฉparรฉment, avec ou sans isolation des autres objets.
Validรฉ par rapport aux documents de conception. Validรฉ par rapport aux exigences de test et aux cas d'utilisation.
Rรฉalisรฉ par les dรฉveloppeurs. Rรฉalisรฉ par des testeurs.
Fait en premier. ร€ faire une fois les tests unitaires terminรฉs cรดtรฉ dรฉveloppeurs.
Les dรฉfauts sont gรฉnรฉralement rรฉparรฉs sur place et ne sont pas consignรฉs officiellement. Les dรฉfauts sont enregistrรฉs et tracguidรฉ tout au long du processus de gestion des dรฉfauts.

FAQ

Rรฉduire les risques, vรฉrifier le comportement fonctionnel et non fonctionnel du composant, renforcer la confiance dans sa qualitรฉ, dรฉtecter les dรฉfauts et empรชcher leur propagation.ping ร  des niveaux de test plus รฉlevรฉs.

Les modรจles lisent un composant contracLe systรจme identifie et signale les entrรฉes invalides, les valeurs limites et les chemins d'erreur qu'une vรฉrification manuelle a tendance ร  manquer. Un testeur confirme nรฉanmoins chaque rรฉsultat attendu avant l'exรฉcution.

Oui. Un stub renvoyant des rรฉponses prรฉdรฉfinies et un pilote fournissant des entrรฉes fixes constituent un code standardisรฉ qu'un assistant รฉcrit rapidement. Le choix des rรฉponses rรฉalistes reste une dรฉcision humaine.

Les tests de composants examinent un composant individuellement. test d'intรฉgration examine les interfaces et les interactions entre les composants, et s'exรฉcute aprรจs les tests des composants.

Code-cadres de niveau tels que JUnit, TestNG, NUnit et pytest, ainsi que des exรฉcuteurs de composants d'interface utilisateur tels que Cypress Tests de composants, Storybook et Jest. Tous s'intรจgrent dans un l'automatisation pipeline.

Crรฉation et maintenance des doublons. Un stub qui s'รฉloigne du composant rรฉel masque les dรฉfauts jusqu'ร  l'intรฉgration ; il est donc nรฉcessaire de rรฉexaminer chaque rรฉponse simulรฉe une fois la dรฉpendance rรฉelle dรฉployรฉe.

Cela inverse l'ordre. Les cas d'utilisation sont rรฉdigรฉs et automatisรฉs avant mรชme la crรฉation du composant, puis le code est ajoutรฉ progressivement jusqu'ร  ce que les tests soient validรฉs. Le composant est livrรฉ avec sa suite de tests dรฉjร  en place.

Les deux, selon qui les gรจre. Les testeurs travaillent en boรฎte noire par rapport aux spรฉcifications du composant, tandis que les dรฉveloppeurs ayant accรจs au code les appliquent. boรฎte blanche couverture ร  l'intรฉrieur du mรชme composant.

Rรฉsumez cet article avec :