Le débogage est une tâche que les développeurs effectuent pour détecter et éliminer les erreurs (également appelées bogues) de leurs programmes. Il s'effectue à l'aide d'outils spécialisés qui permettent de voir ce qui se passe à l'intérieur d'un programme en cours d'exécution. Parfois, la partie la plus difficile du travail de débogage consiste à déterminer précisément le composant, la commande ou l'instruction à l'origine d'une erreur. Pour ce faire, les développeurs agissent comme un médecin qui doit poser un diagnostic : ils analysent les symptômes et, si nécessaire, effectuent des études pour identifier la source du problème. L'équivalent des études médicales pour le développement de logiciels est un outil de surveillance qui fournit des informations sur le fonctionnement interne d'un site web.