Heisenbug

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 21. marraskuuta 2016 tarkistetusta versiosta . tarkastukset vaativat 30 muokkausta .

Heisenbug on slangitermi , jota käytetään ohjelmoinnissa  kuvaamaan ohjelmistovirhettä , joka katoaa tai muuttaa ominaisuuksiaan, kun se havaitaan. Tätä sanaa, toisin kuin sana " bug " ( englanniksi bug ), käytetään harvoin venäjäksi. Ei täysin identtinen, mutta merkitykseltään melko lähellä venäläistä termiä "kelluva virhe".  

Esimerkkejä voivat olla virheet, jotka näkyvät ohjelman lopullisessa versiossa, mutta jotka eivät näy virheenkorjaustilassa , tai ajoitusvirheet monisäikeisessä sovelluksessa.

Nimen alkuperä

Tämä nimi on sanaleikkiä ja tulee kvanttimekaniikan termistä " Heisenbergin epävarmuusperiaate " , joka arkipäivän tasolla ymmärretään havainnoinnin tosiasian seurauksena tapahtuvaksi odottamattomaksi muutokseksi havaittavassa objektissa.

ACM Queuen [1] haastattelussa Bruce Lindsay sanoo, että hän oli läsnä, kun termiä käytettiin ensimmäisen kerran merkityksessä "katso häneen - ja hän katoaa" (vertaa Heisenbergin sanoihin , joka sanoi: " Tarkemmin katsot yhtä asiaa, sitä vähemmän kiinnität huomiota johonkin muuhun.

Mahdolliset syyt

Yleensä nämä ovat matalan tason ongelmia:

Optimoijan virheet:

Taistelumenetelmät

Heisenbugeja on erittäin vaikea etsiä, koska ne ilmenevät satunnaisten tekijöiden mukaan ja toistuvat epävakaina (monisäikeisen järjestelmän tilan analysoinnin monimutkaisuus vaikuttaa myös). Siksi he yrittävät katkaista ne suunnitteluvaiheessa ja harkitsevat synkronointimenettelyjä.

Samankaltaisia ​​käsitteitä

Näitä sanoja, samoin kuin "heisenbag", ei käytännössä löydy venäjästä.

Borbag ​​( englanniksi  Bohr bug ) on ​​bugi, joka, toisin kuin Heisenbug, ei katoa eikä muuta ominaisuuksiaan, kun yrität havaita sitä, mikä on samanlainen kuin Niels Bohrin elektronikiertomallin stabiilius . Samanlainen venäjänkielinen analogi on "stabiili" tai "kestävä" bugi [2] , "systeeminen virhe".

Mandelbug on bugi , jonka käyttäytyminen on  niin monimutkaista, että se näyttää kaoottiselta [3] . Nimi tulee fraktaaligeometrian perustajan Benoit Mandelbrotin nimestä . On kuitenkin syytä huomata (periaatteella, joka on samanlainen kuin Turingin testi ), että jos ei ole mahdollista erottaa vikaa, jonka käyttäytyminen näyttää kaoottiselta, ja bugi, jonka käyttäytyminen on todella kaoottista, ei ole mitään järkeä erottaa toisistaan Mandelbug ja Heisenbug [4] . Jotkut käyttävät termiä mandelbug kuvaamaan virhettä, jonka käyttäytyminen ei vaikuta todella kaoottiselta, mutta on niin monimutkaista, että se vaatii ohjelman uudelleenkirjoittamista tyhjästä sen korjaamiseksi. Esimerkki tällaisesta virheestä on järjestelmän suunnittelussa tehty perustavanlaatuinen virhe [5] .

Schroedinbug [6] ( eng.  schroedin bug - Schrödingerin kissalla  tehdyn ajatuskokeilun kunniaksi ) on bugi, joka ei ilmene millään tavalla, vaan syntyy yhtäkkiä, jos joku törmää siihen lähdekoodissa tai yrittää käyttää ohjelmaa epätavallisissa olosuhteissa ja ymmärtää, että järjestelmä ei voisi toimia ollenkaan tällaisen virheen esiintyessä. Sen jälkeen ohjelma lakkaa toimimasta ollenkaan, kunnes virhe on korjattu. Vaikka se kuulostaa uskomattomalta, jotkut ohjelmat sisältävät tällaisia ​​virheitä.

Hindenbug [7] [8] ( eng.  hinden bug - Hindenburgin ilmalaivan katastrofin nimen jälkeen ) on bugi, jolla on katastrofaaliset seuraukset, esimerkiksi tietojen täydellinen tuhoutuminen.

Higgs-bugson [8] [9] ( eng.  higgs-bugson - Higgsin bosoniksi kutsutun hiukkasen kunniaksi ) on bugi, jonka olemassaolo ennustetaan (useimmiten epäsuorien tietojen tai yksittäisen käyttäjän raporttien mukaan), mutta joka on erittäin vaikeaa, ellei mahdotonta. , lisääntyä keinotekoisesti kehitys- tai testausolosuhteissa. Termiä voidaan käyttää myös sellaisen virheen yhteydessä, joka on ilmeinen koodissa (matemaattinen todistus), mutta jota ei ole koskaan havaittu todellisissa olosuhteissa.

Muistiinpanot

  1. Bruce Lindsay. Keskustelu Bruce Lindsayn kanssa  (englanniksi)  // ACM Queue : aikakauslehti. - 2004. - marraskuu ( nro 8 ). Arkistoitu alkuperäisestä 4. helmikuuta 2022.
  2. Jargon-tiedosto. Bohr-bug Arkistoitu 12. tammikuuta 2013 Wayback Machinessa 
  3. Uuden hakkerin sanakirja Arkistoitu 8. syyskuuta 2013 Wayback Machinessa  .
  4. M. Grottke ja KS Trivedi, Ohjelmistovirheet, ohjelmistojen vanheneminen ja ohjelmistojen nuorentaminen. Japanin luotettavuustekniikan yhdistyksen lehti, numero 27, numero 7, 2005, sivut 425-438.
  5. Michael Grottke, Kishor S. Trivedi, "Vihkojen torjunta: poista, yritä uudelleen, replikoi ja nuorentaa Arkistoitu 27. maaliskuuta 2010 Wayback Machinessa "  . Tietokone, numero 40, numero 2, helmikuu 2007, sivut 107-109, doi: 10.1109/MC.2007.55
  6. Jargon-tiedosto. Schroedinbug Arkistoitu 8. syyskuuta 2013 Wayback Machinessa 
  7. Hindenbug . wiki.c2.com. Haettu 24. lokakuuta 2019. Arkistoitu alkuperäisestä 8. elokuuta 2020.
  8. ↑ 12 Matt Lynley . 20 hauskaa ohjelmointisalasanaa, joita sinun tulee käyttää puhuessasi insinöörien kanssa . liiketoiminnan sisäpiiriläinen. Haettu 24. lokakuuta 2019. Arkistoitu alkuperäisestä 24. lokakuuta 2019.
  9. Uusi ohjelmointisalasana . blog.codinghorror.com. Haettu 24. lokakuuta 2019. Arkistoitu alkuperäisestä 4. marraskuuta 2019.