Pourquoi faut il bien tester l’authentification ?
Aujourd’hui, la majorité des applications ont un module d’authentification. Il est donc naturel en tant que QA de savoir comment bien tester ce module.
Il faut bien tester ce module au niveau:
- DESIGN
C’est la première page que votre client regarde, la première impression est donc très importante
- SECURITE
Au delà de l’impression (Design et graphique), c’est également la première porte d’entrée pour les personnes, cela implique également ceux avec de mauvaise intention.
- PERFORMANCE
Votre login doit être optimisé pour permettre une connexion rapide à votre site ou application
- CHARGE
Etant donné que vous allez avoir plusieurs clients, il est important de maitriser jusqu’à combien d’utilisateur peuvent se connecter en même temps
- FONCTIONNEL
Il existe aujourd’hui plusieurs possibilités de se connecter à la même application. Il faut s’assurer que chacune d’elles fonctionne.
- AUTRES
Evidemment, au delà de sa fonction principale qui est de permettre d’avoir accès à votre site ou application, il y a d’autres fonctionnalités qu’il faut couvrir notamment les mots de passes oubliés.
Voici quelques scénarios non-exhaustifs à exploiter
Tests fonctionnels
Positifs
- Un utilisateur avec un bon identifiant et un bon mot de passe devrait pouvoir se connecter à l’application
- Un utilisateur avec les bons droits d’accès devrait pouvoir accéder uniquement aux ressources auxquels il a des droits
- Un utilisateur enregistré devrait pouvoir se loguer avec son empreinte digital enregistré
- Un utilisateur enregistré devrait pouvoir se loguer avec son empreinte facial enregistré
- Un utilisateur enregistré devrait pouvoir se loguer avec son compte de réseau social (Google, Facebook, Linkedin, France connect, etc…) enregistré
- Une connexion réussie devrait rediriger vers la page de principale de l’application
- Une connexion réussie devrait afficher le profil de l’utilisateur connecté
- Le bouton de déconnexion devrait rediriger vers la page de connexion/d’accueil.
Négatifs
- Un utilisateur avec un identifiant VIDE et/ou un mot de passe VIDE NE devrait PAS pouvoir se connecter
- Un utilisateur avec un MAUVAIS identifiant NE devrait PAS pouvoir se connecter
- Un utilisateur avec un BON identifiant et un MAUVAIS mot de passe NE devrait PAS pouvoir se connecter
- Un utilisateur avec les MAUVAIS droits d’accès NE devrait PAS pouvoir accéder aux ressources auxquels il n’a pas des droits
- Un utilisateur devrait voir un message d’erreurs pour chaque blocage:
- Champs obligatoires
- Mauvais identifiant ou mot de passe
- Ressources non autorisés, demandez les droits
Tests UX (User eXperience)
Vérifier les composant graphique
Chaque composant graphique devrait être à sa place selon les spécifications.
-
- Le champ Username
- Le champ Password
- Le Bouton de connexion
- Le lien « mot de passe oublié »
- Le bouton de Signup (inscription)
- Les sections des autres méthodes de connexion (réseaux sociaux, faciale, empreinte, etc…)
- Le bouton « Se souvenir de moi »
- Les images
- Le favicon
Vérifier le wording
-
- Vérifier les fautes d’orthographe
- Vérifier les bonnes traductions
Vérifier l’accessibilité du contenu web (WCAG en anglais)
-
- Vérifier l’application de la charte graphique
- Couleur
- Typographie
- Vérifier l’application de la charte graphique
Vérifier le contenu
Il faut vérifier le contenu de chaque message et sa disposition dans la page :
-
- La disposition des éléments doit être intuitive (l’utilisateur doit facilement trouver comment se connecter)
- Les messages doivent être suffisamment informatifs et compréhensibles
- La page devrait être structurée (ex: champ username avant le password)
- L’intégration devrait être liée logiquement (ex: après la connexion, on doit arriver sur la page d’accueil et non pas la page de contact)
TestER LA compatibilité
-
- La page d’authentification (au minimum) devrait être compatible avec plusieurs navigateurs
TestER LA portabilité
Le module d’authentification devrait être utilisable (responsive) sur:
-
- Un ordinateur
- Un smartphone
- Une tablette
- Une montre
TestER LA navigation
- Vérifier que la touche Enter/Tab fonctionne à la place du bouton de connexion.
- Vérifier que les aller-retour du navigateur sur la page fonctionnent sans perte de connexion
- Vérifier que l’utilisateur devrait toujours être connecté après une série d’actions telles que la fermeture du navigateur et la réouverture de l’application.
Tests UI (User Interface)
Tester les composants individuellement
Pour chaque composant de la page de login, il faudrait tester les actions possibles et les évènements associés:
-
- Boutons: le bouton « se connecter » est il bien cliquable?
- Champs: les contrôles de vérifications pour chaque champ sont elles appliquées?
- Select: la sélection de la méthode d’authentification fonctionne t elle?
- Checkbox: le checkbox « se souvenir de moi » fonctionne t il?
- Liens de redirections: des liens morts existent ils sur la page de login?
Tester les combinaison des champs
Après avoir testé individuellement les éléments, il faut essayer les combinaisons:
-
- Mettre un Username mais pas de Password et vérifier les messages d’erreurs quand on valide, essayer l’inverse, etc… (voir la section des tests négatifs)
- Vérifier que les espaces ne doivent pas être autorisés dans un mot de passe.
Vérifier tous les liens
Chaque lien de la page de login devrait rediriger vers les bonnes cibles
-
- Mot de passe oublié
- Bouton Signup
- Se connecter avec un compte réseau social
- Contact
Vérifier la validité des caractères dans les champs
-
- Champ mail doit contenir un seul « @ »
- Champ mail doit contenir un point « . »
- Champ Password doit être crypter et caché
Vérifier les messages de validation
Par exemple, en cas de dépassement de la limite de caractères des champs Nom d’utilisateur et Mot de passe.
Tests d'intégrations
Intégration direct avec les ressources
-
-
- Redirection vers la page principale après une authentification réussie
- Redirection vers la page de Login après une Déconnexion
-
Intégration avec les application tier
-
-
- FranceConnect
- Dashlane
- 1password
- SMS
- Application de double authentification
- Empreinte digital
- Empreinte facial
- Empreinte vocal
-
Tests de Sécurité
TestER LES sessions
-
- Déconnexion automatique de l’utilisateur après un certain temps (connu à l’avance)
Tester le nombre de tentatives de connexions
-
- Blocage du compte après un certain nombre d’essai (nombre connu)
- Tentative suspendu pour un délai (définit) après un certain nombre d’essai (nombre connu)
- Invitation au captcha si trop de tentatives
Tester le contrôle de la validité d’un mot de passe:
-
- Longueur
- Test des valeurs limites: court, long, vide
- Caractère spéciaux (espace, $, …)
- Chiffres
- Lettre
- Affichage d’un message d’aide
- Longueur
Controler les tentatives d’accès aux ressources
- Un utilisateur avec une session BLOQUE NE devrait PAS pouvoir se connecter avec un BON identifiant et un BON login
- Un utilisateur qui n’a pas validé son inscription (ou ONBOARDING) NE devrait PAS pouvoir se connecter avec un BON identifiant et un BON login
- Vérifier que l’utilisateur ne doit pas être autorisé à demander fréquemment un mot de passe oublié.
- L’accès à une ressource de l’application via URL direct sans avoir passé l’authentification devrait être bloqué
- Vérifier que la page de connexion est protégé à l’injection SQL
- Vérifier si la page de connexion présente une vulnérabilité au Cross-site scripting (XSS). La vulnérabilité XSS peut être utilisée par les pirates pour contourner les contrôles d’accès.
- Vérifier la fonctionnalité du CAPTCHA:
- Il y a une validation côté client lorsque l’utilisateur ne saisit pas le CAPTCHA.
- Le lien de rafraîchissement du CAPTCHA génère le nouveau CAPTCHA.
- Vérifier que le certificat SSL est implémenté
Vérifier les requetes
- Vérifier les erreurs dans la console du navigateur pendant les tests (Devtools)
- Erreurs de requêtes
- Les statuts HTTP (404, 500, 401)
Tester la double authentification
-
- Par sms
- Par un logiciel tiers
- Par email
Tester les possibilités d’authentification
-
- Empreinte digitale
- Reconnaissance vocale ou faciale
- Réseaux sociaux
Tester les options d’authentifications
- Case à cocher « Se souvenir de moi » et vérifier que ca marche
- Valeur par défaut: Décoché
- Case à cocher « Garder ma connexion » et vérifier que ca marche
- Valeur par défaut: Décoché
Tester un nouveau mot de passe
- Vérifiez que l’utilisateur peut se connecter avec le nouveau mot de passe après l’avoir modifié.
- Vérifiez que l’utilisateur ne doit pas pouvoir se connecter avec l’ancien mot de passe après avoir changé le mot de passe.
- Vérifiez que le mot de passe peut être copié-collé.
- Le système ne doit pas permettre aux utilisateurs de copier-coller le mot de passe.
- Vérifiez que les caractères cryptés dans le champ « Mot de passe » ne doivent pas pouvoir être déchiffrés s’ils sont copiés.
Tester les COOKIES
-
- Vérifiez qu’en SUPPRIMANT les COOKIES, l’utilisateur ne se connecte pas automatiquement
- Vérifiez la fonctionnalité de connexion lorsque les cookies du navigateur sont désactivés.
- Vérifier si le navigateur stocke les mots de passe dans le cookie au cours d’une SESSION
Tester le LOCALSTORAGE:
- Vérifier si le navigateur stocke les mots de passe dans le localstorage quand « se souvenir de moi‘ option est cochée
Tests de charge
- Vérifier combien de comptes d’utilisateurs en même temps peuvent se connecter sur l’application
- Mobile
- Web
- Tablette
- Montre
Tests de performance
- Vérifier en combien de temps après la connexion se charge la page principale
Conclusion
En regardant la liste des tests, on peut avoir l’impression que des scénarios se répètent, cependant les résultats attendus sont différents. Donc soyez prudent!
Il ne faut pas se contenter de pouvoir juste se connecter au risque d’avoir de lourdes conséquences (sanctions juridiques et pénales) :
- Vol de données
- Blocage du site
- Suppression de données
- Etc…
Il est donc évident qu’ il y ait un minimum de tests à couvrir sur votre module d’authentification.
En effectuant un test sur une page de login, il faut se rappeler qu’il y a une forte dépendance avec d’autres modules notamment :
-
- La page d’inscription d’un utilisateur (SignUp)
- L’onboarding s’il existe (parcours de validation)
- La fonction de déconnexion d’un utilisateur
- Mot de passe oublié
S’il y a des tests à automatiser pour s’assurer d’un minimum de valeur de votre site web, commencez par la page de login en couvrant un maximum de ces scénarios.
Que pensez-vous de cet article ?
Si vous avez aimé cet article, merci de le commenter et de le partager !
À bientôt 😊
Vous pourriez également aimer...
Comment améliorer sa valeur sur le marche en tant que qa?
Je vous laisse découvrir cet épidode du GASQ Insights, rendez-vous mensuel du test logiciel organisé par le GASQ, où...
Modèle de projet Cypress avec integration continue Circle CI
A quoi peut servir un modèle de projet ? Un modèle de projet sert de base de travail pour chaque nouveau projet. En...
Paris Test Conf 2021: Le « Clean Code » appliqué aux tests automatisés de la QA
Paris Test Conf est un évenement dédiée aux tests logiciels organisé par des passionné(é)s de tests. Lors de cet...
0 commentaires