Comprenez le contexte
C’est l’un des sept principes du test : les tests dépendent du contexte dans lequel ils sont exécutés.
Mais qu’est-ce qu’un contexte ?
Dans un projet de test web, le contexte fait référence à l'environnement dans lequel les tests sont exécutés. Il s'agit de l'ensemble des conditions, des configurations, des données et des paramètres qui entourent les tests et qui peuvent influencer leurs résultats.
Le contexte peut inclure plusieurs éléments tels que :
le navigateur web utilisé pour exécuter les tests ;
les versions du système d'exploitation et des logiciels utilisés ;
les configurations matérielles ;
les données d'entrée et de sortie ;
les paramètres de sécurité ;
les autorisations d'accès.
Bien noté. Mais à quoi servent ces éléments de contexte ?
Il est important de définir le contexte de manière claire et complète avant de commencer les tests, afin de s'assurer que tous les éléments sont correctement configurés et que les tests sont exécutés dans un environnement stable et cohérent. Cela permet aussi de mieux comprendre les résultats des tests et d'identifier plus facilement les problèmes éventuels.
Prenons un exemple. Le site internet de l’assurance maladie ameli.fr sera soumis à des tests plus rigoureux que le site vitrine d'un artisan boulanger local. Le site vitrine n’a pas de fonctionnalités d'achat, ni de formulaires, ni de contraintes RGPD, ni de contraintes médicales, et ne requiert pas de normes de qualité aussi strictes concernant les données stockées. En revanche, en raison de sa criticité, le site ameli.fr doit être testé de manière approfondie pour assurer son bon fonctionnement et sa fiabilité.
Les questions à vous poser peuvent être de ce type :
1. Avez vous besoin d’un environnement de test dédié et isolé ?
Dans un environnement de test, on trouve le matériel, les simulateurs, les outils logiciels et tout autre élément de support nécessaire à l’exécution de tests.
Le terme dédié signifie que cet environnement doit être utilisé uniquement par les tests, et isolé signifie que cet environnement ne doit pas impacter les autres environnements comme celui de production.
Prenons un exemple : sur le site internet d’un supermarché, on peut imaginer vouloir ajouter des produits et en supprimer, n’est-ce pas ?
Mais vous ne voulez pas que le produit que vous allez ajouter dans vos tests s’ajoute également sur le site du supermarché. Les produits que je vais ajouter vont sûrement s’appeler ‘super Produit è_4’’(è_4” pour tester les caractères spéciaux). Or ce produit ne va rien dire aux clients du supermarché !
Il faut donc être sûr qu’il y a dans notre exemple une base de données dédiée pour l’environnement de test et une base dédiée pour l’environnement de production afin d’éviter les interférences.
2. Dans le cas d’un formulaire, celui-ci concerne-t-il un contexte aux normes de qualité très strictes quant aux données stockées, comme le médical ou le militaire ?
En quoi un contexte médical est-il différent d’un autre contexte ?
Imaginons une application de gestion des dossiers médicaux pour une clinique médicale. Cette application permet au personnel médical d'accéder aux dossiers patients, et de gérer ces dossiers qui contiennent des données personnelles et sensibles : informations médicales, rendez-vous, résultats d’examens, diagnostics, etc. L'application étant essentielle pour la prise en charge efficace des patients, elle doit fonctionner de manière fiable et sécurisée.
Dans notre exemple Tech&Buy, notre contexte n’est pas critique car il s’agit d’un exercice interne, nous ne suivons donc pas de normes qualité complexes. Cependant, vous pouvez tester par exemple les éléments suivants :
Fonctionnalités d'achat : Les tests doivent couvrir toutes les étapes du processus d'achat, de la navigation et de la recherche de produits à la validation du panier, en passant par le paiement et la confirmation de la commande.
Sécurité des transactions : La sécurité des paiements en ligne est essentielle. Les tests doivent vérifier que les transactions sont sécurisées, que les données de carte de crédit sont protégées et que les protocoles de sécurité appropriés sont en place.
Gestion des stocks : Il est crucial de s'assurer que les niveaux de stock sont mis à jour en temps réel et que les clients ne peuvent pas acheter des produits qui sont épuisés.
Performance et charge : Les tests de performance doivent évaluer la vitesse de chargement du site, sa réactivité et sa capacité à gérer un grand nombre d'utilisateurs simultanément, en particulier lors des périodes de forte affluence, comme les soldes ou les jours fériés. Ces tests ne sont généralement pas faits avec Cypress mais avec d’autres outils comme JMeter, Locust ou autre.
Compatibilité des navigateurs et des appareils : Le site de e-commerce doit être testé sur différents navigateurs (Chrome, Firefox, Safari, etc.) et appareils (ordinateurs de bureau, tablettes, smartphones) pour s'assurer qu'il offre une expérience cohérente à tous les utilisateurs.
Prix et remises : Les tests doivent vérifier que les prix des produits et les remises sont correctement affichés, appliqués et calculés lors de la validation du panier.
Gestion des commandes et des retours : Les tests doivent couvrir la gestion des commandes, l'envoi des confirmations et le processus de retour des produits.
Protection des données clients : La confidentialité des données clients est cruciale dans un contexte de e-commerce. Les tests doivent s'assurer que les informations personnelles des clients sont protégées et traitées conformément aux réglementations en matière de protection des données. Le RGPD (Règlement général sur la protection des données) s'applique également à un site de e-commerce.
Tests de sécurité : Les tests de sécurité sont essentiels pour identifier les failles potentielles, les vulnérabilités et les risques liés à la sécurité de l'application. Dans ce cours, vous verrez la faille XSS.
Comprenez les objectifs de votre projet
Les personnes et les projets sont dirigés par des objectifs. Les personnes ont tendance à aligner leurs plans en fonction des objectifs mis en place par le management et les autres responsables, par exemple, pour trouver des défauts ou confirmer qu’un logiciel fonctionne. De ce fait, il est important de spécifier clairement les objectifs des tests. (Source : Syllabus ISTQB)
Pour chacun des objectifs d’un projet, il faut donc :
trouver des défauts et les identifier ;
donner une confiance au site web au niveau qualité ou fonctionnel/non fonctionnel ;
donner un maximum d’informations (couverture, défauts détectés, régressions, bilans) pour aider à la prise de décision ou prévenir des défauts en testant tôt pendant les revues.
Les objectifs visent généralement à assurer la qualité et la fiabilité du site internet.
OK mais concrètement, ça peut être quoi, les objectifs ?
En voici quelques exemples :
Identifier les erreurs et les bugs afin de les corriger avant qu’ils soient mis en production.
Valider les fonctionnalités afin de vérifier que le site répond aux spécifications fonctionnelles et aux exigences définies.
Assurer la conformité en vérifiant que le site est fidèle aux normes, réglementations ou exigences spécifiques dans le domaine du site.
Évaluer les performances afin d’estimer la capacité du site à fonctionner dans des conditions réelles en monitorant les résultats.
Vérifier la sécurité en identifiant les failles et les vulnérabilités.
Valider l’ergonomie et l’utilisabilité en termes de facilité d’utilisation, d’accessibilité et de satisfaction utilisateur.
Évaluer la robustesse pour estimer la stabilité et la résistance du site face à des situations anormales comme des pannes matérielles, des interruptions de connexion ou des erreurs de saisie.
En résumé, les objectifs des tests sont de garantir la qualité, la fiabilité, la sécurité et la performance du site internet tout en répondant aux spécifications.
Dans notre exemple Tech&Buy, nos objectifs peuvent être :
La qualité : Le site doit être intuitif et facile à naviguer, permettant aux utilisateurs de trouver rapidement ce qu'ils recherchent et de passer une commande sans difficulté. Le site doit avoir une présentation visuelle attrayante avec des images de haute qualité et une mise en page esthétique pour attirer les clients et renforcer la confiance.
La fiabilité : S'assurer que toutes les fonctionnalités liées à l'achat, telles que l'ajout de produits au panier, le processus de paiement, la validation des commandes, etc., fonctionnent correctement.
La sécurité : Valider qu’il n’y a pas de faille qui rendrait nos données vulnérables, et tester la sécurité du processus de paiement en ligne pour protéger les données sensibles des utilisateurs, telles que les informations de carte de crédit.
Définissez les critères de succès
Vous devez déterminer les critères de succès d'une campagne de test en définissant les objectifs spécifiques et mesurables que vous allez chercher à atteindre pendant la campagne.
Ces critères sont essentiels pour évaluer la réussite globale de votre campagne de test et pour déterminer si les objectifs ont été réalisés. Voici quelques exemples de critères de succès couramment utilisés :
Taux de couverture des tests : la proportion des fonctionnalités, des scénarios ou des cas de test effectivement testés par rapport à l'ensemble du système ou de l'application. Un critère de succès peut être d'atteindre un pourcentage spécifique de couverture des tests.
Nombre d'anomalies identifiées : le nombre total d'anomalies, de bugs ou de défauts qui vont être identifiés pendant la campagne de test. L'objectif peut être de réduire ce nombre au fil du temps ou de garantir qu'un certain pourcentage de ces anomalies sera résolu avant la fin de la campagne.
Taux de réussite des tests : la proportion de tests qui ont réussi par rapport au nombre total de tests exécutés. Cela peut inclure des tests manuels et automatisés. L'objectif est généralement d'atteindre un taux élevé de réussite des tests.
Taux de détection des défauts en exploitation (DDE) : la capacité de la campagne de test à détecter les défauts et les anomalies dans le logiciel avant qu'ils ne soient signalés par les utilisateurs finaux après la mise en production.
Délai de résolution des anomalies : le temps nécessaire pour résoudre les anomalies identifiées. L'objectif peut être de réduire ce délai pour assurer une résolution rapide des problèmes.
Performance du système : la performance du système sous différents niveaux de charge, de stress ou d'utilisation. Les critères de succès peuvent être liés aux temps de réponse, aux temps de chargement ou à la capacité à gérer un certain nombre d'utilisateurs simultanément. Ce type de test ne sera pas réalisé avec Cypress.
Niveau de satisfaction des utilisateurs : la satisfaction globale des utilisateurs après utilisation du logiciel testé. Cela peut être évalué à l'aide de sondages, de retours d'utilisateurs ou de commentaires.
Conformité aux spécifications : la mesure dans laquelle le logiciel testé répond aux spécifications et aux exigences définies. Les critères de succès peuvent être liés au respect de toutes les spécifications fonctionnelles et techniques.
Stabilité du système : la stabilité générale du système s’évalue en vérifiant la fréquence et la gravité des erreurs ou des pannes après des périodes prolongées d'utilisation.
Intégrez-vous aux discussions où les fonctionnalités sont déterminées
Tout au long de la vie du projet, il y a des réunions au cours desquelles on discute des fonctionnalités. Le product owner et/ou le service Marketing ont les retours des clients. Ces retours clients peuvent aboutir à une nouvelle fonctionnalité. Si le product owner et/ou le service Marketing décident d’ajouter cette fonctionnalité, on va commencer dans l’idéal par réaliser des maquettes, ou mockups. Les fonctionnalités sont donc déterminées bien en amont de la conception, lors de la maquette.
Comme nous l’avons vu, il faut tester le plus tôt possible les nouvelles fonctionnalités ou celles qui viennent d’être modifiées afin de limiter le coût d’une éventuelle correction. Pour cela, l’idéal serait de prendre part aux discussions lors de la réalisation des maquettes afin d'apporter votre regard. Cependant, dans la vie réelle, peu d’entreprises le font car cela coûte de l’argent.
Dans tous les cas, le testeur doit poser toutes les questions pertinentes avant l’écriture des spécifications et l’implémentation, que ce soit lors de la réalisation de la maquette ou à un autre niveau. Le testeur peut également être amené à vérifier les spécifications et à donner son avis.
En résumé
Les tests dépendent du contexte.
Un contexte fait référence à l'environnement dans lequel les tests sont exécutés.
Les objectifs visent généralement à assurer la qualité et la fiabilité du site internet.
Pour tester au plus tôt, n’hésitez pas à vous inclure dans les réunions où les fonctionnalités sont discutées.
Maintenant que vous connaissez le contexte de vos tests, vous voilà prêt à identifier ce qui doit être automatisé.