Temps de lecture: 10 minutes
Comment écrire des cas de test peut ne pas sembler être une partie aussi importante du développement. Mais pour qu’un testeur de logiciel puisse effectuer au mieux son travail, il a besoin d’un ensemble d’étapes claires à suivre et d’une définition claire de ce qui est testé.
Tout le monde, de la NASA et de GE aux entreprises au niveau de l’entreprise, peut bénéficier d’équipes qui fonctionnent au mieux. Rédiger d’excellents cas de test n’est qu’un moyen de plus d’améliorer l’efficacité et l’efficacité de l’équipe et Parasoft vise à donner aux équipes les moyens de le faire.
Dans ce blog, nous couvrons les sujets suivants liés à la rédaction d’un cas de test:
- Qu’est-ce qu’un cas de test ?
- Script de test vs cas de test
- Différents types de cas de test
- Comment écrire des cas de test logiciels
- Format de cas de test standard
- Meilleures pratiques d’écriture de cas de test
- Suite de tests vs. plan de test
- Outils d’écriture de cas de test
Découvrez comment créer des cas de test utiles et réutilisables pour faciliter les tests fonctionnels des API grâce à l’automatisation des tests améliorée avec l’IA.
Demander une démo
Qu’est-ce qu’un Scénario de test dans un logiciel?
Un scénario de test est exactement ce à quoi il ressemble : un scénario de test mesurant la fonctionnalité à travers un ensemble d’actions ou de conditions pour vérifier le résultat attendu. Ils s’appliquent à n’importe quelle application logicielle, peuvent utiliser des tests manuels ou un test automatisé et peuvent utiliser des outils de gestion de cas de test.
Une chose clé à retenir lorsqu’il s’agit d’écrire des cas de test est qu’ils sont destinés à tester une variable ou une tâche de base, par exemple si un code de réduction s’applique ou non au bon produit sur une page Web de commerce électronique. Cela permet à un testeur de logiciel plus de flexibilité dans la façon de tester le code et les fonctionnalités.
Optimisation des Tests Unitaires et de Régression pour les Systèmes Embarqués
Script de test par rapport au scénario de test
La différence entre les scénarios de test et les scripts de test doit également être clarifiée. Un script de test est un programme court destiné à tester certaines fonctionnalités. Un cas de test est un document avec des étapes à compléter comme prévu à l’avance.
Considérez les cas de test comme un voyage méticuleusement planifié et les scripts de test comme un voyage rapide à l’épicerie.
Différents Types de Cas de test
Les cas de test peuvent mesurer de nombreux aspects différents du code. Les étapes impliquées peuvent également être destinées à induire un résultat d’échec par opposition à un résultat attendu positif, par exemple lorsqu’un utilisateur saisit le mauvais mot de passe sur un écran de connexion.
Quelques exemples de cas de test courants seraient les suivants:
Les cas de test peuvent être appliqués à n’importe quel nombre de fonctionnalités présentes dans un logiciel donné. Certains des exemples les plus populaires incluent:
- Test d’API – Voyez-le en action.
- Test de l’interface utilisateur – Voyez-le en action.
- Test unitaire – Voyez-le en action.
- Charge & test de performance – Voir en action.
- Test de sécurité
- Requêtes SQL
- Test d’application Low-code
Un exemple de cas de test populaire
Les cas de test sont utiles dans une variété de scénarios logiciels. Tout, des services bancaires aux logiciels personnels, nécessite une application de cas de test. Par exemple, si l’objectif est d’avoir des données sensibles cryptées, le logiciel doit disposer de fonctionnalités qui fonctionnent comme prévu.
Mais les tests fonctionnels ne sont qu’un aspect de l’écriture d’un scénario de test. Les tests logiciels devraient défier de manière robuste tous les aspects du code, des performances à la compatibilité en passant par la sécurité. C’est pourquoi les logiciels de cryptage personnel doivent être testés de manière si approfondie, en particulier lorsqu’il s’agit d’API Web.
Comment écrire des scénarios de test logiciels
L’écriture de scénarios de test varie en fonction de ce que le scénario de test mesure ou teste. C’est également une situation où le partage des ressources de test entre les équipes de développement et de test peut accélérer les tests logiciels. Mais tout commence par savoir comment rédiger un cas de test de manière efficace et efficiente.
Les cas de test ont quelques parties intégrantes qui devraient toujours être présentes dans les champs. Cependant, chaque cas de test peut être décomposé en 8 étapes de base.
Étape 1: ID de cas de test
Les cas de test doivent tous porter des ID uniques pour les représenter. Dans la plupart des cas, suivre une convention pour cet IDENTIFIANT de dénomination aide à l’organisation, à la clarté et à la compréhension.
Étape 2: Description du test
Cette description doit détailler quelle unité, caractéristique ou fonction est testée ou ce qui est vérifié.
Étape 3: Hypothèses et conditions préalables
Cela implique toutes les conditions à remplir avant l’exécution du scénario de test. Un exemple serait d’exiger un compte Outlook valide pour une connexion.
Étape 4: Données de test
Ceci concerne les variables et leurs valeurs dans le cas de test. Dans l’exemple d’une connexion par e-mail, il s’agirait du nom d’utilisateur et du mot de passe du compte.
Étape 5: Étapes à exécuter
Ces étapes doivent être facilement répétables telles qu’elles sont exécutées du point de vue de l’utilisateur final. Par exemple, un scénario de test pour la connexion à un serveur de messagerie peut inclure ces étapes:
- Ouvrez la page Web du serveur de messagerie.
- Entrez le nom d’utilisateur.
- Entrez le mot de passe.
- Cliquez sur le bouton « Entrée » ou « Connexion ».
Étape 6 : Résultat attendu
Ceci indique le résultat attendu après l’exécution de l’étape du scénario de test. En entrant les bonnes informations de connexion, le résultat attendu serait une connexion réussie.
Étape 7: Résultat réel et Post-Conditions
Par rapport au résultat attendu, nous pouvons déterminer l’état du scénario de test. Dans le cas de la connexion par e-mail, l’utilisateur serait connecté avec succès ou non. La post-condition est ce qui se produit à la suite de l’exécution de l’étape, par exemple en étant redirigé vers la boîte de réception de l’e-mail.
Étape 8: Réussite / échec
La détermination du statut de réussite / échec dépend de la comparaison entre le résultat attendu et le résultat réel.
Même résultat = Réussite
Résultats différents = Échec
Accélérez les Tests Logiciels en partageant les Actifs de Test Entre Les Équipes de Test Dev&
Format de cas de test unitaire standard
Chaque partie d’un test unitaire bien écrit définira plusieurs aspects fondamentaux, notamment:
- Fonctions exécutées par le test
- Données utilisées dans le test
- Résultat attendu de l’exécution du test
- S’assurer que le test a été exécuté indépendamment des autres parties de la base de code
Il est important de savoir que le format standard des tests bien écrits est composé des parties suivantes:
- Nom significatif de la méthode de test
- Données contrôlées ou simulacres à utiliser pour tester
- Méthode ou unité testée (la partie du code que nous testons)
- Application d’une assertion
- Exécution du test unitaire isolément
Existe-t-il un modèle de cas de test?
Comme mentionné, il existe un format de scénario de test standard. Cependant, le modèle de cas de test varierait probablement d’une entreprise à l’autre et même d’une équipe à l’autre. Au lieu de cela, un modèle de cas de test est le document contenant une liste de scénarios de test et de cas de test ultérieurs.
Exemple de cas de test de qualité
Bien que les cas de test varient en fonction du type de test et du champ global de test, la création d’un cas de test de qualité se résume à ces quelques éléments fiables ci-dessus. N’oubliez pas: le nom de la méthode d’essai doit inclure la méthode ou l’unité testée et le résultat attendu.
Il convient également de noter que chaque unité doit être testée isolément. Dans ce cas, « isolement » signifie garder les tests concentrés autant que possible afin d’exécuter uniquement la partie de l’application pour laquelle nous testons.
Cet exemple provient d’un cas de test lié au secteur bancaire:
Avec ce nom de méthode, nous savons qu’il s’agit d’un test unitaire qui est:
- Test de la méthode ‘isOverDrawn()’.
- Le solde utilisé pour les données contrôlées était de 500.
- Le résultat attendu est vrai.
Un nom de méthode significatif permet à quiconque examine les résultats de comprendre ce que le test unitaire testait. De plus, il signale les données à tester, le résultat attendu et ce qui a été testé.
Si le test échoue, il est essentiel de connaître le résultat attendu pour faciliter le dépannage et s’assurer qu’aucune régression n’est introduite.
Données de cas de test
Les données utilisées doivent être suffisantes pour exécuter le test. Pour les tests unitaires, nous voulons qu’il soit aussi simple que possible de tester l’unité la plus basique de notre application. Les données peuvent être aussi simples que de créer une chaîne ou une variable d’objet pour laquelle vous pouvez contrôler les données. Ou un framework fictif peut être utilisé pour le test si une dépendance n’est pas disponible ou si vous avez besoin que cette dépendance soit dans un état spécifique.
Ayant juste assez pour tester cette partie si suffisante. Vous N’AVEZ PAS besoin de configurer chaque élément de l’application pour que le test s’exécute.
Tout cela affecte le comportement du test unitaire car il s’agit des données utilisées pour l’exécution du test unitaire. En tant que telle, cette partie des tests unitaires prend le plus de temps car elle nécessite une certaine compréhension du code que vous testez pour savoir quelles données utiliser pour les tests.
Restez simple en utilisant uniquement les pièces nécessaires au code testé. Les mocks sont très utiles dans cette phase car ils vous permettent de contrôler le comportement des méthodes de ces objets lors de l’interaction avec votre test.
Par exemple, étant donné les données suivantes:
Nous avons évité la « classe client réelle » en utilisant une maquette pour la « classe client » pour tester l’isolation. Nous ne voulons pas introduire ni configurer un autre objet pour ce test car il ajoute une autre couche de maintenabilité pour cet objet, et cela n’affecte pas le résultat de la méthode testée.
La variable suivante à créer est le « solde initial » – quelque chose de connu en raison de la connaissance du code. La ligne suivante montre l’objet Compte en cours de création avec la maquette et le Solde initial pour préparer la méthode que nous testons avec les données que nous venons d’utiliser.
Donc, dans cet exemple, l’objet compte est configuré avec le client fictif car nous ne nous soucions pas des données de l’objet client et nous avons passé un solde initial que nous pouvons contrôler pour notre test.
La ligne suivante définit l’entrée car la méthode testée nécessite l’utilisation d’un nombre. Nous avons défini le « solde » à utiliser dans la méthode que nous testons. Ensuite, la méthode est exécutée avec le résultat de la méthode stocké dans notre variable pour que nous puissions l’utiliser plus tard.
Application d’une assertion
Une fois que le test peut se terminer avec succès (car il s’exécute du début à la fin sans exceptions ni erreurs), il est temps d’appliquer une assertion au test unitaire. Sans l’assertion, le test unitaire n’a aucun sens car vous n’appliquez rien pour vous assurer qu’il fonctionne comme prévu.
La collecte de la couverture des lignes qui ont été exécutées indique ce qui a été exécuté, mais ne fournit pas suffisamment de détails pour déterminer les éléments suivants:
- Si le code se comporte comme prévu.
- Si le code répond aux objectifs de qualité.
- Si les données renvoyées sont les données attendues.
Une assertion peut être aussi basique que:
Tant que le test unitaire contient une assertion qui vérifie le résultat de la méthode sous test, il s’agit d’un test unitaire significatif.
En appliquant le format standard de test unitaire, une équipe peut facilement maintenir, lire et / ou mettre à jour les tests avec plus de facilité pour voir facilement où davantage de tests peuvent être appliqués au reste de l’application.
Quelles sont les Meilleures Pratiques pour Rédiger des Cas de Test de Qualité ?
La façon d’écrire des tests et des cas de test efficaces peut être rationalisée au fil du temps. Certaines pratiques exemplaires comprennent l’utilisation de titres forts, de descriptions solides et le maintien de la concision et de la clarté du langage.
Mais vous voudrez également inclure des conditions préalables, des hypothèses et les résultats attendus. Toutes ces informations sont pertinentes pour le testeur de logiciel, en particulier pour déterminer si le scénario de test doit être un « succès » ou un « échec » à la place.
Une feuille de triche pour créer des cas de test qui fonctionnent bien est la suivante:
- Gardez les choses simples et transparentes.
- Rendre les cas de test réutilisables.
- Gardez les ID de cas de test uniques.
- L’examen par les pairs est important.
- Les cas de test doivent tenir compte de l’utilisateur final ou des exigences définies.
- Indiquez les résultats attendus et les hypothèses.
Simple, unique, spécifique, ouvert aux commentaires et axé sur la réutilisabilité: c’est la manière d’un excellent cas de test. Pour un aperçu plus visuel de la rédaction d’un cas de test de qualité, consultez le webinaire de Parasoft sur le sujet.
Suite de tests vs Plan de tests
L’autre aspect d’un scénario de test implique des suites de tests et des plans de tests. Ceux-ci diffèrent de manière clé et les deux sont vitaux pour le développement de cas de test précis.
Soyez un Testeur de Logiciel Plus Intelligent Avec Ces 5 Combinaisons De Technologies Délicieuses
Qu’est-ce qu’une Suite de tests ?
Une suite de tests entre en jeu pour les cas de test en ce qui concerne le code source, la collection de dépendances ou la suite de tests à effectuer sur le code. Les suites de tests vous permettent de catégoriser les cas de test de manière à correspondre à tous les besoins d’analyse ou de planification.
Cela signifie que les fonctionnalités logicielles principales peuvent avoir leur propre suite de tests tandis qu’une autre suite de tests est destinée à un type de test spécifique tel que smoke ou security. Considérez les suites de tests comme une bibliothèque sur laquelle organiser vos cas de test.
Qu’est-ce qu’un Plan de test ?
En revanche, un plan de test ressemble davantage au parapluie qui recouvre toutes les suites de tests. Si les cas de test sont des livres et que les suites de tests sont des étagères, les plans de test sont la pièce qui contient l’étagère.
Généralement, les plans de test sont mis en place en termes de tests manuels, de tests automatisés et d’un format général de la façon de procéder aux tests. Ils testeront le logiciel depuis la fondation en utilisant des suites de tests et des cas de test avant de mettre en œuvre des modifications ou d’ajouter de nouvelles fonctionnalités.
Meilleurs outils d’écriture de cas de test
Parasoft développe généralement ses outils et suites en pensant à la théorie de » George Jetson ». C’est-à-dire que nous voulons que nos clients puissent « appuyer sur un bouton » et que tout soit pris en charge. Bien que ce ne soit pas totalement réaliste, les outils axés sur l’automatisation sont les meilleurs à utiliser lorsqu’il s’agit d’écrire des cas de test.
Non seulement ils peuvent aider à l’automatisation, mais ils peuvent aider dès le début du développement. Après tout, il est trop facile de s’enliser avec de petits détails ou fonctionnalités. On pourrait oublier que le logiciel doit juste fonctionner en premier. C’est là qu’un outil de test unitaire Java comme Parasoft Jtest entre en jeu.
Simplifiez les tests API et améliorez la qualité des logiciels. Voir l’automatisation des tests améliorée avec AI & ML en action !
Demander une démo
Cet outil permet aux débutants comme aux experts d’améliorer plus rapidement leurs compétences en tests unitaires, ainsi que l’expérience des tests unitaires. Après avoir établi une base, il exécute les tests unitaires puis guide l’utilisateur pour s’assurer que les tests sont significatifs. Lorsque vous pouvez comprendre le genre de choses à rechercher dans un test, l’écriture de cas de test devient moins intimidante.