En programmation informatique, un bug logiciel inhabituel est un bug considéré comme très difficile à détecter et à réparer. Il en existe plusieurs types souvent désignés d'après le nom de scientifiques qui ont découvert des principes non intuitifs. Selon la nature, la probabilité d'apparition ou la gravité, on trouve ainsi : Schrödinbug ; Heisenbug ; Bohr bug ; Mandelbug. Un schrödinbug (ou schroedinbug, graphie beaucoup plus courante en anglais) est un bug qui n'est pas découvert et non gênant pour les utilisateurs, mais qui apparaît après que quelqu'un a relu le code source ou utilise le logiciel d'une façon non habituelle. Un autre cas de schrödinbug peut se produire lorsque le programme de débogage comporte lui-même un léger bug, et, lorsqu'il est utilisé pour tester un programme, donne le résultat qu'un bug est présent dans le programme testé, alors qu'en mode de fonctionnement effectif, ce bug n'existe pas. À l'inverse, il arrive qu'un bug, détecté lors d'un traitement effectif, n'apparaisse plus lorsqu'il est testé au moyen d'un programme de débogage. Le mot schrödinbug est un mot-valise composé de « Schrödinger », nom du physicien inventeur du concept du Chat de Schrödinger, et de « en ». Un Heisenbug est un bug difficile à localiser parce qu'il ne se manifeste pas lorsque des outils de détection sont utilisés pour le rechercher. En électronique, le terme traditionnel est effet de sonde. En pratique, on retrouve l'un des trois cas suivants : le programme tourne sous le débogueur, mais pas sur la ligne de commande le programme fonctionne compilé en mode normal, mais pas lors d'une compilation avec optimisation le programme marche quand on rajoute des affichages pour déboguer, mais pas quand on les enlève Une cause courante est la présence d'une situation de compétition, un ralentissement de tout ou partie de l'exécution pouvant conduire à déséquilibrer la compétition, qui est alors masquée, et le problème avec.
Rachid Guerraoui, Mahsa Taziki, El Mahdi El Mhamdi, Rhicheek Patra, Georgios Damaskinos