{"id":1177,"date":"2026-08-21T14:25:42","date_gmt":"2026-08-21T14:25:42","guid":{"rendered":"https:\/\/matforge.org\/?p=1177","raw":"https:\/\/matforge.org\/?p=1177"},"modified":"2026-08-21T14:25:42","modified_gmt":"2026-08-21T14:25:42","slug":"feature-requests-vs-bug-reports-knowing-the-difference","status":"publish","type":"post","link":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/","title":{"rendered":"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence","raw":"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 7<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span><p>Dans les logiciels scientifiques et d&rsquo;ing\u00e9nierie, la plupart des frustrations ne proviennent pas de probl\u00e8mes difficiles &#8211; cela provient d&rsquo;\u00e9nonc\u00e9s de probl\u00e8mes peu clairs. Un ticket qui \u00ab\u00a0semble mal\u00a0\u00bb peut en fait d\u00e9crire une capacit\u00e9 manquante. Une demande de \u00ab\u00a0petite am\u00e9lioration\u00a0\u00bb peut masquer un d\u00e9faut qui corrompt les r\u00e9sultats. Lorsque les \u00e9quipes classent mal les billets, elles perdent du temps&nbsp;: les d\u00e9veloppeurs enqu\u00eatent sur les bogues fant\u00f4mes, les chercheurs attendent des fonctionnalit\u00e9s qui n&rsquo;ont jamais \u00e9t\u00e9 d\u00e9finies et les priorit\u00e9s d\u00e9rivent.<\/p>\n<p>Ce guide vous aide \u00e0 d\u00e9cider rapidement si quelque chose est un rapport de bogue ou une demande de fonctionnalit\u00e9, et montre comment \u00e9crire chacun afin que l&rsquo;\u00e9quipe puisse agir en cons\u00e9quence. L&rsquo;objectif est simple&nbsp;: moins de commentaires de va-et-vient, un triage plus rapide et moins de surprises dans les versions.<\/p>\n<h2>Pourquoi la distinction est importante<\/h2>\n<p>Les rapports de bogues et les demandes de fonctionnalit\u00e9s sont trait\u00e9s diff\u00e9remment dans la plupart des flux de travail (Trac, Jira, GitHub, probl\u00e8mes Redmine, etc.). Ils ont une urgence diff\u00e9rente, des crit\u00e8res d&rsquo;acceptation diff\u00e9rents et diff\u00e9rentes fa\u00e7ons de tester et de boucler la boucle.<\/p>\n<ul>\n<li>Un rapport de bogue a g\u00e9n\u00e9ralement une attente d&rsquo;exactitude&nbsp;: le logiciel viole son propre contrat, sa documentation ou son comportement \u00e9tabli.<\/li>\n<li>Une demande de fonctionnalit\u00e9 demande un nouveau comportement&nbsp;: quelque chose que le logiciel ne promet pas actuellement, m\u00eame s&rsquo;il serait utile.<\/li>\n<\/ul>\n<p>Lorsque vous \u00e9tiquetez correctement le ticket, le triage devient plus facile&nbsp;: les responsables de la maintenance peuvent reproduire, hi\u00e9rarchiser et affecter le travail sans deviner ce qui doit se produire.<\/p>\n<h2>Les d\u00e9finitions de base<\/h2>\n<h3>Qu&rsquo;est-ce qu&rsquo;un rapport de bogue&nbsp;?<\/h3>\n<p>Un bogue se produit lorsque le syst\u00e8me se comporte de mani\u00e8re incorrecte par rapport \u00e0 un point de r\u00e9f\u00e9rence convenu. Ce point de r\u00e9f\u00e9rence peut \u00eatre :<\/p>\n<ul>\n<li>Documentation ou interface publi\u00e9e (contrat API)<\/li>\n<li>Comportement stable pr\u00e9c\u00e9dent (une r\u00e9gression)<\/li>\n<li>Exactitude scientifique (p. ex. lois de conservation, invariants attendus, coh\u00e9rence des unit\u00e9s)<\/li>\n<li>Exigences clairement \u00e9nonc\u00e9es (y compris les tests ou les sp\u00e9cifications)<\/li>\n<\/ul>\n<p>En bref&nbsp;: un rapport de bogue d\u00e9crit une erreur qui doit \u00eatre corrig\u00e9e pour restaurer l&rsquo;exactitude.<\/p>\n<h3>Qu&rsquo;est-ce qu&rsquo;une demande de fonctionnalit\u00e9&nbsp;?<\/h3>\n<p>Une demande de fonctionnalit\u00e9 propose une capacit\u00e9 ou une am\u00e9lioration qui rendrait le syst\u00e8me plus utile, flexible ou efficace, mais qui n&rsquo;est pas requis pour l&rsquo;exactitude du comportement actuel. Les exemples incluent :<\/p>\n<ul>\n<li>Prise en charge d&rsquo;un nouveau type de condition aux limites<\/li>\n<li>Ajout d&rsquo;un exportateur pour un nouveau format de fichier<\/li>\n<li>Am\u00e9liorer les performances au-del\u00e0 des objectifs actuels<\/li>\n<li>Ajout d&rsquo;options UI\/CLI qui n&rsquo;existent pas encore<\/li>\n<\/ul>\n<p>En bref&nbsp;: une demande de fonctionnalit\u00e9 d\u00e9crit quelque chose de nouveau que le syst\u00e8me devrait faire.<\/p>\n<h2>Liste de v\u00e9rification des d\u00e9cisions rapides<\/h2>\n<p>Si vous ne vous souvenez qu&rsquo;une seule r\u00e8gle, utilisez ceci :<\/p>\n<ul>\n<li>Si le logiciel rompt une promesse, c&rsquo;est un bogue.<\/li>\n<li>Si vous voulez une nouvelle promesse, c&rsquo;est une fonctionnalit\u00e9.<\/li>\n<\/ul>\n<p>Posez-vous ces questions :<\/p>\n<ol>\n<li>Cela a-t-il d\u00e9j\u00e0 fonctionn\u00e9 dans le m\u00eame sc\u00e9nario&nbsp;? Si oui, probablement un bogue (\u00e9ventuellement une r\u00e9gression).<\/li>\n<li>Existe-t-il une documentation indiquant que le comportement devrait fonctionner&nbsp;? Si oui, bug.<\/li>\n<li>Le comportement est-il ambigu et vous proposez ce qu&rsquo;il devrait \u00eatre&nbsp;? Probablement une fonctionnalit\u00e9 (ou une clarification des sp\u00e9cifications en premier).<\/li>\n<li>Le probl\u00e8me est-il que vous ne pouvez pas faire quelque chose du tout, mais que rien n&rsquo;est \u00ab\u00a0mal\u00a0\u00bb avec les sorties existantes&nbsp;? probablement une fonctionnalit\u00e9.<\/li>\n<li>Produit-il des r\u00e9sultats incorrects, un crash, des donn\u00e9es de corruption ou des contraintes physiques&nbsp;? Bogue.<\/li>\n<\/ol>\n<h2>Comparaison c\u00f4te \u00e0 c\u00f4te<\/h2>\n<table class=\"custom-table\">\n<tbody>\n<tr>\n<th>aspect<\/th>\n<th>Rapport de bogue<\/th>\n<th>Demande de fonctionnalit\u00e9<\/th>\n<\/tr>\n<tr>\n<td>Sens<\/td>\n<td>Quelque chose ne va pas par rapport au comportement attendu<\/td>\n<td>quelque chose de nouveau ou d&rsquo;am\u00e9lioration est souhait\u00e9<\/td>\n<\/tr>\n<tr>\n<td>point de r\u00e9f\u00e9rence<\/td>\n<td>Docs, tests, versions ant\u00e9rieures, crit\u00e8res d&rsquo;exactitude<\/td>\n<td>Besoins des utilisateurs, objectifs de recherche, am\u00e9liorations de l&rsquo;utilisabilit\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Preuve typique<\/td>\n<td>\u00c9tapes de reproduction, journaux, sortie incorrecte, trace de plantage<\/td>\n<td>Cas d&rsquo;utilisation, avantages, comportements propos\u00e9s, crit\u00e8res d&rsquo;acceptation<\/td>\n<\/tr>\n<tr>\n<td>Pilotes prioritaires<\/td>\n<td>Gravit\u00e9, port\u00e9e, fr\u00e9quence, risque aux r\u00e9sultats<\/td>\n<td>Impact, demande, feuille de route strat\u00e9gique, effort<\/td>\n<\/tr>\n<tr>\n<td>Comment c&rsquo;est \u00ab\u00a0fait\u00a0\u00bb<\/td>\n<td>correctif v\u00e9rifi\u00e9&nbsp;; r\u00e9ussir les tests&nbsp;; R\u00e9gression emp\u00each\u00e9e<\/td>\n<td>impl\u00e9ment\u00e9 les sp\u00e9cifications&nbsp;; document\u00e9&nbsp;; Utilisable de bout en bout<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Exemples de calcul scientifique<\/h2>\n<h3>Exemple 1 : r\u00e9sultats erron\u00e9s dus \u00e0 une non-concordance d&rsquo;unit\u00e9s<\/h3>\n<p>Vous ex\u00e9cutez une simulation et remarquez qu&rsquo;un param\u00e8tre document\u00e9 comme \u00ab\u00a0m\u00e8tres\u00a0\u00bb est trait\u00e9 comme des \u00ab\u00a0millim\u00e8tres\u00a0\u00bb, en d\u00e9calant les r\u00e9sultats de 1&nbsp;000&nbsp;\u00d7. Si la documentation et le code ne sont pas d&rsquo;accord et que les sorties sont incorrectes pour une utilisation document\u00e9e, il s&rsquo;agit d&rsquo;un rapport de bogue. Votre ticket doit inclure le param\u00e8tre, o\u00f9 il est document\u00e9, un cas minimal et des preuves de non-concordance.<\/p>\n<h3>Exemple&nbsp;2&nbsp;: Besoin d&rsquo;un nouveau terme PDE ou d&rsquo;un couplage<\/h3>\n<p>Vous souhaitez ajouter un terme d&rsquo;\u00e9lectromigration \u00e0 un mod\u00e8le de transport existant. Le code actuel fonctionne comme pr\u00e9vu ; Cela n&rsquo;inclut tout simplement pas cette physique. C&rsquo;est une demande de fonctionnalit\u00e9. Votre ticket doit expliquer l&rsquo;\u00e9quation gouvernante, les entr\u00e9es attendues et comment vous le valideriez (benchmarks ou limites analytiques).<\/p>\n<h3>Exemple&nbsp;3&nbsp;: \u00ab\u00a0C&rsquo;est trop lent\u00a0\u00bb<\/h3>\n<p>Les performances peuvent \u00eatre soit. Si le code fonctionnait en 5 minutes et prend d\u00e9sormais 50 minutes sur la m\u00eame configuration, c&rsquo;est un bogue (une r\u00e9gression des performances). Si le code a toujours pris 50 minutes et que vous souhaitez qu&rsquo;il en soit 5, c&rsquo;est une demande de fonctionnalit\u00e9 (travail d&rsquo;optimisation), \u00e0 moins que la lenteur ne provienne d&rsquo;un comportement inattendu (comme un solveur bloqu\u00e9 en raison d&rsquo;un probl\u00e8me de convergence).<\/p>\n<h3>Exemple&nbsp;4&nbsp;: message d&rsquo;erreur d\u00e9routant<\/h3>\n<p>Un message d&rsquo;erreur d\u00e9routant est g\u00e9n\u00e9ralement une demande de fonctionnalit\u00e9 (am\u00e9lioration UX), \u00e0 moins que le message soit factuellement incorrect ou masque l&rsquo;erreur r\u00e9elle d&rsquo;une mani\u00e8re qui emp\u00eache le diagnostic. Dans de nombreuses \u00e9quipes, \u00ab\u00a0Am\u00e9liorer le message d&rsquo;erreur\u00a0\u00bb est suivi comme une am\u00e9lioration, pas comme un bogue.<\/p>\n<h2>Les erreurs de classification courantes et comment les corriger<\/h2>\n<h3>Mauvaise classification&nbsp;: \u00ab\u00a0\u00e7a plante\u00a0\u00bb (mais uniquement avec une entr\u00e9e non valide)<\/h3>\n<p>Si le logiciel se bloque lorsqu&rsquo;il a une entr\u00e9e non valide, il peut s&rsquo;agir d&rsquo;un bogue si le programme \u00e9choue avec \u00e9l\u00e9gance (erreur d&rsquo;effacement, pas de fichiers corrompus). Si un plantage est attendu parce que l&rsquo;entr\u00e9e est en dehors des contraintes prises en charge et que l&rsquo;outil documente d\u00e9j\u00e0 cela, il pourrait s&rsquo;agir d&rsquo;une demande d&rsquo;am\u00e9lioration pour am\u00e9liorer la validation et la messagerie.<\/p>\n<h3>Mauvaise classification&nbsp;: \u00ab\u00a0le r\u00e9sultat semble faux\u00a0\u00bb (mais les attentes ne sont pas claires)<\/h3>\n<p>Si le ticket ne d\u00e9finit pas ce que signifie \u00ab\u00a0droit\u00a0\u00bb, les mainteneurs ne peuvent pas d\u00e9cider de bogue par rapport \u00e0 la fonctionnalit\u00e9. Dans ce cas, inscrivez le ticket sous forme de question plus une attente propos\u00e9e, et joignez des \u00e9l\u00e9ments de preuve. Souvent, la meilleure premi\u00e8re \u00e9tape est la suivante&nbsp;: \u00ab\u00a0clarifier le comportement attendu\u00a0\u00bb &#8211; puis refiler en tant que bogue ou fonctionnalit\u00e9 une fois confirm\u00e9.<\/p>\n<h3>Mauvaise classification&nbsp;: \u00ab\u00a0Veuillez ajouter l&rsquo;option X\u00a0\u00bb (mais le code la prend d\u00e9j\u00e0 en charge)<\/h3>\n<p>Il ne s&rsquo;agit ni d&rsquo;une fonctionnalit\u00e9 ni d&rsquo;un bogue dans le comportement de base &#8211; il peut s&rsquo;agir d&rsquo;un \u00e9cart de documentation. Si la capacit\u00e9 existe mais est difficile \u00e0 d\u00e9couvrir, cr\u00e9ez un ticket DOC (ou une am\u00e9lioration ax\u00e9e sur la convivialit\u00e9).<\/p>\n<h2>Comment r\u00e9diger un rapport de bogue de haute qualit\u00e9<\/h2>\n<p>Un bon rapport de bogue facilite la reproduction, le diagnostic et la v\u00e9rification du correctif.<\/p>\n<h3>Mod\u00e8le de rapport de bogue<\/h3>\n<ul>\n<li>R\u00e9sum\u00e9&nbsp;: Une phrase d\u00e9crivant le comportement incorrect<\/li>\n<li>Environnement : OS, version Python\/C++, version\/commit de package, versions MPI\/solveur, le cas \u00e9ch\u00e9ant<\/li>\n<li>\u00c9tapes \u00e0 reproduire : \u00e9tapes minimales, fichiers d&rsquo;entr\u00e9e minimaux, extrait de code minimal<\/li>\n<li>R\u00e9sultat attendu&nbsp;: que devrait-il se passer et pourquoi (Docs\/Tests\/Comportement pr\u00e9c\u00e9dent)<\/li>\n<li>R\u00e9sultat r\u00e9el&nbsp;: que se passe-t-il \u00e0 la place (logs, trace de pile, captures d&rsquo;\u00e9cran, diff de sortie)<\/li>\n<li>Impact&nbsp;: gravit\u00e9 (crash, mauvaise science, interface utilisateur mineure), fr\u00e9quence, solution de contournement, le cas \u00e9ch\u00e9ant<\/li>\n<\/ul>\n<h3>Exemple de rapport de bogue (court)<\/h3>\n<p>R\u00e9sum\u00e9&nbsp;: L&rsquo;exemple de diffusion \u00e9choue avec Dirichlet&nbsp;BC sur la grille 3D.<\/p>\n<ul>\n<li>Attendu : la simulation s&rsquo;ex\u00e9cute et produit des valeurs de champ stables comme en 2D.<\/li>\n<li>R\u00e9el&nbsp;: le solveur diverge apr\u00e8s n&nbsp;\u00e9tapes&nbsp;; Les valeurs deviennent Nan.<\/li>\n<li>Preuve&nbsp;: Fournissez un script, des valeurs de param\u00e8tres et une sortie de journal minimales.<\/li>\n<\/ul>\n<h2>Comment r\u00e9diger une demande de fonctionnalit\u00e9 forte<\/h2>\n<p>Une demande de fonctionnalit\u00e9s fortes se lit comme une mini-note de conception&nbsp;: elle explique pourquoi la capacit\u00e9 est importante, ce \u00e0 quoi ressemble le \u00ab\u00a0fait\u00a0\u00bb et comment vous la v\u00e9rifierez.<\/p>\n<h3>Mod\u00e8le de demande de fonctionnalit\u00e9<\/h3>\n<ul>\n<li>D\u00e9claration du probl\u00e8me&nbsp;: ce que vous ne pouvez pas faire aujourd&rsquo;hui<\/li>\n<li>Cas d&rsquo;utilisation&nbsp;: qui en a besoin et pourquoi (flux de travail de recherche, module d&rsquo;enseignement, pipeline de production)<\/li>\n<li>Solution propos\u00e9e&nbsp;: comportement de haut niveau, modifications de l&rsquo;interface utilisateur\/API, des valeurs par d\u00e9faut<\/li>\n<li>Crit\u00e8res d&rsquo;acceptation&nbsp;: ce qui doit \u00eatre vrai pour le consid\u00e9rer comme termin\u00e9<\/li>\n<li>Validation : Comment tester (benchmarks, tests unitaires, solutions analytiques, suite de r\u00e9gression)<\/li>\n<li>Alternatives prises en compte&nbsp;: solutions de contournement ou autres approches<\/li>\n<\/ul>\n<h3>Exemple de demande de fonctionnalit\u00e9 (court)<\/h3>\n<p>Demande : Ajoutez une option pour exporter l&rsquo;\u00e9tat de simulation vers un format de visualisation standardis\u00e9 \u00e0 des intervalles configurables.<\/p>\n<ul>\n<li>Cas d&rsquo;utilisation&nbsp;: ex\u00e9cutions importantes sur HPC o\u00f9 une visualisation interm\u00e9diaire est n\u00e9cessaire pour la surveillance.<\/li>\n<li>Acceptation : exporter les travaux pour les grilles 2D\/3D ; Inclut les m\u00e9tadonn\u00e9es (pas de temps, unit\u00e9s) ; Pas de ralentissement majeur.<\/li>\n<li>Validation&nbsp;: comparez les champs export\u00e9s avec les tableaux en m\u00e9moire&nbsp;; Assurez-vous que le rechargement reproduit l&rsquo;\u00e9tat dans la tol\u00e9rance.<\/li>\n<\/ul>\n<h2>Quand un billet devrait devenir deux<\/h2>\n<p>De nombreux probl\u00e8mes du monde r\u00e9el m\u00e9langent des bogues et des fonctionnalit\u00e9s. Leur division acc\u00e9l\u00e8re souvent les progr\u00e8s.<\/p>\n<ul>\n<li>S&rsquo;il y a un crash (bug) et aussi un d\u00e9sir d&rsquo;un message plus agr\u00e9able (fonctionnalit\u00e9), classez deux tickets.<\/li>\n<li>S&rsquo;il y a un probl\u00e8me d&rsquo;exactitude (bug) ainsi qu&rsquo;une demande d&rsquo;appui \u00e0 un nouveau r\u00e9gime, s\u00e9parez le \u00ab\u00a0comportement actuel\u00a0\u00bb de \u00ab\u00a0la capacit\u00e9 d&rsquo;extension\u00a0\u00bb.<\/li>\n<li>Si la demande est \u00ab acc\u00e9l\u00e9r\u00e9e \u00bb mais que vous soup\u00e7onnez une r\u00e9gression, enregistrez un bogue pour la r\u00e9gression et une fonctionnalit\u00e9 pour une optimisation ult\u00e9rieure.<\/li>\n<\/ul>\n<p>Le fractionnement des tickets permet aux \u00e9quipes de fermer rapidement le bogue et de planifier l&rsquo;am\u00e9lioration de mani\u00e8re raisonnable.<\/p>\n<h2>Conseils de triage pour les mainteneurs et les prospects<\/h2>\n<h3>Utiliser des \u00e9tiquettes et un court commentaire de d\u00e9cision<\/h3>\n<p>Lorsqu&rsquo;un ticket arrive ambigu, ajoutez un court commentaire qui verrouille la classification :<\/p>\n<ul>\n<li>\u00ab\u00a0Classification de bug parce que le comportement contredit la section de documentation X.\u00a0\u00bb<\/li>\n<li>\u00ab\u00a0Classification de la demande de fonctionnalit\u00e9, car cela ajoute une nouvelle fonctionnalit\u00e9 de solveur qui n&rsquo;est actuellement pas prise en charge.\u00a0\u00bb<\/li>\n<\/ul>\n<h3>Exiger un minimum de crit\u00e8res d&rsquo;acceptation pour les fonctionnalit\u00e9s<\/h3>\n<p>Les demandes de fonctionnalit\u00e9s \u00e9chouent lorsque \u00ab\u00a0Termin\u00e9\u00a0\u00bb n&rsquo;est pas clair. Demandez t\u00f4t les crit\u00e8res d&rsquo;acceptation&nbsp;: quelle sortie, quelle interface, quels tests, quel exemple. Une fonctionnalit\u00e9 sans crit\u00e8res d&rsquo;acceptation est en fait un \u00e9l\u00e9ment de la liste de souhaits.<\/p>\n<h3>Transformez les questions r\u00e9currentes en t\u00e2ches de documentation<\/h3>\n<p>Si plusieurs \u00ab&nbsp;demandes de fonctionnalit\u00e9s&nbsp;\u00bb sont en fait des demandes de conseils (\u00ab&nbsp;Comment puis-je&#8230;&nbsp;?&nbsp;\u00bb), capturez-les sous forme d&rsquo;am\u00e9liorations Docs. Ceci est particuli\u00e8rement courant dans les biblioth\u00e8ques scientifiques o\u00f9 les capacit\u00e9s existent mais ne sont pas \u00e9videntes.<\/p>\n<h2>Mod\u00e8les pratiques que vous pouvez copier dans les tickets<\/h2>\n<h3>Classificateur \u00e0 une ligne<\/h3>\n<p>Utilisez-le comme premi\u00e8re ligne de la description de votre billet&nbsp;:<\/p>\n<ul>\n<li>Bug&nbsp;: \u00ab\u00a0Le comportement observ\u00e9 contredit le comportement attendu d\u00e9fini par [docs\/test\/previous version].\u00a0\u00bb<\/li>\n<li>Fonctionnalit\u00e9&nbsp;: \u00ab\u00a0Nouvelle fonctionnalit\u00e9 n\u00e9cessaire pour prendre en charge [use case], non disponible actuellement.\u00a0\u00bb<\/li>\n<\/ul>\n<h3>Crit\u00e8res d&rsquo;acceptation D\u00e9marrage d\u00e9fini pour les fonctionnalit\u00e9s<\/h3>\n<ul>\n<li>API&nbsp;: nouvelle option\/param\u00e8tre document\u00e9 avec les valeurs par d\u00e9faut<\/li>\n<li>Exemple : exemple de travail minimal inclus dans les documents\/exemples<\/li>\n<li>Tests : au moins un test automatis\u00e9 couvre le comportement principal<\/li>\n<li>Compatibilit\u00e9 ascendante&nbsp;: les scripts existants continuent de s&rsquo;ex\u00e9cuter sans modification (ou \u00e9tapes de migration document\u00e9es)<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Bug reports restore trust; Les demandes de fonctionnalit\u00e9s d\u00e9veloppent la fonctionnalit\u00e9. Les deux sont essentiels dans les logiciels scientifiques, mais ils ne r\u00e9ussissent que lorsqu&rsquo;ils sont \u00e9crits avec la bonne intention et les preuves. Si vous associez des bogues \u00e0 un point de r\u00e9f\u00e9rence et associez des fonctionnalit\u00e9s \u00e0 un cas d&rsquo;utilisation clair avec des crit\u00e8res d&rsquo;acceptation, vous r\u00e9duirez les frictions de triage, acc\u00e9l\u00e9rez le d\u00e9veloppement et rendez les versions plus pr\u00e9visibles, ce qui am\u00e9liore finalement la vitesse de recherche et la fiabilit\u00e9 des r\u00e9sultats.<\/p>\n","protected":false,"raw":"<p>Dans les logiciels scientifiques et d'ing\u00e9nierie, la plupart des frustrations ne proviennent pas de probl\u00e8mes difficiles - cela provient d'\u00e9nonc\u00e9s de probl\u00e8mes peu clairs. Un ticket qui \"semble mal\" peut en fait d\u00e9crire une capacit\u00e9 manquante. Une demande de \"petite am\u00e9lioration\" peut masquer un d\u00e9faut qui corrompt les r\u00e9sultats. Lorsque les \u00e9quipes classent mal les billets, elles perdent du temps&nbsp;: les d\u00e9veloppeurs enqu\u00eatent sur les bogues fant\u00f4mes, les chercheurs attendent des fonctionnalit\u00e9s qui n'ont jamais \u00e9t\u00e9 d\u00e9finies et les priorit\u00e9s d\u00e9rivent.<\/p>\n<p>Ce guide vous aide \u00e0 d\u00e9cider rapidement si quelque chose est un rapport de bogue ou une demande de fonctionnalit\u00e9, et montre comment \u00e9crire chacun afin que l'\u00e9quipe puisse agir en cons\u00e9quence. L'objectif est simple&nbsp;: moins de commentaires de va-et-vient, un triage plus rapide et moins de surprises dans les versions.<\/p>\n<h2>Pourquoi la distinction est importante<\/h2>\n<p>Les rapports de bogues et les demandes de fonctionnalit\u00e9s sont trait\u00e9s diff\u00e9remment dans la plupart des flux de travail (Trac, Jira, GitHub, probl\u00e8mes Redmine, etc.). Ils ont une urgence diff\u00e9rente, des crit\u00e8res d'acceptation diff\u00e9rents et diff\u00e9rentes fa\u00e7ons de tester et de boucler la boucle.<\/p>\n<ul>\n<li>Un rapport de bogue a g\u00e9n\u00e9ralement une attente d'exactitude&nbsp;: le logiciel viole son propre contrat, sa documentation ou son comportement \u00e9tabli.<\/li>\n<li>Une demande de fonctionnalit\u00e9 demande un nouveau comportement&nbsp;: quelque chose que le logiciel ne promet pas actuellement, m\u00eame s'il serait utile.<\/li>\n<\/ul>\n<p>Lorsque vous \u00e9tiquetez correctement le ticket, le triage devient plus facile&nbsp;: les responsables de la maintenance peuvent reproduire, hi\u00e9rarchiser et affecter le travail sans deviner ce qui doit se produire.<\/p>\n<h2>Les d\u00e9finitions de base<\/h2>\n<h3>Qu'est-ce qu'un rapport de bogue&nbsp;?<\/h3>\n<p>Un bogue se produit lorsque le syst\u00e8me se comporte de mani\u00e8re incorrecte par rapport \u00e0 un point de r\u00e9f\u00e9rence convenu. Ce point de r\u00e9f\u00e9rence peut \u00eatre :<\/p>\n<ul>\n<li>Documentation ou interface publi\u00e9e (contrat API)<\/li>\n<li>Comportement stable pr\u00e9c\u00e9dent (une r\u00e9gression)<\/li>\n<li>Exactitude scientifique (p. ex. lois de conservation, invariants attendus, coh\u00e9rence des unit\u00e9s)<\/li>\n<li>Exigences clairement \u00e9nonc\u00e9es (y compris les tests ou les sp\u00e9cifications)<\/li>\n<\/ul>\n<p>En bref&nbsp;: un rapport de bogue d\u00e9crit une erreur qui doit \u00eatre corrig\u00e9e pour restaurer l'exactitude.<\/p>\n<h3>Qu'est-ce qu'une demande de fonctionnalit\u00e9&nbsp;?<\/h3>\n<p>Une demande de fonctionnalit\u00e9 propose une capacit\u00e9 ou une am\u00e9lioration qui rendrait le syst\u00e8me plus utile, flexible ou efficace, mais qui n'est pas requis pour l'exactitude du comportement actuel. Les exemples incluent :<\/p>\n<ul>\n<li>Prise en charge d'un nouveau type de condition aux limites<\/li>\n<li>Ajout d'un exportateur pour un nouveau format de fichier<\/li>\n<li>Am\u00e9liorer les performances au-del\u00e0 des objectifs actuels<\/li>\n<li>Ajout d'options UI\/CLI qui n'existent pas encore<\/li>\n<\/ul>\n<p>En bref&nbsp;: une demande de fonctionnalit\u00e9 d\u00e9crit quelque chose de nouveau que le syst\u00e8me devrait faire.<\/p>\n<h2>Liste de v\u00e9rification des d\u00e9cisions rapides<\/h2>\n<p>Si vous ne vous souvenez qu'une seule r\u00e8gle, utilisez ceci :<\/p>\n<ul>\n<li>Si le logiciel rompt une promesse, c'est un bogue.<\/li>\n<li>Si vous voulez une nouvelle promesse, c'est une fonctionnalit\u00e9.<\/li>\n<\/ul>\n<p>Posez-vous ces questions :<\/p>\n<ol>\n<li>Cela a-t-il d\u00e9j\u00e0 fonctionn\u00e9 dans le m\u00eame sc\u00e9nario&nbsp;? Si oui, probablement un bogue (\u00e9ventuellement une r\u00e9gression).<\/li>\n<li>Existe-t-il une documentation indiquant que le comportement devrait fonctionner&nbsp;? Si oui, bug.<\/li>\n<li>Le comportement est-il ambigu et vous proposez ce qu'il devrait \u00eatre&nbsp;? Probablement une fonctionnalit\u00e9 (ou une clarification des sp\u00e9cifications en premier).<\/li>\n<li>Le probl\u00e8me est-il que vous ne pouvez pas faire quelque chose du tout, mais que rien n'est \"mal\" avec les sorties existantes&nbsp;? probablement une fonctionnalit\u00e9.<\/li>\n<li>Produit-il des r\u00e9sultats incorrects, un crash, des donn\u00e9es de corruption ou des contraintes physiques&nbsp;? Bogue.<\/li>\n<\/ol>\n<h2>Comparaison c\u00f4te \u00e0 c\u00f4te<\/h2>\n<table class=\"custom-table\">\n<tbody><tr>\n<th>aspect<\/th>\n<th>Rapport de bogue<\/th>\n<th>Demande de fonctionnalit\u00e9<\/th>\n<\/tr>\n<tr>\n<td>Sens<\/td>\n<td>Quelque chose ne va pas par rapport au comportement attendu<\/td>\n<td>quelque chose de nouveau ou d'am\u00e9lioration est souhait\u00e9<\/td>\n<\/tr>\n<tr>\n<td>point de r\u00e9f\u00e9rence<\/td>\n<td>Docs, tests, versions ant\u00e9rieures, crit\u00e8res d'exactitude<\/td>\n<td>Besoins des utilisateurs, objectifs de recherche, am\u00e9liorations de l'utilisabilit\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Preuve typique<\/td>\n<td>\u00c9tapes de reproduction, journaux, sortie incorrecte, trace de plantage<\/td>\n<td>Cas d'utilisation, avantages, comportements propos\u00e9s, crit\u00e8res d'acceptation<\/td>\n<\/tr>\n<tr>\n<td>Pilotes prioritaires<\/td>\n<td>Gravit\u00e9, port\u00e9e, fr\u00e9quence, risque aux r\u00e9sultats<\/td>\n<td>Impact, demande, feuille de route strat\u00e9gique, effort<\/td>\n<\/tr>\n<tr>\n<td>Comment c'est \"fait\"<\/td>\n<td>correctif v\u00e9rifi\u00e9&nbsp;; r\u00e9ussir les tests&nbsp;; R\u00e9gression emp\u00each\u00e9e<\/td>\n<td>impl\u00e9ment\u00e9 les sp\u00e9cifications&nbsp;; document\u00e9&nbsp;; Utilisable de bout en bout<\/td>\n<\/tr>\n<\/tbody><\/table>\n<h2>Exemples de calcul scientifique<\/h2>\n<h3>Exemple 1 : r\u00e9sultats erron\u00e9s dus \u00e0 une non-concordance d'unit\u00e9s<\/h3>\n<p>Vous ex\u00e9cutez une simulation et remarquez qu'un param\u00e8tre document\u00e9 comme \"m\u00e8tres\" est trait\u00e9 comme des \"millim\u00e8tres\", en d\u00e9calant les r\u00e9sultats de 1&nbsp;000&nbsp;\u00d7. Si la documentation et le code ne sont pas d'accord et que les sorties sont incorrectes pour une utilisation document\u00e9e, il s'agit d'un rapport de bogue. Votre ticket doit inclure le param\u00e8tre, o\u00f9 il est document\u00e9, un cas minimal et des preuves de non-concordance.<\/p>\n<h3>Exemple&nbsp;2&nbsp;: Besoin d'un nouveau terme PDE ou d'un couplage<\/h3>\n<p>Vous souhaitez ajouter un terme d'\u00e9lectromigration \u00e0 un mod\u00e8le de transport existant. Le code actuel fonctionne comme pr\u00e9vu ; Cela n'inclut tout simplement pas cette physique. C'est une demande de fonctionnalit\u00e9. Votre ticket doit expliquer l'\u00e9quation gouvernante, les entr\u00e9es attendues et comment vous le valideriez (benchmarks ou limites analytiques).<\/p>\n<h3>Exemple&nbsp;3&nbsp;: \"C'est trop lent\"<\/h3>\n<p>Les performances peuvent \u00eatre soit. Si le code fonctionnait en 5 minutes et prend d\u00e9sormais 50 minutes sur la m\u00eame configuration, c'est un bogue (une r\u00e9gression des performances). Si le code a toujours pris 50 minutes et que vous souhaitez qu'il en soit 5, c'est une demande de fonctionnalit\u00e9 (travail d'optimisation), \u00e0 moins que la lenteur ne provienne d'un comportement inattendu (comme un solveur bloqu\u00e9 en raison d'un probl\u00e8me de convergence).<\/p>\n<h3>Exemple&nbsp;4&nbsp;: message d'erreur d\u00e9routant<\/h3>\n<p>Un message d'erreur d\u00e9routant est g\u00e9n\u00e9ralement une demande de fonctionnalit\u00e9 (am\u00e9lioration UX), \u00e0 moins que le message soit factuellement incorrect ou masque l'erreur r\u00e9elle d'une mani\u00e8re qui emp\u00eache le diagnostic. Dans de nombreuses \u00e9quipes, \"Am\u00e9liorer le message d'erreur\" est suivi comme une am\u00e9lioration, pas comme un bogue.<\/p>\n<h2>Les erreurs de classification courantes et comment les corriger<\/h2>\n<h3>Mauvaise classification&nbsp;: \"\u00e7a plante\" (mais uniquement avec une entr\u00e9e non valide)<\/h3>\n<p>Si le logiciel se bloque lorsqu'il a une entr\u00e9e non valide, il peut s'agir d'un bogue si le programme \u00e9choue avec \u00e9l\u00e9gance (erreur d'effacement, pas de fichiers corrompus). Si un plantage est attendu parce que l'entr\u00e9e est en dehors des contraintes prises en charge et que l'outil documente d\u00e9j\u00e0 cela, il pourrait s'agir d'une demande d'am\u00e9lioration pour am\u00e9liorer la validation et la messagerie.<\/p>\n<h3>Mauvaise classification&nbsp;: \"le r\u00e9sultat semble faux\" (mais les attentes ne sont pas claires)<\/h3>\n<p>Si le ticket ne d\u00e9finit pas ce que signifie \"droit\", les mainteneurs ne peuvent pas d\u00e9cider de bogue par rapport \u00e0 la fonctionnalit\u00e9. Dans ce cas, inscrivez le ticket sous forme de question plus une attente propos\u00e9e, et joignez des \u00e9l\u00e9ments de preuve. Souvent, la meilleure premi\u00e8re \u00e9tape est la suivante&nbsp;: \"clarifier le comportement attendu\" - puis refiler en tant que bogue ou fonctionnalit\u00e9 une fois confirm\u00e9.<\/p>\n<h3>Mauvaise classification&nbsp;: \"Veuillez ajouter l'option X\" (mais le code la prend d\u00e9j\u00e0 en charge)<\/h3>\n<p>Il ne s'agit ni d'une fonctionnalit\u00e9 ni d'un bogue dans le comportement de base - il peut s'agir d'un \u00e9cart de documentation. Si la capacit\u00e9 existe mais est difficile \u00e0 d\u00e9couvrir, cr\u00e9ez un ticket DOC (ou une am\u00e9lioration ax\u00e9e sur la convivialit\u00e9).<\/p>\n<h2>Comment r\u00e9diger un rapport de bogue de haute qualit\u00e9<\/h2>\n<p>Un bon rapport de bogue facilite la reproduction, le diagnostic et la v\u00e9rification du correctif.<\/p>\n<h3>Mod\u00e8le de rapport de bogue<\/h3>\n<ul>\n<li>R\u00e9sum\u00e9&nbsp;: Une phrase d\u00e9crivant le comportement incorrect<\/li>\n<li>Environnement : OS, version Python\/C++, version\/commit de package, versions MPI\/solveur, le cas \u00e9ch\u00e9ant<\/li>\n<li>\u00c9tapes \u00e0 reproduire : \u00e9tapes minimales, fichiers d'entr\u00e9e minimaux, extrait de code minimal<\/li>\n<li>R\u00e9sultat attendu&nbsp;: que devrait-il se passer et pourquoi (Docs\/Tests\/Comportement pr\u00e9c\u00e9dent)<\/li>\n<li>R\u00e9sultat r\u00e9el&nbsp;: que se passe-t-il \u00e0 la place (logs, trace de pile, captures d'\u00e9cran, diff de sortie)<\/li>\n<li>Impact&nbsp;: gravit\u00e9 (crash, mauvaise science, interface utilisateur mineure), fr\u00e9quence, solution de contournement, le cas \u00e9ch\u00e9ant<\/li>\n<\/ul>\n<h3>Exemple de rapport de bogue (court)<\/h3>\n<p>R\u00e9sum\u00e9&nbsp;: L'exemple de diffusion \u00e9choue avec Dirichlet&nbsp;BC sur la grille 3D.<\/p>\n<ul>\n<li>Attendu : la simulation s'ex\u00e9cute et produit des valeurs de champ stables comme en 2D.<\/li>\n<li>R\u00e9el&nbsp;: le solveur diverge apr\u00e8s n&nbsp;\u00e9tapes&nbsp;; Les valeurs deviennent Nan.<\/li>\n<li>Preuve&nbsp;: Fournissez un script, des valeurs de param\u00e8tres et une sortie de journal minimales.<\/li>\n<\/ul>\n<h2>Comment r\u00e9diger une demande de fonctionnalit\u00e9 forte<\/h2>\n<p>Une demande de fonctionnalit\u00e9s fortes se lit comme une mini-note de conception&nbsp;: elle explique pourquoi la capacit\u00e9 est importante, ce \u00e0 quoi ressemble le \"fait\" et comment vous la v\u00e9rifierez.<\/p>\n<h3>Mod\u00e8le de demande de fonctionnalit\u00e9<\/h3>\n<ul>\n<li>D\u00e9claration du probl\u00e8me&nbsp;: ce que vous ne pouvez pas faire aujourd'hui<\/li>\n<li>Cas d'utilisation&nbsp;: qui en a besoin et pourquoi (flux de travail de recherche, module d'enseignement, pipeline de production)<\/li>\n<li>Solution propos\u00e9e&nbsp;: comportement de haut niveau, modifications de l'interface utilisateur\/API, des valeurs par d\u00e9faut<\/li>\n<li>Crit\u00e8res d'acceptation&nbsp;: ce qui doit \u00eatre vrai pour le consid\u00e9rer comme termin\u00e9<\/li>\n<li>Validation : Comment tester (benchmarks, tests unitaires, solutions analytiques, suite de r\u00e9gression)<\/li>\n<li>Alternatives prises en compte&nbsp;: solutions de contournement ou autres approches<\/li>\n<\/ul>\n<h3>Exemple de demande de fonctionnalit\u00e9 (court)<\/h3>\n<p>Demande : Ajoutez une option pour exporter l'\u00e9tat de simulation vers un format de visualisation standardis\u00e9 \u00e0 des intervalles configurables.<\/p>\n<ul>\n<li>Cas d'utilisation&nbsp;: ex\u00e9cutions importantes sur HPC o\u00f9 une visualisation interm\u00e9diaire est n\u00e9cessaire pour la surveillance.<\/li>\n<li>Acceptation : exporter les travaux pour les grilles 2D\/3D ; Inclut les m\u00e9tadonn\u00e9es (pas de temps, unit\u00e9s) ; Pas de ralentissement majeur.<\/li>\n<li>Validation&nbsp;: comparez les champs export\u00e9s avec les tableaux en m\u00e9moire&nbsp;; Assurez-vous que le rechargement reproduit l'\u00e9tat dans la tol\u00e9rance.<\/li>\n<\/ul>\n<h2>Quand un billet devrait devenir deux<\/h2>\n<p>De nombreux probl\u00e8mes du monde r\u00e9el m\u00e9langent des bogues et des fonctionnalit\u00e9s. Leur division acc\u00e9l\u00e8re souvent les progr\u00e8s.<\/p>\n<ul>\n<li>S'il y a un crash (bug) et aussi un d\u00e9sir d'un message plus agr\u00e9able (fonctionnalit\u00e9), classez deux tickets.<\/li>\n<li>S'il y a un probl\u00e8me d'exactitude (bug) ainsi qu'une demande d'appui \u00e0 un nouveau r\u00e9gime, s\u00e9parez le \"comportement actuel\" de \"la capacit\u00e9 d'extension\".<\/li>\n<li>Si la demande est \u00ab acc\u00e9l\u00e9r\u00e9e \u00bb mais que vous soup\u00e7onnez une r\u00e9gression, enregistrez un bogue pour la r\u00e9gression et une fonctionnalit\u00e9 pour une optimisation ult\u00e9rieure.<\/li>\n<\/ul>\n<p>Le fractionnement des tickets permet aux \u00e9quipes de fermer rapidement le bogue et de planifier l'am\u00e9lioration de mani\u00e8re raisonnable.<\/p>\n<h2>Conseils de triage pour les mainteneurs et les prospects<\/h2>\n<h3>Utiliser des \u00e9tiquettes et un court commentaire de d\u00e9cision<\/h3>\n<p>Lorsqu'un ticket arrive ambigu, ajoutez un court commentaire qui verrouille la classification :<\/p>\n<ul>\n<li>\"Classification de bug parce que le comportement contredit la section de documentation X.\"<\/li>\n<li>\"Classification de la demande de fonctionnalit\u00e9, car cela ajoute une nouvelle fonctionnalit\u00e9 de solveur qui n'est actuellement pas prise en charge.\"<\/li>\n<\/ul>\n<h3>Exiger un minimum de crit\u00e8res d'acceptation pour les fonctionnalit\u00e9s<\/h3>\n<p>Les demandes de fonctionnalit\u00e9s \u00e9chouent lorsque \"Termin\u00e9\" n'est pas clair. Demandez t\u00f4t les crit\u00e8res d'acceptation&nbsp;: quelle sortie, quelle interface, quels tests, quel exemple. Une fonctionnalit\u00e9 sans crit\u00e8res d'acceptation est en fait un \u00e9l\u00e9ment de la liste de souhaits.<\/p>\n<h3>Transformez les questions r\u00e9currentes en t\u00e2ches de documentation<\/h3>\n<p>Si plusieurs \u00ab&nbsp;demandes de fonctionnalit\u00e9s&nbsp;\u00bb sont en fait des demandes de conseils (\u00ab&nbsp;Comment puis-je...&nbsp;?&nbsp;\u00bb), capturez-les sous forme d'am\u00e9liorations Docs. Ceci est particuli\u00e8rement courant dans les biblioth\u00e8ques scientifiques o\u00f9 les capacit\u00e9s existent mais ne sont pas \u00e9videntes.<\/p>\n<h2>Mod\u00e8les pratiques que vous pouvez copier dans les tickets<\/h2>\n<h3>Classificateur \u00e0 une ligne<\/h3>\n<p>Utilisez-le comme premi\u00e8re ligne de la description de votre billet&nbsp;:<\/p>\n<ul>\n<li>Bug&nbsp;: \"Le comportement observ\u00e9 contredit le comportement attendu d\u00e9fini par [docs\/test\/previous version].\"<\/li>\n<li>Fonctionnalit\u00e9&nbsp;: \"Nouvelle fonctionnalit\u00e9 n\u00e9cessaire pour prendre en charge [use case], non disponible actuellement.\"<\/li>\n<\/ul>\n<h3>Crit\u00e8res d'acceptation D\u00e9marrage d\u00e9fini pour les fonctionnalit\u00e9s<\/h3>\n<ul>\n<li>API&nbsp;: nouvelle option\/param\u00e8tre document\u00e9 avec les valeurs par d\u00e9faut<\/li>\n<li>Exemple : exemple de travail minimal inclus dans les documents\/exemples<\/li>\n<li>Tests : au moins un test automatis\u00e9 couvre le comportement principal<\/li>\n<li>Compatibilit\u00e9 ascendante&nbsp;: les scripts existants continuent de s'ex\u00e9cuter sans modification (ou \u00e9tapes de migration document\u00e9es)<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Bug reports restore trust; Les demandes de fonctionnalit\u00e9s d\u00e9veloppent la fonctionnalit\u00e9. Les deux sont essentiels dans les logiciels scientifiques, mais ils ne r\u00e9ussissent que lorsqu'ils sont \u00e9crits avec la bonne intention et les preuves. Si vous associez des bogues \u00e0 un point de r\u00e9f\u00e9rence et associez des fonctionnalit\u00e9s \u00e0 un cas d'utilisation clair avec des crit\u00e8res d'acceptation, vous r\u00e9duirez les frictions de triage, acc\u00e9l\u00e9rez le d\u00e9veloppement et rendez les versions plus pr\u00e9visibles, ce qui am\u00e9liore finalement la vitesse de recherche et la fiabilit\u00e9 des r\u00e9sultats.<\/p>\n"},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 7<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>Dans les logiciels scientifiques et d&rsquo;ing\u00e9nierie, la plupart des frustrations ne proviennent pas de probl\u00e8mes difficiles &#8211; cela provient d&rsquo;\u00e9nonc\u00e9s de probl\u00e8mes peu clairs. Un ticket qui \u00ab\u00a0semble mal\u00a0\u00bb peut en fait d\u00e9crire une capacit\u00e9 manquante. Une demande de \u00ab\u00a0petite am\u00e9lioration\u00a0\u00bb peut masquer un d\u00e9faut qui corrompt les r\u00e9sultats. Lorsque les \u00e9quipes classent mal les [&hellip;]<\/p>\n","protected":false,"raw":""},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"fr_FR","_original_post":"https:\/\/new.matforge.org\/?p=50","iawp_total_views":1,"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1177","post","type-post","status-publish","format-standard","hentry","category-issue-tracking-tickets-technical-requests","fr-FR"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence (avec des exemples)<\/title>\n<meta name=\"description\" content=\"Apprenez \u00e0 informer les demandes de fonctionnalit\u00e9s \u00e0 partir de rapports de bogues, \u00e0 r\u00e9diger de meilleurs tickets et \u00e0 acc\u00e9l\u00e9rer le triage avec des exemples pratiques, un tableau de comparaison et des mod\u00e8les.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence (avec des exemples)\" \/>\n<meta property=\"og:description\" content=\"Apprenez \u00e0 informer les demandes de fonctionnalit\u00e9s \u00e0 partir de rapports de bogues, \u00e0 r\u00e9diger de meilleurs tickets et \u00e0 acc\u00e9l\u00e9rer le triage avec des exemples pratiques, un tableau de comparaison et des mod\u00e8les.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/\" \/>\n<meta property=\"og:site_name\" content=\"matforge.org\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-21T14:25:42+00:00\" \/>\n<meta name=\"author\" content=\"Priya Nair\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Nair\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/\"},\"author\":{\"name\":\"Priya Nair\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/2effd7bc155a5e6357f31dac970c5795\"},\"headline\":\"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence\",\"datePublished\":\"2026-08-21T14:25:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/\"},\"wordCount\":2327,\"commentCount\":0,\"articleSection\":[\"Suivi des probl\u00e8mes, billets &amp; Demandes techniques\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/\",\"url\":\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/\",\"name\":\"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence (avec des exemples)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\"},\"datePublished\":\"2026-08-21T14:25:42+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/2effd7bc155a5e6357f31dac970c5795\"},\"description\":\"Apprenez \u00e0 informer les demandes de fonctionnalit\u00e9s \u00e0 partir de rapports de bogues, \u00e0 r\u00e9diger de meilleurs tickets et \u00e0 acc\u00e9l\u00e9rer le triage avec des exemples pratiques, un tableau de comparaison et des mod\u00e8les.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/matforge.org\\\/fr\\\/feature-requests-vs-bug-reports-knowing-the-difference\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/matforge.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#website\",\"url\":\"https:\\\/\\\/matforge.org\\\/\",\"name\":\"matforge.org\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/matforge.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/matforge.org\\\/#\\\/schema\\\/person\\\/2effd7bc155a5e6357f31dac970c5795\",\"name\":\"Priya Nair\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g\",\"caption\":\"Priya Nair\"},\"sameAs\":[\"http:\\\/\\\/matforge.org\"],\"url\":\"https:\\\/\\\/matforge.org\\\/author\\\/priya-nair\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence (avec des exemples)","description":"Apprenez \u00e0 informer les demandes de fonctionnalit\u00e9s \u00e0 partir de rapports de bogues, \u00e0 r\u00e9diger de meilleurs tickets et \u00e0 acc\u00e9l\u00e9rer le triage avec des exemples pratiques, un tableau de comparaison et des mod\u00e8les.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/","og_locale":"fr_FR","og_type":"article","og_title":"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence (avec des exemples)","og_description":"Apprenez \u00e0 informer les demandes de fonctionnalit\u00e9s \u00e0 partir de rapports de bogues, \u00e0 r\u00e9diger de meilleurs tickets et \u00e0 acc\u00e9l\u00e9rer le triage avec des exemples pratiques, un tableau de comparaison et des mod\u00e8les.","og_url":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/","og_site_name":"matforge.org","article_published_time":"2026-08-21T14:25:42+00:00","author":"Priya Nair","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Priya Nair","Dur\u00e9e de lecture estim\u00e9e":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/#article","isPartOf":{"@id":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/"},"author":{"name":"Priya Nair","@id":"https:\/\/matforge.org\/#\/schema\/person\/2effd7bc155a5e6357f31dac970c5795"},"headline":"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence","datePublished":"2026-08-21T14:25:42+00:00","mainEntityOfPage":{"@id":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/"},"wordCount":2327,"commentCount":0,"articleSection":["Suivi des probl\u00e8mes, billets &amp; Demandes techniques"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/","url":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/","name":"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence (avec des exemples)","isPartOf":{"@id":"https:\/\/matforge.org\/#website"},"datePublished":"2026-08-21T14:25:42+00:00","author":{"@id":"https:\/\/matforge.org\/#\/schema\/person\/2effd7bc155a5e6357f31dac970c5795"},"description":"Apprenez \u00e0 informer les demandes de fonctionnalit\u00e9s \u00e0 partir de rapports de bogues, \u00e0 r\u00e9diger de meilleurs tickets et \u00e0 acc\u00e9l\u00e9rer le triage avec des exemples pratiques, un tableau de comparaison et des mod\u00e8les.","breadcrumb":{"@id":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/matforge.org\/fr\/feature-requests-vs-bug-reports-knowing-the-difference\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/matforge.org\/"},{"@type":"ListItem","position":2,"name":"Demandes de fonctionnalit\u00e9s par rapport aux rapports de bogues\u00a0: conna\u00eetre la diff\u00e9rence"}]},{"@type":"WebSite","@id":"https:\/\/matforge.org\/#website","url":"https:\/\/matforge.org\/","name":"matforge.org","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/matforge.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/matforge.org\/#\/schema\/person\/2effd7bc155a5e6357f31dac970c5795","name":"Priya Nair","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f11e168d4cd2f1eff83cbb851d6cff42d81d88bb59d8831ee77468aa4a5eea88?s=96&d=mm&r=g","caption":"Priya Nair"},"sameAs":["http:\/\/matforge.org"],"url":"https:\/\/matforge.org\/author\/priya-nair\/"}]}},"_links":{"self":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1177","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/comments?post=1177"}],"version-history":[{"count":1,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1177\/revisions"}],"predecessor-version":[{"id":1326,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/posts\/1177\/revisions\/1326"}],"wp:attachment":[{"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/media?parent=1177"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/categories?post=1177"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/matforge.org\/wp-json\/wp\/v2\/tags?post=1177"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}