Gravité vs priorité dans les tests logiciels : différences, matrice et exemples réels

  1. Accueil
  2. Blog
  3. Tests de logiciels

Tests de logiciels

Gravité vs priorité dans les tests logiciels : Différences, matrice et exemples réels

La gravité indique l’ampleur des dégâts causés par un bug. La priorité indique dans combien de temps le réparer. Découvrez pourquoi elles ne correspondent pas toujours, voyez les quatre combinaisons avec des exemples et organisez des réunions de triage qui se terminent par des décisions claires.

8 min de lecture
Gravité vs priorité dans les tests logiciels : différences, matrice et exemples réels

À retenir

  • La Gravité mesure l’impact d’un bug sur le système. La Priorité mesure l’urgence avec laquelle le problème doit être résolu.
  • Les testeurs proposent généralement la gravité, tandis que les propriétaires de produits décident généralement de la priorité.
  • Ils sont indépendants, donc une faute de frappe peut être urgente et un crash peut attendre.
  • La priorité change avec le contexte commercial, tandis que la gravité a tendance à rester stable.

Un nom d’entreprise mal orthographié sur la page d’accueil et un crash dans une fonctionnalité d’export rarement utilisée : que corrigez-vous en premier ? Des arguments comme celui-ci expliquent pourquoi les équipes de test séparent gravité et priorité. L’un décrit le dommage technique et l’autre décrit l’urgence commerciale.

Sans cette distinction, chaque bug est étiqueté « critique », les étiquettes perdent leur sens et les développeurs cessent de leur faire confiance. Ce guide vous donne des définitions et des exemples clairs, ainsi qu’un processus simple pour prendre ces décisions. Les exemples sont illustratifs et les échelles exactes diffèrent selon les équipes et les outils.

La réponse courte

Réponses Gravité : dans quelle mesure ce bug affecte-t-il le produit ? Un crash ou une perte de données est grave, alors qu’un problème esthétique ne l’est pas.

Réponses prioritaires : dans combien de temps devons-nous résoudre ce problème ? Cela dépend des clients concernés, des délais, des revenus, de l’exposition juridique et de la réputation de la marque.

Pensez à un hôpital. La gravité correspond à la gravité de l’état du patient. La priorité est l’ordre dans lequel les patients sont traités, qui dépend également d’autres facteurs, tels que ceux qui peuvent attendre en toute sécurité et quelles ressources sont disponibles.

Gravité et priorité côte à côte

Aspect Gravité Priorité
Question Quelle est la gravité de l’impact ? Dans combien de temps faut-il le réparer ?
Concentrez-vous Effet technique sur le système Besoin de l’entreprise et calendrier
Généralement fixé par Testeur ou ingénieur QA Product Owner ou chef de projet
Base Comportement observé Clients, revenus, délais, risque
Des changements au fil du temps ? Rarement Souvent
Décide Quelle est la gravité du défaut L’ordre de la file d’attente des correctifs

Niveaux de gravité

La plupart des équipes utilisent environ quatre ou cinq niveaux. Voici une échelle commune :

Niveau Signification Exemple
Critique (S1) Système en panne, perte de données ou faille de sécurité, sans solution de contournement L’enregistrement d’une facture supprime les enregistrements clients
Majeure (S2) Une fonctionnalité clé est défectueuse ou seule une solution de contournement difficile existe La recherche ne renvoie aucun résultat pour aucune requête
Modéré (S3) Une fonctionnalité échoue partiellement et une solution de contournement raisonnable existe Le filtre par date échoue, mais le tri par date fonctionne
Mineur (S4) Petit inconvénient, fonctionnalité intacte Une info-bulle apparaît au mauvais endroit
Trivial (S5) Cosmétique uniquement Une icône légèrement mal alignée

Niveaux de priorité

Niveau Signification Action typique
P1, urgent Doit être réparé maintenant Abandonnez tout autre travail et envisagez un correctif
P2, élevé Doit être corrigé avant la prochaine version Programmer dans le sprint en cours
P3, moyen Devrait être corrigé bientôt Placer dans un prochain sprint
P4, faible Corriger quand il y a de la capacité Conservez l’arriéré et examinez-le de temps en temps

Notez ce que chaque niveau signifie pour votre équipe, idéalement avec un temps de réponse cible pour chacun. “P1 signifie que quelqu’un commence dans l’heure” est bien plus utile que “P1 signifie très important”.

Les quatre combinaisons, avec exemples

La façon la plus claire de comprendre cela est d’examiner chaque combinaison :

Haute priorité Faible priorité
Gravité élevée Le paiement échoue pour tous les clients lors d’une vente Un crash lors de l’exportation vers un format de fichier que presque personne n’utilise
Faible gravité Le nom de l’entreprise est mal orthographié sur la page d’accueil Une faute de frappe dans un ancien article d’aide avec peu de lecteurs

Gravité élevée, priorité élevée

Le paiement échoue pour tout le monde, l’entreprise perd de l’argent de minute en minute et il n’existe aucune solution de contournement. C’est le cas évident : laissez tout tomber et réparez-le.

Gravité élevée, priorité faible

L’application plante lors de l’exportation vers un format existant. Techniquement, c’est un sérieux échec. Mais si seulement une infime partie des utilisateurs touchent à cette fonctionnalité et qu’un format moderne fonctionne correctement, il peut attendre une sortie programmée.

Faible gravité, haute priorité

Le nom de l’entreprise est mal orthographié sur la page d’accueil. Rien n’est cassé et aucune donnée n’est en danger. Pourtant, chaque visiteur le voit, cela nuit à la confiance, et si un lancement majeur est prévu demain, il doit être réparé aujourd’hui.

Faible gravité, faible priorité

Une petite faute de frappe dans un article d’aide rarement consulté. Réparez-le quand cela vous convient. Si votre carnet de commandes en est rempli, envisagez de les regrouper en une seule tâche de nettoyage.

Un bug, deux priorités différentes

Un même défaut peut mériter des priorités différentes selon le contexte. Supposons qu’un e-mail de confirmation de commande soit envoyé avec le mauvais logo.

Contexte Gravité Priorité
Petit outil interne Mineur P4
La marque publique vient d’être renommée, avec une annonce cette semaine Mineur P1 ou P2

La gravité n’a pas changé, car l’impact sur le système est le même. Mais la situation des affaires l’a fait. Le temps peut aussi changer les choses. Un bug qui est P3 aujourd’hui peut devenir P1 la semaine précédant la mise en service d’un client majeur.

Conseil : Certains changements de contexte affectent la gravité. Des calculs de taxes erronés peuvent sembler modérés jusqu’à ce que vous appreniez qu’ils s’appliquent à toutes les factures, alors vérifiez l’étendue d’un bug avant de vous fixer un niveau.

Qui décide de la gravité et de la priorité ?

  • Les testeurs proposent généralement la gravité, car ils ont vu le comportement et comprennent l’impact sur le système.
  • Les propriétaires ou gestionnaires de produits décident généralement des priorités, en tenant compte des clients, des revenus et de la feuille de route.
  • Les développeurs ajoutent des informations sur la cause, le risque d’un correctif et le temps que cela prendra.
  • Les équipes d’assistance apportent des preuves du nombre de clients concernés et de leur gravité.

Les sources et les équipes varient en fonction de ces responsabilités, et dans une petite startup, une seule personne peut tout faire. Ce qui compte, c’est que tout le monde sache qui prend la décision finale, afin que les désaccords se terminent par une décision.

Comment évaluer un bug

En cas de doute, répondez à ces questions.

Pour la gravité :

  1. Perd-il ou corrompt-il des données, ou expose-t-il des informations privées ?
  2. Est-ce que cela empêche une fonction principale de fonctionner ?
  3. Existe-t-il une solution de contournement et un utilisateur normal pourrait-il la trouver ?
  4. Dans quelle mesure la fonctionnalité est-elle affectée ?

En priorité :

  1. Combien d’utilisateurs sont concernés et lesquels ?
  2. Est-ce que cela coûte de l’argent ou crée un risque juridique ou de conformité ?
  3. Une sortie, une démo ou une vente est à venir ?
  4. Dans quelle mesure est-il visible et cela pourrait-il nuire à votre réputation ?
  5. Est-ce que cela bloque d’autres travaux, comme les tests ?

Exécution du tri des bogues

Le triage est la réunion régulière au cours de laquelle une équipe examine les nouveaux bugs et décide de la suite des événements. Un format simple fonctionne bien :

  1. Préparer. Le testeur s’assure que chaque nouveau bug comporte des étapes, des preuves et une gravité proposées claires.
  2. Confirmer. Vérifiez qu’il est reproductible et qu’il ne s’agit pas d’un doublon.
  3. Décidez. Convenez de la gravité, définissez une priorité et attribuez un propriétaire.
  4. Bouclez la boucle. Rejetez, reportez ou planifiez chaque bug et enregistrez la raison.

Soyez bref et fréquent. Au cours des derniers jours précédant une sortie, un tri quotidien de 15 minutes est courant. La gravité et la priorité influencent également votre décision de publication, alors convenez dès le départ de règles, telles que “pas de bogues S1 ou S2 ouverts à la sortie”, dans le cadre de vos critères de sortie.

Gravité et priorité dans un rapport de bug

Une entrée courte et claire aide chacun à prendre une bonne décision :

Title:    Checkout returns error 500 when a coupon is applied
Severity: S1 - blocks purchase, no workaround
Priority: P1 proposed - sale starts Friday
Build:    2.14.0, production
Reach:    All customers using a coupon (around 30% of orders)
Steps:    1. Add an item  2. Apply SAVE10  3. Click Pay
Result:   Error 500 and no order is created
Expected: Order is created with the discount applied

Ces chiffres sont des exemples. Dans un rapport réel, utilisez les chiffres mesurés à partir de vos journaux et expliquez votre raisonnement. Apprenez-en davantage dans notre guide sur comment rédiger un rapport de bug. Il est également utile de connaître la signification des codes d’erreur, alors gardez notre aide-mémoire des codes d’état HTTP à portée de main.

Erreurs courantes

  • Les traiter comme le même champ. Si les deux correspondent toujours, vous perdez des informations utiles.
  • Gonfler la sévérité pour attirer l’attention. Une fois que tout est critique, rien ne l’est.
  • Laisser les testeurs définir seuls les priorités. Ils ont rarement une vision complète de l’entreprise.
  • Ne jamais examiner l’arriéré. Les priorités deviennent obsolètes, alors revérifiez régulièrement les anciens bugs.
  • Pas de définitions écrites. Sans elles, les gens appliquent les étiquettes différemment et vous finissez par débattre des mots.
  • Ignorer les empilements de faible gravité. Cinquante problèmes mineurs peuvent donner l’impression qu’un produit est cassé, même si aucun n’est grave à lui seul.

Pour conclure

Séparez les deux questions : à quel point la situation est-elle grave et dans combien de temps faut-il y remédier ? Convenez de définitions écrites pour chaque niveau et indiquez clairement qui décide. Dans l’étape suivante, prenez les dix bugs les plus anciens de votre tracker et réévaluez-les à l’aide des questions ci-dessus. Vous en trouverez probablement quelques-uns qui devraient bouger et quelques-uns qui devraient être fermés.

Questions fréquentes

Quelle est la différence entre gravité et priorité ?

La gravité est la mesure dans laquelle un défaut nuit au système. La priorité est de savoir avec quelle urgence le problème doit être résolu. L’un concerne l’impact technique et l’autre l’urgence commerciale.

Un bug peut-il avoir une faible gravité et une priorité élevée ?

Oui. Un nom d’entreprise mal orthographié sur la page d’accueil ne casse rien, mais il est très visible, une équipe peut donc souhaiter que le problème soit corrigé immédiatement.

Un bug peut-il avoir une gravité élevée et une faible priorité ?

Oui. Un crash d’une fonctionnalité héritée rarement utilisée est techniquement grave, mais avec peu d’utilisateurs concernés et une bonne alternative, cela peut attendre.

Qui fixe la gravité et la priorité ?

Les testeurs proposent généralement la gravité, et les propriétaires ou gestionnaires de produits décident généralement de la priorité. De nombreuses équipes finalisent les deux ensemble lors d’une réunion de tri des bogues.

Qu’est-ce qui doit être corrigé en premier : une gravité élevée ou une priorité élevée ?

Corrigez par ordre de priorité, puisque la priorité est ce qui décide de la file d’attente. La gravité est cependant un élément important, c’est pourquoi les bogues graves reçoivent généralement une haute priorité.

Continuez à apprendre

Travailler avec Stack Quora

Besoin d’aide pour les tests, WordPress ou le référencement ?

Nous aidons les équipes à proposer de meilleurs logiciels et à développer leurs sites. Dites-nous sur quoi vous travaillez et nous vous proposerons une prochaine étape claire.

Continuez à lire

Plus de guides sur tests, IA et développement moderne

Vous avez apprécié cet article ? Choisissez un sujet et accédez directement à nos nouveaux didacticiels.

Intelligence artificielle

Les hallucinations de l'IA expliquées : pourquoi les modèles de langage inventent les choses et comment les réduire

Les hallucinations de l'IA ont expliqué : ce qu'elles sont, pourquoi les modèles de langage les produisent, les types courants, comment les réduire …

Lire l'article →
DevOps

Variables d'environnement expliquées : fichiers .env, secrets et configuration correctement effectués

Variables d'environnement expliquées avec des exemples Python que nous avons exécutés : lecture et définition, pourquoi chaque valeur est une chaîne…

Lire l'article →
Développement logiciel

Limitation du débit de l'API expliquée : algorithmes, en-têtes et gestion des erreurs 429

Limitation du débit de l'API expliquée avec une simulation que nous avons exécutée : compartiment de jetons, fenêtre fixe, fenêtre glissante, 429 ré…

Lire l'article →
Automatisation des tests

Se moquer en Python : unittest.mock, patch et les erreurs qui font mentir les tests

Moquerie en Python avec unittest.mock, testée : Mock et return_value, side_effect, correctifs où un nom est utilisé, spec et autospec, dates moqueus…

Lire l'article →
Tests logiciels

Couverture du code expliquée : couverture des lignes par rapport aux branches et ce que signifie réellement 100 %

Couverture du code expliquée avec une véritable exécution de cover.py : couverture des lignes, des branches et des conditions, lecture d'un rapport,…

Lire l'article →
Bases de données et SQL

DELETE vs TRUNCATE vs DROP dans SQL : différences, restauration et quand les utiliser

DELETE vs TRUNCATE vs DROP expliqué avec SQL testé : ce que chacun supprime, restauration, déclencheurs, réinitialisation d'identité, vitesse et en …

Lire l'article →
Bases de données et SQL

Vues SQL expliquées : créez, utilisez et évitez les pièges, avec des exemples

Vues SQL expliquées avec les requêtes que nous avons exécutées : création d'une vue, résultats en direct, masquage des colonnes, performances, vues …

Lire l'article →
Développement logiciel

Interface TypeScript vs Type : différences réelles, testées avec le compilateur

Interface TypeScript vs type, vérifiée avec le vrai compilateur : ce que les deux peuvent faire, ce qu'un seul peut faire, la fusion des déclaration…

Lire l'article →
Développement logiciel

Python *args et **kwargs expliqués : fonctions flexibles avec des exemples clairs

Python *args et **kwargs expliqués avec le code que nous avons exécuté : emballage et déballage, ordre des paramètres, arguments de mot-clé uniqueme…

Lire l'article →
Développement logiciel

Fonctions Python Lambda : syntaxe, utilisations réelles et quand ne pas les utiliser

Fonctions Python lambda expliquées avec le code que nous avons exécuté : syntaxe, tri avec clé, carte et filtre, fermetures, piège de liaison tardiv…

Lire l'article →
Intelligence artificielle

Que sont les agents IA ? Comment ils fonctionnent, avec une simple boucle d'agent que vous pouvez exécuter

Que sont les agents IA ? Un guide simple sur la boucle d'agent, les outils, la mémoire et les garde-fous, avec une petite boucle Python que nous avo…

Lire l'article →
DevOps

Surveillance vs observabilité : la vraie différence, avec les journaux, les métriques et les traces

Surveillance et observabilité expliquées : échecs connus et inconnus, journaux, métriques et traces, présentation pas à pas des incidents de paiemen…

Lire l'article →
DevOps

Volumes Docker vs montages Bind : conserver les données du conteneur de la bonne manière

Volumes Docker et montages de liaison expliqués : pourquoi les données du conteneur disparaissent, volumes nommés, montages de liaison, tmpfs, exemp…

Lire l'article →
Automatisation des tests

TDD vs BDD : principales différences, une fonctionnalité conçue dans les deux sens et quand les utiliser

TDD vs BDD expliqué avec une fonctionnalité de remise construite dans les deux sens : refactor rouge-vert avec le code que nous avons exécuté, scéna…

Lire l'article →
Tests logiciels

Tests d'acceptation utilisateur (UAT) : processus, liste de contrôle et exemples réels

Les tests d'acceptation des utilisateurs sont expliqués : qui les exécute, en quoi ils diffèrent du contrôle qualité, un processus en sept étapes, u…

Lire l'article →
Bases de données et SQL

Explication des valeurs SQL NULL : IS NULL, COALESCE, NULLIF et les pièges à éviter

Les valeurs SQL NULL expliquées avec les requêtes que nous avons exécutées : logique à trois valeurs, IS NULL, COALESCE, NULLIF, comment les agrégat…

Lire l'article →
Bases de données et SQL

Instruction SQL CASE WHEN : syntaxe, exemples réels et erreurs courantes

SQL CASE WHEN expliqué avec les requêtes que nous avons exécutées : formulaires simples et recherchés, ordre des conditions, pivots avec SUM, astuce…

Lire l'article →
Développement logiciel

Qu'est-ce que JWT ? Les jetons Web JSON expliqués avec un exemple fonctionnel

Qu’est-ce que JWT ? JSON Web Tokens expliqué : les trois parties, un jeton construit et falsifié dans le code que nous avons exécuté, JWT vs session…

Lire l'article →
Développement logiciel

Boucle d'événements JavaScript expliquée : pile d'appels, microtâches et minuteries avec des exemples

La boucle d'événements JavaScript expliquée avec le code que nous avons exécuté : pile d'appels, files d'attente de tâches et de microtâches, pourqu…

Lire l'article →
Développement logiciel

Générateurs Python et rendement expliqués : économisez de la mémoire avec des exemples réels

Les générateurs Python et le rendement expliqués avec le code que nous avons exécuté : comment ils s'arrêtent et reprennent, les économies de mémoir…

Lire l'article →
Intelligence artificielle

Que sont les intégrations ? Vecteurs et similarité cosinus expliqués simplement

Que sont les intégrations ? Un guide en langage simple sur les vecteurs, la similarité cosinus et la recherche sémantique, avec un petit exemple que…

Lire l'article →
DevOps

Déploiement Bleu-Vert vs Canary : différences, compromis et comment choisir

Explication du déploiement bleu-vert ou canari : comment chacun fonctionne, coût, risque et restauration, regroupement d'utilisateurs stable que nou…

Lire l'article →
Automatisation des tests

Tests instables : quelles sont leurs causes et comment les corriger définitivement

Des tests irréguliers expliqués avec des démos que nous avons exécutées : les principales causes, comment en confirmer et en diagnostiquer une, les …

Lire l'article →
Tests logiciels

Tests de charge vs tests de contrainte : différences, métriques et exemples k6

Explication des tests de charge et des tests de stress : ce que chacun prouve, les tests de pointe et de trempage, les métriques qui comptent, pourq…

Lire l'article →
Tests logiciels

Scénario de test et scénario de test : principales différences, exemples et quand les utiliser

Scénario de test et scénario de test expliqués : des définitions claires, un tableau côte à côte, une fonctionnalité de réinitialisation de mot de p…

Lire l'article →
Bases de données et SQL

Optimisation des requêtes SQL : lire les plans d'exécution et corriger les requêtes lentes, avec des délais

Optimisation des requêtes SQL testée sur un million de lignes : lire les plans d'exécution, ajouter les bons index, corriger les filtres non Sargabl…

Lire l'article →
Bases de données et SQL

SQL UNION vs UNION ALL : différences, exemples et performances testées

SQL UNION vs UNION ALL expliqué avec les requêtes que nous avons exécutées : des doublons, les règles suivent toutes les deux, un véritable bug de d…

Lire l'article →
Développement logiciel

Tutoriel API JavaScript Fetch : GET, POST, gestion des erreurs et délais d'attente

Un didacticiel de l'API JavaScript Fetch testé sur un serveur local : GET et POST, pourquoi 404 ne lance pas, un assistant réutilisable, des chaînes…

Lire l'article →
Développement logiciel

Gestion des fichiers Python : lecture, écriture, CSV, JSON et pathlib avec exemples

Gestion des fichiers Python expliquée avec le code que nous avons exécuté : modes ouverts, avec lecture de fichiers volumineux, CSV, JSON, pathlib, …

Lire l'article →
Développement logiciel

Classes et objets Python : didacticiel POO avec des exemples réels

Classes et objets Python expliqués avec le code que nous avons exécuté : __init__, méthodes, attributs de classe par rapport à l'instance, héritage,…

Lire l'article →
Intelligence artificielle

Qu'est-ce qu'un grand modèle de langage ? Comment fonctionnent les LLM, expliqués sans battage médiatique

Qu’est-ce qu’un grand modèle de langage ? Les LLM expliqués en langage simple : jetons, intégrations, attention, formation, fenêtres de température …

Lire l'article →
DevOps

Commandes Linux pour les débutants : le guide du terminal essentiel avec des exemples

Commandes Linux pour débutants, regroupées par tâche : navigation, fichiers, affichage des journaux, grep, tuyaux, autorisations, processus et archi…

Lire l'article →
Automatisation des tests

Selenium vs Playwright : principales différences, code comparé et lequel choisir

Comparatif Selenium vs Playwright : architecture, attente, support du navigateur et du langage, débogage, même test dans les deux outils, conseils d…

Lire l'article →
Tests logiciels

Partitionnement d'équivalence : technique de conception de tests expliquée avec des exemples concrets

Le partitionnement d'équivalence expliqué : comment trouver des partitions valides et invalides, des exemples concrets d'âges, de mots de passe et d…

Lire l'article →
Tests logiciels

Gravité vs priorité dans les tests logiciels : différences, matrice et exemples réels

Explication de la gravité et de la priorité dans les tests logiciels : des définitions claires, une matrice à quatre voies avec des exemples, des éc…

Lire l'article →
Bases de données et SQL

Tutoriel sur les sous-requêtes SQL : types, sous-requêtes corrélées et EXISTE avec des exemples

Un didacticiel sur les sous-requêtes SQL avec les requêtes que nous avons exécutées : les sous-requêtes scalaires, IN, FROM et SELECT, les sous-requ…

Lire l'article →
Bases de données et SQL

Transactions SQL et ACID expliquées : COMMIT, ROLLBACK et niveaux d'isolement

Transactions SQL et ACID expliquées avec un virement bancaire que nous avons effectué : COMMIT, ROLLBACK, points de sauvegarde, verrous, niveaux d'i…

Lire l'article →
Développement logiciel

Git merge vs rebase : différences, exemples et quand utiliser chacun

Git merge vs rebase expliqué avec de vraies sorties de log, un tableau comparatif, la règle d'or du rebase et un flux de travail sûr pour les équipes.

Lire l'article →
Développement logiciel

List comprehension Python : syntaxe, exemples et cas à éviter

La list comprehension Python expliquée : syntaxe, filtres, if-else, boucles imbriquées, temps mesurés et cas où une boucle for classique est préféra…

Lire l'article →
Bases de données et SQL

Jointures SQL expliquées avec exemples (Inner, Left, Right, Full)

Comprenez les jointures SQL pas à pas avec des tables et requêtes d'exemple : INNER, LEFT, RIGHT, FULL, CROSS et SELF, plus erreurs courantes et con…

Lire l'article →