# Système de suivi des bugs

Un système de suivi des bugs (de l'anglais bug tracking system) est un logiciel qui permet d'effectuer un suivi des bugs signalés dans le cadre d'un projet de développement de logiciel. Il permet d'aider les utilisateurs et les développeurs à améliorer la qualité d'un logiciel. Les utilisateurs soumettent leurs demandes d'assistance dans le logiciel. Les développeurs sont alors toujours au fait des bugs rencontrés.
La plupart des systèmes de suivi des bugs, notamment ceux utilisés pour les projets de logiciels libres, permettent aux utilisateurs de rentrer directement les problèmes rencontrés au niveau :
* technique ;
* de respect des règles de gestion : réglementation, etc.
* fonctionnel.
Mais également des demandes d'amélioration (RFE) ou de nouvelles fonctionnalités. À l'origine, ce type de logiciel était conçu pour suivre les incidents ou anomalies d'un projet. Désormais, certains systèmes de suivi des bugs sont configurables et permettent de gérer tous types de tickets ou artefacts : tâches, demandes de support, exigences, contacts...
Certains sont utilisés uniquement en interne dans certaines entreprises ou organisations qui développent des logiciels. Généralement les systèmes de suivi des bugs sont également intégrés à d'autres applications de suivi de projet logiciel : gestion de versions, intégration continue, outils de gestion de planning des projets.
Disposer d'un système de suivi des bugs est extrêmement profitable dans le développement d'un logiciel, et ils sont utilisés fréquemment par les compagnies développant des logiciels.

## Composants

Un composant majeur d'un système de suivi des bugs est une base de données qui enregistre les caractéristiques des bugs connus. Ces caractéristiques peuvent inclure le nombre de fois que le bug a été reporté, sa rigueur, le comportement problématique, et comment le reproduire, ainsi que l'identité de la personne qui a reporté le bug, et le programmeur chargé de le résoudre.
Un système de suivi des bugs typique utilise le concept de « cycle de vie d'un bug » : on suit un bug tout au long de son traitement jusqu'à sa résolution. Il peut aussi permettre aux administrateurs de modifier le statut et les droits sur le ticket de suivi, voire de le supprimer. Un mail peut-être envoyé automatiquement aux participants à chaque modification.

### Principe des tickets

Le plus souvent, le système utilise un dispositif de ticket qui permet à l'utilisateur qui a indiqué un défaut de suivre l'évolution de son traitement.

## Usage

Dans une entreprise, un système de suivi des bugs peut être utilisé pour générer des rapports sur la productivité des programmeurs. Toutefois, ces rapports sont parfois imprécis, puisque des bugs différents ont une sévérité et une complexité variables. La rigueur d'un bug peut ne pas être en relation avec sa complexité : il peut y avoir plusieurs points de vue parmi les développeurs et les architectes.
Un système de suivi des bugs local (local bug tracker ou LBT) est habituellement un programme utilisé par les professionnels chargés de l'assistance technique pour suivre les problèmes communiqués aux développeurs. L'utilisation d'un LBT permet aux professionnels de l'assistance technique de suivre les bugs dans leur « propre langage » et non dans le « langage des développeurs ». De plus, elle permet de suivre des informations spécifiques sur les utilisateurs qui ont signalé le bug, ce qui n'est pas toujours utile côté développement (ainsi, il y a deux systèmes de traçage quand un LBT est utilisé).

## Système de suivi des bugs distribué

Certains systèmes de suivi des bugs sont conçus pour être utilisés avec un logiciel de contrôle des versions distribué. Ces systèmes permettent un rapport de bug plus facilement lisible, ajouté ou modifié en base de données lorsque le développeur n'est pas disponible.
Bien que les wikis et les systèmes de suivi des bugs soient, par convention, vus comme deux types de logiciels distincts, Ikiwiki peut aussi être utilisé en tant que distributed bug tracker (système décentralisé de suivi des bugs). Il peut gérer aussi bien les documents que le code, de manière intégrée. Toutefois, sa fonction de recherche n'est pas aussi avancée que celle des systèmes de suivi des bugs centralisés.

## Association à un système de dépôt

Un gestionnaire de suivi peut être relié à un logiciel de gestion de versions ; cela permet d'associer la base de données des défauts à celle des codes sources utilisés dans le projet.

## Comparaison des systèmes de suivi des bugs

| Nom | Éditeur | Licence | Langage de programmation | Base de données | Date création | Dernière version |
| CopyPark | Suivi SAV Bureautique et Info | Propriétaire | SQL | MySQL ou SQL | 1999 | 15 janvier 2015 |
| Flex Tracker | Flex Coding | Propriétaire | PHP | MySQL | 2014 | 25 août 2014 |
| B-Hive | Bee Software | Propriétaire | PHP | MySQL | 2008 | 13 janvier 2012 |
| Bontq | Assembla | Propriétaire | Ruby | MySQL | 2008 | |
| Tuleap | Enalean | GPLv2 | PHP | MySQL | 2004 | novembre 2017 v. 9.14 |
| Bugzilla | Mozilla Foundation | MPL | Perl | MySQL, Oracle, PostgreSQL | 19 septembre 1998 | 16 février 2018 v. 5.1.2 |
| Mantis Bug Tracker | Multiples (contributions open source) | GPLv2 | PHP | ADOdb (MS SQL Server, MySQL, PostgreSQL, etc.) | 2000 | 2 janvier 2019 v. 2.19.0 |
| Bugs - Tiny issues | Multiples (contributions open source) | GPLv2 | PHP | MySQL | 2010 | 23 septembre 2018 v. 1.5.2b |
| Phabricator | Phacility, Inc | Apache v2 | PHP | | 2010 | 19 novembre 2017 v. 2017.46 |
| Plain Ticket (en) | Turbine interactive | Propriétaire | Java | MySQL | 2011 | 7 janvier 2014 |
| Redmine | Jean-Philippe Lang | GPLv2 | Ruby on Rails | MySQL, PostgreSQL, SQLite | 2006 | 9 décembre 2018 v 4.0.0 |
| Trac | Edgewall Software | Nouvelle Licence BSD | Python | MySQL, PostgreSQL, SQLite | 1er octobre 2006 | 18 décembre 2016 v. 1.2 |
| Codendi | Hequality | Hequality / GPL | PHP | MariaDB | 2001 | 15 janvier 2020 V7.0 |
| Jira | Atlassian | Propriétaire, Gratuit pour un usage non commercial | Java | MS SQL Server, MySQL, Oracle, PostgreSQL | 2003 | 19 mars 2018 v. 7.8.1 |
| Flyspray | N.R. | LGPL | PHP | MySQL, PostgreSQL | 2003 | 17 avril 2019 v. 1.0 RC9 |
| The Bug Genie (en) | N.R. | MPL 1.1 | PHP | MySQL, PostgreSQL | 2002 | 28 décembre 2016 v. 4.1.13 |
| Request Tracker (en) | Best Practical Solutions, LLC | GPL | Perl | MySQL, Oracle, PostgreSQL, SQLite | 13 octobre 1999 | 18 Nov 2013 v. 4.2.1 |
| Zendesk | Zendesk | Propriétaire | | | 2006 | |
| NewWayService | OroLogic | Propriétaire | PHP | MySQL | 1996 | 1er mai 2013 v. 5.0 |
| GLPI | TECLIB | GPLv2 | PHP | MySQL | 2002 | 2 mars 2021 v. 9.5.4 |
| ServiceNow | ServiceNow | Propriétaire | | | | |
| YouTrack | JetBrains | Propriétaire | Java | | 2012 | 2017.04 |
| Apache Bloodhound | Apache Software Foundation | Apache License | Python | MySQL | 2013 | 11 décembre 2014 v. 0.8 |
| uBugtrack | WilSoftech | Propriétaire | PHP | MySQL | 2016 | 1er février 2016 |
| GestSup | GestSup | GPLv3 | PHP | MySQL | |
| Usersnap | Usersnap GmbH | Propriétaire | Python, JavaScript | MongoDB | 2013 | |