Test positif et test négatif avec exemples
⚡ Résumé intelligent
Les tests positifs et négatifs déterminent conjointement si un logiciel accepte ce qu'il devrait et rejette ce qu'il ne devrait pas. Cet article explique ces deux approches, les techniques sous-jacentes, des exemples pratiques et les bonnes pratiques permettant de limiter la propagation des défauts.

Les tests logiciels consistent à vérifier et valider une application logicielle afin de s'assurer de son bon fonctionnement. L'objectif est de détecter les défauts et d'améliorer la qualité du produit. Il existe deux méthodes de test logiciel : les tests positifs et les tests négatifs.
Ces deux approches répondent à des questions opposées : l’application fonctionne-t-elle lorsque tout se passe bien, et reste-t-elle stable lorsqu’un problème survient ?
Qu’est-ce qu’un test positif ?
Test positif Il s'agit d'un type de test effectué sur une application logicielle en lui fournissant des ensembles de données valides en entrée. Il vérifie si l'application se comporte comme prévu avec des entrées positives.
Les tests positifs servent à vérifier que l'application logicielle fonctionne exactement comme prévu. C'est pourquoi on les appelle aussi tests de fonctionnement nominal.
Par exemple, prenons le cas de la zone de texte numérique illustrée ci-dessous.
Il existe une zone de texte dans une application qui ne peut accepter que des chiffres. La saisie de valeurs allant jusqu'à 99999 sera acceptable par le système et toute autre valeur en dehors de celle-ci ne devrait pas être acceptable. Pour effectuer des tests positifs, définissez les valeurs d'entrée valides de 0 à 99999 et vérifiez si le système accepte les valeurs.
Qu’est-ce qu’un test négatif ?
Test négatif Il s'agit d'une méthode de test appliquée à une application logicielle en lui fournissant des ensembles de données invalides ou incorrectes en entrée. Elle vérifie si l'application se comporte comme prévu avec des entrées utilisateur négatives ou indésirables.
L'objectif des tests négatifs est de garantir que l'application logicielle ne plante pas et reste stable même avec des données d'entrée invalides. C'est pourquoi on les appelle aussi tests de chemin d'erreur ou tests de défaillance.
Par exemple, considérons le même champ recevant des caractères au lieu de chiffres.
Les tests négatifs peuvent être effectués en saisissant les caractères de A à Z ou de a à z. Soit le système logiciel ne doit pas accepter les valeurs, soit il doit générer un message d'erreur pour ces entrées de données non valides.
Dans les deux types de tests, les éléments suivants doivent être pris en compte :
- Des données d'entrée
- Une action qui doit être effectuée
- Résultat de sortie
Tests positifs vs tests négatifs : principales différences
Les deux approches partagent la même cas de test La différence réside dans la structure, c'est-à-dire dans les données d'entrée fournies et dans ce que prouve un résultat positif.
| Paramètres | Test positif | Test négatif |
|---|---|---|
| Aussi connu sous le nom | Tests de chemin optimal | Tests de chemin d'erreur ou de défaillance |
| Entrée utilisée | Données valides et attendues | Données invalides, extrêmes ou inattendues |
| Objectif | Vérifiez que la fonctionnalité fonctionne comme prévu. | Vérifiez que la fonctionnalité refuse ce qu'elle ne devrait pas. |
| Résultat attendu | Le flux s'est terminé avec succès | Une erreur manifeste apparaît et le système reste stable. |
| La gestion des erreurs | Ce n'est pas le sujet principal. | L'ensemble du focus |
| Couverture | Étroit, conforme aux spécifications | Large, explore tout ce qui se trouve en dehors des spécifications |
| Risque typique en cas d'omission | Les fonctionnalités principales sont cassées. | Les pannes et les failles de sécurité atteignent la production |
Un test positif défaillant signale un dysfonctionnement. Un test négatif défaillant signale l'absence d'une protection, dont la réparation est beaucoup plus coûteuse une fois constatée par les utilisateurs.
Techniques de test utilisées pour les tests positifs et négatifs
En pratique, deux techniques classiques de conception d'entrées génèrent des cas positifs et négatifs à partir d'une même exigence :
- Analyse de la valeur limite
- Partitionnement d'équivalence
Analyse de la valeur limite
Il s'agit de l'une des techniques de test logiciel dans laquelle les cas de test sont conçus pour inclure des valeurs à la frontière. Si les données d’entrée sont utilisées dans les limites des valeurs limites, on parle alors de test positif. Si les données d’entrée sont sélectionnées en dehors des limites des valeurs limites, on parle alors de test négatif.
Par exemple, consultez la plage de valeurs acceptées illustrée ci-dessous.
Un système peut accepter les nombres de 0 à 10 valeurs numériques. Tous les autres nombres sont des valeurs invalides. Dans le cadre de cette technique, les valeurs limites -1,0,1 et 9,10,11 seront testées.
Partitionnement d'équivalence
Il s'agit d'un test logiciel technique qui divise les données d’entrée en plusieurs partitions. Les valeurs de chaque partition doivent être testées au moins une fois. Les partitions avec des valeurs valides sont utilisées pour les tests positifs. Tandis que les partitions avec des valeurs non valides sont utilisées pour les tests négatifs.
Par exemple, étudiez les deux partitions illustrées ci-dessous.
Les valeurs numériques de zéro à dix peuvent être divisées en deux (ou trois) partitions. Dans notre cas, nous avons deux partitions : -10 à -1 et 0 à 10. Des valeurs d'exemple (5 et -5) peuvent être extraites de chaque partition pour tester les différents scénarios. Voir la suite partitionnement par équivalence et analyse des valeurs limites Leçon pour plus d'exemples détaillés.
Comment réaliser des tests positifs et négatifs
La séquence suivante transforme une exigence en un ensemble équilibré de cas positifs et négatifs.
- Lisez les exigences relatives aux limites. Notez chaque format accepté, plage de valeurs et champ obligatoire. Tout ce que la spécification autorise est considéré comme un cas positif, et tout ce qu'elle exclut est considéré comme un cas négatif.
- Écrivez d'abord le cas positif. Fournissez des données valides, effectuez l'action et enregistrez le résultat de réussite attendu comme référence.
- Déduisez les cas négatifs à partir des mêmes limites. Utilisez l'analyse des valeurs limites et le partitionnement par équivalence pour générer des champs vides, des types de données incorrects et des nombres hors plage.
- Ajouter des entrées hostiles. Inclure Injection SQL chaînes de caractères, jetons expirés et charges utiles d'API malformées, donc les tests de sécurité Les failles apparaissent rapidement.
- Étendre aux contrôles non fonctionnels. A test de chargement lorsque le nombre d'utilisateurs pris en charge est positif, tandis que stress test Au-delà de cette limite se trouve le cas négatif correspondant.
- Choisissez où chaque cas s'exécute. Éviter les cas négatifs Tests de fumée et de santé mentale, qui sont des portes positives rapides, et les exécuter en mode fonctionnel et les tests de régression cycles.
Un retrait au distributeur automatique permet de visualiser le processus. Si le code PIN et le montant sont corrects, l'espèce et le reçu sont délivrés. En cas d'échec, le code PIN est incorrect, un message de refus s'affiche, puis la carte est bloquée.
Meilleures pratiques pour maintenir l'équilibre
- Rédigez au moins deux cas de figure par exigence, un positif et un négatif, avant de commencer le développement.
- Priorisez les cas négatifs en fonction de leur impact, de sorte que les échecs d'injection et de paiement soient traités avant les erreurs de saisie mineures.
- Indiquez clairement le message d'erreur lui-même, et pas seulement que l'action a échoué, car les messages vagues constituent également des défauts.
- Laissez de la place pour tests exploratoires, et consignez vos résultats via votre processus de gestion des défauts.
⚠️ Attention : Ne jamais exécuter de tests de simulation en environnement de production. Ces tests servent à provoquer des défaillances, et un plantage intentionnel affecte de vrais utilisateurs et de vraies données.

.png)
.png)
.png)
.png)