Le guide des heuristiques pour le test exploratoire
Je vous propose une série d’articles sur le test exploratoire.
Cette série d’articles explore en 5 parties les thèmes suivant :
- Explication du test exploratoire,
- Un guide des heuristiques pour mieux maitriser le test exploratoire (cet article),
- Comment utiliser le test exploratoire pour définir son plan de test pour un produit sans spécification ?
- Comment effecteur du test exploratoire sur des APIs ?
- Comment automatiser nos tests exploratoires ?
La charte de test, un outil indispensable
Description
La charte de test, introduite par Maaret Pyhäjärvi, propose une approche structurée mais flexible pour organiser les tests exploratoires. Elle repose sur la création d’une charte qui guide une session de test tout en laissant de la place à la découverte et à l’adaptation en temps réel.
La charte permet de répondre aux questions essentielles : quoi tester, comment le tester, et pourquoi le tester, tout en maintenant une focalisation sur des objectifs précis. Cela offre un cadre clair pour documenter les résultats, tout en favorisant la créativité du testeur.
Structure d’une charte de test
La charte de test se compose généralement des éléments suivants :
- Objectif (mission de test) :
- Quelle partie du produit souhaitez-vous explorer ?
- Quel est le résultat attendu ?
- Exemple : "Valider que la gestion des utilisateurs respecte les règles de confidentialité lorsqu’un administrateur ajoute de nouveaux membres."
- Focalisation :
- Quelles fonctionnalités, types de données ou scénarios spécifiques souhaitez-vous tester ?
- Exemple : "Explorer les scénarios où l’utilisateur n’a pas tous les droits nécessaires."
- Approche (Idées et outils) :
- Quelles techniques de test ou outils allez-vous utiliser ?
- Exemple : "Utiliser des comptes avec différents niveaux de privilèges pour tester les droits d’accès."
- Contraintes ou limites :
- Y a-t-il des restrictions pour cette session ?
- Exemple : "Tester uniquement avec des navigateurs supportés officiellement (Chrome et Firefox)."
- Critères de réussite :
- Comment saurez-vous que votre test a atteint son objectif ?
- Exemple : "Confirmer que les utilisateurs non autorisés ne peuvent ni lire, ni modifier des données sensibles."
- Données d’entrée :
- Quelles données ou configurations initiales seront nécessaires pour ce test ?
- Exemple : "Créer 3 types de comptes : administrateur, utilisateur standard et invité."
- Évaluation des résultats :
- Comment interpréterez-vous les observations et résultats des tests ?
- Exemple : "Noter les anomalies dans les permissions accordées aux différents comptes."
Afin de mieux structurer votre charte et vos sessions de tests exploratoires, il est possible de s’appuyer sur des heuristiques de tests.
Qu'est-ce qu'une heuristique et pourquoi est-elle essentielle en test exploratoire ?
En test exploratoire, une heuristique est une règle empirique ou une méthode pratique qui aide les testeurs à structurer leur approche et à découvrir des problèmes potentiels dans un logiciel. Contrairement à des scénarios prédéfinis, les heuristiques permettent une exploration flexible tout en restant guidé par des concepts clés.
Pourquoi utiliser des heuristiques ?
- Structure et inspiration : Les heuristiques donnent une direction dans des situations complexes ou ambiguës.
- Optimisation du temps : Elles permettent de maximiser la couverture des tests avec des ressources limitées.
- Identification des risques : Les heuristiques aident à cibler rapidement les zones les plus susceptibles de contenir des défauts.
Utiliser des heuristiques dans le test exploratoire, c'est combiner la créativité et l'efficacité pour délivrer un logiciel de meilleure qualité. Voici les heuristiques les plus couramment utilisées, leurs auteurs et des exemples concrets pour chaque cas.
1. SFDPOT - James Bach et Michael Bolton
Description
SFDPOT est une heuristique clé du Rapid Software Testing. Elle propose d'explorer le produit à travers six axes majeurs :
- Structure : La composition interne du produit (UI, base de données, API).
- Fonctions : Les actions que le produit peut exécuter.
- Données : Les types et volumes de données traitées.
- Plateformes : Les environnements supportés (OS, navigateurs, appareils).
- Opérations : Les interactions des utilisateurs.
- Temps : Les aspects temporels, comme les performances ou les délais.
Exemple concret
Pour une application de gestion de calendriers :
- Structure : Testez les vues (mois, semaine, jour) et la synchronisation avec une base de données cloud.
- Fonctions : Créez, modifiez et supprimez des événements.
- Données : Essayez avec des événements contenant des caractères non latins ou des émoticônes.
- Plateformes : Testez sur Android, iOS et un navigateur web.
- Opérations : Simulez un utilisateur ajoutant rapidement plusieurs événements successifs.
- Temps : Testez les performances lors de l'importation d'un calendrier contenant 10 000 événements.
2. FEW HICCUPPS - James Bach
Description
FEW HICCUPPS est une heuristique qui détecte des problèmes courants dans les logiciels :
- Functionality : Les fonctions du produit.
- Errors : Les erreurs et crashs possibles.
- Workflow : La fluidité des processus.
- Heuristic : Respect des règles empiriques.
- Images : Qualité visuelle.
- Compatibility : Environnements variés.
- Configuration : Paramètres utilisateurs.
- Usability : Intuitivité.
- Performance : Réactivité et rapidité.
- Platforms : Fonctionnement sur différentes plateformes.
- Security : Protection des données.
Exemple concret
Pour un site e-commerce :
- Functionality : Les articles peuvent-ils être ajoutés au panier ?
- Errors : Les pages d’erreur contiennent-elles des messages clairs ?
- Workflow : La navigation entre le catalogue et le paiement est-elle fluide ?
- Usability : L’interface mobile est-elle ergonomique ?
- Performance : Le site charge-t-il rapidement pendant les soldes ?
- Security : Les transactions par carte bancaire sont-elles chiffrées ?
3. FCC CUTS VIDS - Michael Bolton
Description
Cette heuristique guide les types de tests exploratoires à effectuer :
- Functions : Fonctions principales.
- Compatibility : Environnements divers.
- Configuration : Paramètres.
- Usability : Expérience utilisateur.
- Time : Performances.
- Security : Protection des données.
- Values : Données par défaut.
- Installation : Processus d'installation.
- Data : Manipulation des données.
- Structure : Composition interne.
Exemple concret
Pour une application de visioconférence :
- Functions : Les réunions peuvent-elles être planifiées et lancées ?
- Compatibility : L'application fonctionne-t-elle sur plusieurs OS ?
- Usability : Les icônes sont-elles intuitives ?
- Security : Les appels sont-ils chiffrés de bout en bout ?
4. Tour-based Testing - James A. Whittaker
Description
Le Tour-based Testing, introduit par James A. Whittaker dans le livre Exploratory Software Testing, propose de structurer les tests exploratoires en tours thématiques. Chaque tour représente une manière spécifique d'explorer le produit en se concentrant sur un objectif précis ou une perspective particulière. Cette méthode s'inspire de l'idée que les testeurs jouent des rôles variés, comme des explorateurs dans un environnement inconnu.
Les différents types de tours
- Tour de la carte :
- Objectif : Obtenir une vue d'ensemble des fonctionnalités disponibles.
- Approche : Parcourir l’application comme si vous exploriez une carte inconnue.
- Exemple concret : Pour un outil de gestion de projet, naviguez entre les différents onglets (tableaux Kanban, rapports, calendrier) pour comprendre les connexions entre eux.
- Tour du guide :
- Objectif : Tester l’accompagnement utilisateur (tutoriels, guides, messages d’aide).
- Approche : Simuler un nouvel utilisateur cherchant à comprendre le fonctionnement du produit.
- Exemple concret : Sur une plateforme d'apprentissage en ligne, suivez les tutoriels pour un cours spécifique et évaluez s’ils couvrent toutes les étapes nécessaires.
- Tour des ruines :
- Objectif : Identifier des zones du logiciel négligées, inachevées ou obsolètes.
- Approche : Explorez les fonctionnalités moins utilisées, les anciennes versions ou des modules rarement testés.
- Exemple concret : Dans un système de gestion de stocks, testez une ancienne fonctionnalité d'exportation de données Excel et vérifiez si elle fonctionne encore avec des volumes de données importants.
- Tour des backdoors :
- Objectif : Identifier les failles de sécurité ou les contournements possibles des restrictions.
- Approche : Cherchez des moyens non documentés ou inattendus d’accéder à des données ou des fonctionnalités sensibles.
- Exemple concret : Dans une application de messagerie, essayez d'envoyer un message sans authentification en manipulant directement les requêtes API.
- Tour de la salle de torture :
- Objectif : Pousser l’application à ses limites.
- Approche : Testez les cas extrêmes, comme les tailles de données inhabituelles, les utilisateurs multiples ou les interruptions fréquentes.
- Exemple concret : Dans une application de streaming, ouvrez plusieurs vidéos en parallèle sur différents appareils et évaluez les impacts sur la performance et la synchronisation.
- Tour de la rue commerçante :
- Objectif : Se concentrer sur l’expérience utilisateur et la convivialité.
- Approche : Explorez le produit comme un consommateur cherchant des informations ou des fonctionnalités attrayantes.
- Exemple concret : Sur un site e-commerce, simulez un utilisateur cherchant un produit spécifique, évaluant la clarté de la recherche et du processus de paiement.
Ces tours offrent une manière structurée de conduire des tests exploratoires tout en s’adaptant aux besoins spécifiques d’un projet ou d’un produit.
5. Personas et Scénarios d’Utilisation - Maaret Pyhäjärvi
Description
Maaret Pyhäjärvi propose d’utiliser les personas pour enrichir les tests exploratoires. Les personas sont des représentations fictives de profils utilisateurs, conçues pour refléter des besoins, comportements et objectifs réels. Ces personnages aident les testeurs à se mettre à la place de différents types d’utilisateurs et à anticiper leurs expériences uniques.
Élaboration des personas
Pour créer un persona, suivez ces étapes :
- Identifiez les types d’utilisateurs principaux : Collectez des données sur les groupes cibles.
- Définissez les caractéristiques du persona : Créez un profil avec un nom, une photo fictive et des attributs détaillés (niveau d’expérience, objectifs, frustrations).
- Associez un scénario d’utilisation : Imaginez une situation spécifique dans laquelle le persona interagit avec le produit.
Exemples concrets
Prenons une application de gestion de tâches :
- Persona 1 : Marie, débutante en gestion de projet
- Profil : Marie est une freelance qui débute dans la gestion de projets. Elle recherche un outil simple avec une prise en main rapide.
- Scénario : Marie souhaite organiser un projet en ajoutant des tâches et des échéances.
- Test exploratoire : Simulez une première utilisation en suivant le tutoriel. Évaluez si les fonctionnalités essentielles sont accessibles en quelques clics.
- Persona 2 : Paul, chef de projet expérimenté
- Profil : Paul gère une équipe de 20 personnes et utilise des outils complexes pour suivre les dépendances entre tâches.
- Scénario : Paul crée un projet complexe avec plusieurs sous-tâches et dépendances.
- Test exploratoire : Testez les limites de l’outil pour gérer un projet avec des dizaines de tâches imbriquées et évaluez la clarté des relations.
- Persona 3 : Éric, utilisateur occasionnel
- Profil : Éric utilise l’outil une fois par mois pour des projets personnels. Il oublie souvent comment naviguer dans l’application.
- Scénario : Éric revient après un mois pour mettre à jour un projet existant.
- Test exploratoire : Testez la facilité de navigation pour un utilisateur peu fréquent et la clarté des labels et icônes.
Scénarios avancés
Pyhäjärvi suggère d’ajouter des contraintes ou des événements imprévus pour enrichir les tests :
- Marie : Ajoutez une tâche en mode hors connexion et testez la synchronisation au retour en ligne.
- Paul : Modifiez une dépendance critique en pleine réunion, sous pression, et vérifiez la réactivité de l’outil.
- Éric : Explorez les messages d’erreur si Éric tente de supprimer par erreur une tâche importante.
Si vous voulez découvrir d’autres heuristiques de test vous pouvez aller sur ce site.
A retenir
Les heuristiques sont des outils puissants pour structurer et enrichir vos tests exploratoires. Chaque heuristique présente une approche unique et complémentaire, permettant d’étudier différents aspects d’un produit. Choisissez celles qui conviennent à votre contexte et combinez-les pour une couverture optimale.