• 6 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 21/02/2020

Qu'est-ce qu'un test fonctionnel ?

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Comme je vous le disais en introduction, vous n'avez pas besoin de connaître le code de l'application en détail pour tester fonctionnellement une application. C'est donc un test dit "boîte noire".

J'ai une question bête… C'est quoi un test fonctionnel ?

C'est une bonne question ! Un test fonctionnel est le test qui servira à tester automatiquement toutes les fonctionnalités de votre application. "Toutes", ça veut dire : les fonctionnalités qui étaient demandées dans le cahier des charges du projet (ou autres spécifications). Par exemple, vous pourrez avoir à tester qu'un membre peut bien s'inscrire, se connecter, se déconnecter…

Voici la liste des étapes qu'il faut respecter a minima pour effectuer un test fonctionnel :

  1. Créer un client HTTP.

  2. Effectuer une requête HTTP sur la page que nous devons tester.

  3. S'assurer que les éléments sur la page testée sont bien présents (écrire des assertions).

Il est également possible d'établir un scénario d'utilisation pour arriver à un résultat attendu… En fait, il faut le faire : vous allez chercher à imiter le comportement d'un utilisateur lorsque celui-ci teste une fonctionnalité. Dans tous les cas, les assertions qu'il faudra écrire seront toujours liées aux besoins exprimés avant le développement.

Intérêts des tests fonctionnels

L'écriture de tests fonctionnels amène logiquement à connaître le fonctionnement d'une application. Au delà de la connaissance du code, vous devrez connaître le contenu attendu de la réponse HTTP (ce qui sera affiché sur la page).

Allez, faisons une mise en situation.

À la découverte d'une application inconnue

Disons que vous arrivez sur un projet sur lequel on vous demande de travailler. L'une des premières étapes pour commencer à contribuer est de découvrir l'ensemble des pages web de ce site.

Dans le meilleur des cas, des tests fonctionnels ont été écrits, et cela vous permet d'avoir une documentation précise à disposition !

Dans le cas contraire, c'est une excellente raison d'établir une documentation.

Assurer sereinement les évolutions de l'application

Par ailleurs, au fur et à mesure que vous ferez évoluer l'application, les tests fonctionnels permettent de s'assurer que ces modifications n'impactent pas les autres fonctionnalités du site. Il n'y a rien de plus chronophage que d'avoir à afficher l'ensemble des pages d'un site web à la main pour s'assurer que ce que nous venons d'écrire n'a rien cassé !

Un test fonctionnel est un test automatisé. Vous allez tester une fonctionnalité, vous assurer à chaque lancement de l'ensemble des tests que celle-ci n'est pas altérée et qu'elle correspond bien aux besoins exprimés.

Principes des tests fonctionnels

Dans ce cours, nous allons écrire nos tests fonctionnels dans le cadre d'une application Symfony. Je vais vous fournir une application déjà développée, ne vous inquiétez pas. Je vais vous expliquer comment la tester fonctionnellement.

Les étapes pour écrire un test fonctionnel simple sont les suivantes :

  1. Créer un client HTTP.

  2. Émettre une requête HTTP à l'aide du client HTTP sur une page que vous souhaitez tester.

  3. Récupérer la réponse HTTP.

  4. Tester si le contenu attendu est bien présent.

Comment les mettre en place

De la même manière que pour les tests unitaires, vous pouvez implémenter les tests fonctionnels à différents moments du projet :

  • avant d'implémenter une nouvelle fonctionnalité (TDD),

  • juste après avoir implémenté une nouvelle fonctionnalité,

  • au moment où vous découvrez une anomalie,

  • au moment où vous découvrez une fonctionnalité que vous ne connaissiez pas jusque là.

 

Rendez-vous au prochain chapitre pour implémenter vos premiers tests fonctionnels !

Exemple de certificat de réussite
Exemple de certificat de réussite