Aller au contenu principal

Tests automatisés

Imgur

Votre objectif

Tester votre application afin d'en assurer la qualité et le bon fonctionnement.

Détails de la tâche

Valant pour 20% de la note finale, vous aurez à créer des tests pour votre application.

Vous aurez aussi à remettre un plan de test à la semaine 3, valant pour 5% de la note finale.

Vous devez développer des tests pour tester le bon fonctionnement de votre application, ainsi que des tests pour vérifier les correctifs apportés suite à la revue de code de l'autre équipe.

attention

Bien que vous deviez créer autant des tests unitaires que d'intégration, il est de votre responsabilité de choisir le bon type de test en fonction de ce que vous avez à tester:

  • Test unitaire
  • Test d'intégration
  • Test d'intégration E2E (ex.: Playwright)

Il est aussi de votre responsabilité de choisir combien de tests unitaires vs. intégration.

Type de testNombre de tests / coéquipierTests totaux pour une équipe de 3Tests totaux pour une équipe de 4
Tests de fonctionnalités, composants ou fonctions82432
Tests des correctifs en lien avec la revue de code268
TOTAL103040

Création d'un plan de tests

Avant de vous lancer à l'aveuglette dans la création de tests, prenez le temps d'évaluer ce que vous testerez (fonctions, fonctionnalités, cas de figures/d'utilisation, quels aspects du backend, quels aspects du frontend, etc.) et de vous répartir le travail.

Consignez le tout dans un fichier partagé (Confluence, Google Sheets, Airtable, Excel, etc.). De plus, maintenez-le à jour lorsqu'un test est complété ou que vous apportez une modification à ce que vous testez.

Cela constituera votre plan de tests: il résumera les fonctionnalités à tester, les différents scénarios, les types de test et ce dernier sera utilisé lors de la correction.

La première version de votre plan de test sera à remettre à la semaine 3 et devra comprendre, pour chaque fonctionnalité à tester:

  • Fonction ou fonctionnalité à tester
  • Scénario(s) de test
  • Priorité du scénario
  • Type de test du scénario: unitaire ou intégration
  • Identification de s'il s'agit du frontend ou du backend
  • Responsable (coéquipier) du test
  • Statut (pour vous aider à suivre votre progression)

Voici un exemple de plan de tests. Vous pouvez aussi voir plus d'informations sur les tests dans la page dédiée à ce sujet: Tests et plan de tests.

important

Un test, bien qu'au singulier, teste habituellement plusieurs scénarios. Par exemple, pour un test d'intégration permettant l'inscription d'un utilisateur:

  • Le test vérifiera évidemment qu'il est possible d'inscrire un utilisateur avec les données attendues (courriel, mot de passe, etc.)
  • Le test pourrait ensuite vérifier qu'inscrire un utilisateur avec un courriel déjà pris empêche l'inscription et génère une erreur
  • Il pourrait aussi tester qu'une tentative d'inscription avec des données inadéquates (manque un champ, longueur maximale ou minimale d'un champ non respectée, etc.) ne permet pas l'inscription et que les validations échouent.

Votre plan de tests aura plus de lignes que le nombre de tests demandés! Pour 1 test de fonctionnalité (ex.: connexion), vous aurez quelques scénarios

FonctionnalitéScénario de testTypeFrontend/BackendPrioritéResponsableStatut
Authentification
ConnexionIdentifiants valides → redirection dashboardIntégrationBackendHauteClaire ClicheComplété
ConnexionMot de passe invalide → message d'erreurIntégrationBackendHauteClaire ClicheComplété
ConnexionCompte inexistant → message d'erreurIntégrationBackendHauteBobby BonziniEn cours
ConnexionTentatives multiples → verrouillage compteIntégrationBackendHauteBobby BonziniÀ faire
InscriptionDonnées valides → création compteIntégrationBackendHauteClaire ClicheComplété
InscriptionEmail déjà utilisé → erreurIntégrationBackendHauteBobby BonziniComplété
InscriptionMot de passe trop faible → erreurIntégrationBackendMoyenneBobby BonziniComplété
Catalogue
RechercheTerme existant → affiche résultatsIntégrationBackendMoyenneLucien LupienComplété
RechercheAucun résultat → message appropriéIntégrationBackendBasseClaire ClicheÀ faire
FiltresFiltre par prix → résultats correctsIntégrationBackendMoyenneLucien LupienEn cours
Panier
Ajout produitProduit valide → ajouté au panierIntégrationBackendHauteBobby BonziniComplété
Ajout produitQuantité > stock → erreurIntégrationBackendHauteBobby BonziniComplété
Modification quantitéQuantité valide → total recalculéIntégrationBackendHauteLucien LupienComplété
Modification quantitéQuantité = 0 → produit retiréIntégrationBackendMoyenneLucien LupienÀ faire
Commande
Passage commandeParcours complet → commande crééeE2EFrontendHauteClaire ClicheEn cours
Calcul totalPrix, taxes, rabais → total correctUnitaireBackendHauteBobby BonziniComplété
Validation adresseAdresse incomplète → erreurUnitaireBackendMoyenneLucien LupienÀ faire
Validations
Formatage prixAffiche le prix en devise localeUnitaireFrontendBasseLucien LupienComplété
Validation courrielFormat invalide → retourne erreurUnitaireFrontendMoyenneBobby BonziniComplété
Validation téléphoneFormat invalide → retourne erreurUnitaireFrontendMoyenneBobby BonziniÀ faire
Parcours utilisateur
Achat completRecherche → panier → paiement → confirmationE2EFrontendHauteClaire ClicheÀ faire

Tests des correctifs en lien avec la revue de code

De la semaine 2 à 4, une revue de code sera faite par une autre équipe.

  • Pour chaque bug trouvé dans le code, vous devez corriger le code.
  • Vous devez effectuer le ou les tests nécessaires pour vérifier que le bug est corrigé.
  • Vous devez faire minimum 2 tests par coéquipier (pour des bugs différents évidemment).
  • Le test doit démontrer que le problème est corrigé et que la fonctionnalité a le comportement attendu.
  • Vous devez indiquer le # de l’issue dans le code du test.
  • Le merge request doit faire référence à l'issue et le code du test doit indiquer le # de l’issue.

Les tests de correctifs ne comptent pas comme tests unitaires ou tests d'intégration.

Précisions sur les tests

Vous serez évalués sur la qualité, la couverture, la pertinence et le respect de la quantité requise de tests.

Les tests doivent être...

  • pertinents et vérifier quelque chose (bien essayé avec Assert.True(true)!)
  • exécutés dans n'importe quel ordre
  • descriptifs et indiquer le problème testé
  • documentés (nom et/ou commentaire)
  • non triviaux

De plus, ils doivent...

  • couvrir plusieurs composants/fonctionnalités
  • couvrir autant le back-end que le front-end
  • couvrir les fonctionnalités clés de l'application

Le but n’est pas d’avoir une couverture complète, mais de démontrer que vous comprenez les différents types de tests et êtes capable de tester plusieurs scénarios.

attention

Vous devez inclure dans votre readme comment exécuter les tests. Ce guide doit indiquer comment installer, si nécessaire, la bibliothèque de tests, et comment exécuter les tests.

Modalités de remise

  • Remis via Gitlab et Confluence
  • Votre fichier de plan de tests et de récapitulatif dans une section Remise Finale de votre Confluence
  • Une section Tests ou équivalent ajoutée au readme pour les précisions quant à l'exécution des tests
  • À remettre avant le 3 mars 2026 23:59

Grille d'évaluation

Plan de test (semaine 3)

CritèrePoints
Identification et pertinence des tests à effectuer60%
Distribution backend/frontend et types de test30%
Partage des responsabilités10%

Tests (semaine 6)

CritèrePoints
Mise à jour du plan de test10%
Couverture, variété et pertinence des tests20%
Qualité des tests50%
Tests des correctifs en lien avec la revue de code20%