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.

  • ✅ Test positif : Fournissez uniquement des données valides et vérifiez que l'application exécute le flux prévu exactement comme décrit dans les spécifications.
  • ⛔ Tests négatifs : Saisissez des données invalides ou extrêmes et vérifiez que l'application les refuse, affiche une erreur claire et reste stable.
  • (I.e. Analyse des valeurs limites : Testez la limite de chaque plage acceptée, puis une valeur légèrement en dehors, afin de détecter rapidement les défauts d'une unité.
  • 🧩 Partitionnement par équivalence : Divisez les entrées en groupes valides et invalides, puis échantillonnez une valeur de chaque groupe au lieu de tout tester.
  • ️ Règle de couverture : Rédigez au moins deux cas par exigence, un positif et un négatif, afin qu'aucun critère d'acceptation ne soit livré sans avoir été testé.
  • 🛡️ Récompense en matière de sécurité : Les cas négatifs révèlent des failles d'injection, des jetons expirés et des exceptions non gérées que les exécutions positives n'atteignent jamais.
  • 🤖 Adéquation de l'automatisation : Automatisez les flux positifs stables pour la valeur de régression et automatisez les contrôles de validation négatifs pour le retour d'information sur la résilience.

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.

Test positif

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.

Test négatif

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.

Tests positifs ou négatifs

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.

Partitionnement d'équivalence

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.

  1. 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.
  2. É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.
  3. 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.
  4. 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.
  5. É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.
  6. 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.

FAQ

Test négatif Les tests destructifs vérifient qu'une application rejette correctement les entrées invalides. Ils vont plus loin et poussent délibérément le système jusqu'à la défaillance, par exemple en interrompant une connexion à une base de données en pleine transaction, afin de mesurer son comportement de récupération et sa résilience dans des conditions extrêmes.

Non. Tests de fumée et de santé mentale Utilisez uniquement les contrôles positifs, car ils constituent des barrières de qualité rapides pour une nouvelle version. Les contrôles négatifs génèrent des erreurs intentionnellement ; les équipes les exécutent donc lors de cycles de test fonctionnels plus approfondis.

Oui. Les générateurs d'IA lisent les exigences ou les scénarios utilisateurs et proposent des ensembles d'entrées valides et invalides, y compris les valeurs limites. Un testeur les examine toujours, car les cas négatifs générés ne tiennent souvent pas compte des limites du domaine, comme les seuils réglementaires ou les règles d'arrondi des devises.

Oui. Les fonctionnalités d'IA nécessitent des cas négatifs pour l'injection de dépendances, les réponses de modèles malformées, les délais d'attente et les questions hors sujet. Étant donné que les résultats varient d'une exécution à l'autre, les assertions doivent vérifier le format de réponse, les filtres de sécurité et le comportement de repli plutôt qu'une chaîne de caractères fixe attendue.

Selenium pilote la validation des champs du navigateur, Postman couvre les charges utiles API et les codes d'état invalides, et JMeter La charge dépasse la limite supportée pour les scénarios de stress. Choisissez l'outil correspondant à la couche que vous validez.

Résumez cet article avec :