Qu'est-ce qu'un plan de test ?
Planification de vos tests de sécurité
La mise en place d’une planification minutieuse pour vos tests offre la possibilité de déployer une démarche à la fois méthodique et structurée, englobant tous les aspects du processus de test. Cette organisation assure une réalisation efficiente des tests, jouant le rôle principal dans l’amélioration de la qualité et dans le succès global du produit logiciel.
Un plan de test est un document détaillé qui sert de guide pour l’ensemble du processus de test d’une application. Son objectif principal est de s’assurer que tous les aspects de l’application sont testés de manière adéquate, conformément aux exigences et aux standards de qualité définis, afin d’identifier et de corriger les défauts avant la mise en production du logiciel. Ce document aide à structurer et à organiser le processus de test, facilitant ainsi la communication entre les membres de l’équipe de test et les autres parties prenantes du projet, et contribuant à l’efficacité et à l’efficience des efforts de test.
Voici un exemple des étapes à suivre pour élaborer un plan de test.
Analysez et évaluez les exigences de test
1. Compréhension des exigences
La première étape est de comprendre les exigences qui vous sont fournies par le product owner ou toute autre personne en charge de leur rédaction.
Examen détaillé des exigences : cela consiste à étudier minutieusement les spécifications du système ou de l’application. Cette étude inclut les exigences fonctionnelles (ce que le système doit faire), les exigences non fonctionnelles (comme la performance, l’usabilité, la sécurité), et les contraintes techniques ou d’affaires.
Identification des cas de test : sur la base de ces exigences, les cas de tests potentiels sont identifiés. Chaque exigence doit être couverte par un ou plusieurs cas de test pour garantir que le système fonctionne comme prévu.
Clarification et validation : si des exigences ne sont pas claires ou semblent contradictoires, il est nécessaire de discuter avec les parties prenantes (par exemple, les développeurs, les chefs de produit, le product owner) pour obtenir des clarifications. Cela garantit que les tests reflètent fidèlement les intentions des concepteurs du système.
Documentation : les exigences et les cas de tests correspondants sont soigneusement documentés. Cette documentation sert de référence tout au long du processus de test.
Prenons par exemple notre site : un blog avec des articles. Le product owner vous fournit la liste d’exigences :
-
Exigences fonctionnelles :
-
Les utilisateurs doivent pouvoir se connecter afin d’écrire des commentaires.
-
Les utilisateurs, même non connectés, peuvent lire les articles et les commentaires associés.
-
Les administrateurs peuvent voir les utilisateurs.
-
Exigences non fonctionnelles :
-
Le site doit être responsive pour offrir une expérience utilisateur sur tous les appareils, web ou mobile.
-
Respecter les données des utilisateurs, les sécuriser et les rendre confidentielles.
-
Les pages doivent se charger en moins d’une seconde
Vous pouvez voir qu’il n’y a pas de contrainte technique. Vous devez vous assurer que...
Établissez la stratégie de test
L’ISTQB (International Software Testing Qualifications Board) est une organisation internationalement reconnue spécialisée dans la certification des compétences en test logiciel. En plus de fournir des certifications, l’ISTQB contribue également à l’avancement des pratiques de tests logiciels en publiant régulièrement des syllabus, des lignes directrices et des articles de recherche.
La définition d’une stratégie de test, selon l’ISTQB, est : « Documentation qui exprime les exigences génériques pour tester dans le cadre d’un ou de plusieurs projets exécutés au sein d’une organisation, fournissant des détails sur la façon dont les tests doivent être effectués, et qui est alignée sur la politique de test. » (source : https://www.cftl.fr/wp-content/uploads/2018/10/Glossaire-des-tests-logiciels-v3_2F-ISTQB-CFTL-1.pdf)
Dans ce document, il y a quelques étapes clés à respecter :
-
Tests manuels ou automatisés ? Déterminez la balance entre les tests automatisés et manuels. Les tests automatisés sont idéaux pour les tâches répétitives et à grande échelle, tandis que les tests manuels sont souvent utilisés pour des scénarios plus complexes et subjectifs....
Identifiez les niveaux de test
Chaque niveau a un objectif spécifique et contribue à une couverture de test complète en examinant l’application à différentes étapes de son développement.
Tests unitaires : ils testent les plus petites unités de code (fonctions, méthodes) pour vérifier qu’elles fonctionnent correctement. Ces tests sont généralement écrits et exécutés par les développeurs eux-mêmes. L’avantage est de détecter rapidement les erreurs à un stade précoce du développement, ce qui simplifie la localisation et la correction des défauts.
Tests d’intégration : ils se concentrent sur les interfaces et les interactions entre les différents modules ou composants du système afin de s’assurer qu’ils fonctionnent ensemble comme prévu. L’avantage est qu’ils identifient les problèmes liés à l’intégration des composants, comme les erreurs dans les interfaces, les problèmes de communication ou les dépendances incorrectes.
Tests de système : ils évaluent le système dans son ensemble pour vérifier qu’il répond aux exigences spécifiées. Cela inclut les fonctionnalités, la performance et le comportement dans différentes conditions.
Tests...
Déterminez les types de test
Les types de test dans le développement logiciel varient en fonction de ce qu’ils visent à vérifier ou à améliorer dans le produit final.
Tests fonctionnels : ils vérifient que chaque fonction de l’application fonctionne comme prévu. Cela inclut le test des fonctionnalités individuelles, des flux d’utilisateur, et des scénarios d’utilisation pour s’assurer qu’ils produisent les résultats attendus. Par exemple, le test de formulaire.
Tests non fonctionnels : ils incluent les tests de performance, de charge, de sécurité, de compatibilité, etc., et se concentrent sur les aspects non fonctionnels du système.
Tests d’interface utilisateur : ils se concentrent sur les éléments visuels et l’expérience utilisateur. Par exemple, les tests de disposition des éléments sur différentes tailles d’écran, les tests des interactions utilisateur (cliquer, glisser, taper), la vérification de la cohérence visuelle, etc.
Tests de conformité : ils s’assurent que le système respecte les normes et réglementations applicables. Par exemple, les tests de conformité aux normes d’accessibilité, le respect des directives de sécurité des données, l’adhérence aux standards industriels....
Élaborez les techniques de test
Ces techniques, diverses et variées, sont au cœur de la stratégie de validation et permettent d’assurer la robustesse, la fiabilité et la conformité des applications développées.
Tests basés sur les exigences : les testeurs vérifient également que toutes les exigences sont satisfaites.
Tests basés sur les risques : les testeurs priorisent des tests en fonction des risques identifiés dans l’analyse des risques. Les fonctionnalités qui présentent le risque le plus élevé sont testées en priorité.
Tests exploratoires : les testeurs explorent l’application avec peu ou sans plan préétabli, utilisant leur intuition, leur expérience, et leur compréhension du système pour identifier des bugs et des comportements inattendus.
Tests de régression : les testeurs s’assurent que les nouvelles modifications n’affectent pas négativement les fonctionnalités existantes.
Planifiez l’allocation des ressources
Cette planification comprend l’identification et la distribution adéquate des outils, des environnements de test, et du personnel nécessaire en fonction de l’approche choisie.
Pour planifier vos besoins en ressources, il faut :
-
comprendre la nature et le volume des tests à réaliser ;
-
évaluer des outils nécessaires ainsi que leurs coûts ;
-
déterminer et préparer des environnements de tests. Cela peut inclure la mise en place de serveurs. Les tests sont exécutés dans des environnements de test pour s’assurer que les tests reflètent les conditions d’utilisation réelles.
-
identifier les compétences et l’expertise requises pour les différentes tâches de test et affecter les rôles et les responsabilités en fonction des compétences des testeurs.
Définissez le calendrier de test
Vous devez définir un calendrier pour les différentes phases de test, en tenant compte des délais de développement et de livraison.
Par exemple, le premier point est de planifier les tests, ensuite, de créer vos cas de tests détaillés basés sur les exigences écrites. Puis, vous devez mettre en place votre environnement de test. Par exemple, si vous vous attendez à avoir trois utilisateurs avec trois rôles différents afin de tester votre site internet, vous devez créer ces utilisateurs.
Ensuite, vous pouvez exécuter vos tests et écrire les rapports de défauts si vous en trouvez.
Les dernières étapes consistent à suivre et à contrôler vos tests, puis à clôturer ces derniers en analysant leurs résultat. Dans certains cas, vous pouvez évaluer la couverture de tests. N’oubliez pas de documenter les leçons que vous avez apprises pendant la campagne. Cela peut être intéressant de garder une trace pour vous et pour toute personne travaillant sur le même projet.
La dernière étape est la maintenance. Vous continuez à tester le site internet même après sa mise en production.
Par exemple, vous pouvez avoir ce calendrier sous forme de diagramme de Gantt :
Créez les cas de test
Les cas de tests permettent de vérifier que l’application fonctionne comme prévu.
Commencez par identifier tous les scénarios d’utilisation possibles, y compris les chemins heureux (comportement attendu) et les chemins malheureux (gestion des erreurs, comportements inattendus).
Pour chaque scénario, définissez les conditions préalables, les données d’entrée nécessaires, et l’état du système avant le test.
Décrivez clairement ce qui est attendu du système après l’exécution du cas de test pour faciliter la validation des résultats.
Déterminez les livrables de tests
Les livrables de tests documentent le processus de test et ses résultats, fournissant une trace pour l’analyse et l’amélioration.
Les documents de tests incluent les plans de tests, les cas de tests, les scripts de tests automatisés, et les rapports de bugs.
Définissez clairement ce qui constitue un succès pour chaque test, incluant des critères d’entrée et de sortie pour les phases de tests et des critères d’acceptation pour le produit final.
Gérez les risques et les problèmes
La gestion proactive des risques et des problèmes est importante pour minimiser l’impact sur le projet.
Identifiez la gestion des risques dans le plan de test, y compris l’identification et la planification des mesures d’atténuation.
Établissez un processus clair pour la remontée, le suivi, et la résolution des problèmes découverts pendant les tests, y compris l’utilisation d’outils de suivi des bugs.
Assurez la communication et la coordination
Assurez une communication efficace et une coordination avec toutes les parties prenantes impliquées dans le processus de test. Utilisez des outils et des réunions régulières pour partager les avancements, les défis, et les résultats des tests. Assurez-vous que les activités de test sont bien coordonnées avec le développement, la gestion de projet, et d’autres équipes impliquées.
Révisez et ajustez le plan de test
L’adaptabilité est clé dans la gestion des tests, permettant de répondre aux changements et aux enseignements tirés. Évaluez régulièrement le plan de test pour vous assurer qu’il reste aligné avec les objectifs du projet et les conditions changeantes. Intégrez les retours d’expérience et les leçons apprises dans le processus de test pour améliorer continuellement les méthodes et les résultats.