Ohjelmointivirhe

Vuonna 1947 ryhmä Harvard Mark II -tietokonetta testaavia insinöörejä löysi sen sisältä yöperhosen. Operaattorit kertoivat poistosta, jolloin syntyi termi debugata.[1][2]

Ohjelmointivirhe (puhekielessä bugi) on tietokoneohjelman lähdekoodissa oleva virhe. Virheet jaetaan kahteen pääluokkaan: syntaksivirheet ja semanttiset virheet. Syntaksivirheet paljastuvat heti, koska kääntäjä ei pysty kääntämään sellaista ohjelmakoodia eikä ohjelmointikielen tulkki voi tulkaten suorittaa sellaista ohjelmakäskyä. Semanttinen virhe saa ohjelman toimimaan väärin jossain tilanteessa. Virheellinen toiminta saattaa johtua myös kääntäjän tai tulkin virheellisestä toiminnasta. Väärä toiminta määritellään tapauskohtaisesti ja joissain tapauksissa voi olla epäselvää, onko yllättävä toiminta virheellistä. Ohjelmointivirhe tapahtuu ohjelmointi- (implementointi eli toteutus) tai suunnitteluvaiheessa (speksaus) ja ilmenee ohjelmaa ajettaessa. Virheen korjaamisen kannalta on hankalaa, että se saattaa ilmetä vain jossain yksittäisessä ja harvinaisessa tilanteessa, jota on vaikea hahmottaa. Kaikissa hyödyllisissä tietokoneohjelmissa sanotaan olevan virheitä.

Ohjelmankirjoituksessa pätee virheen suurusluokkaan seuraava: Mitä myöhemmässä ohjelmistonkehityksen vaiheessa virhe tehdään, sitä helpompi se on korjata. Jos virhe tapahtuu jo suunnittelu- ja määrittelyvaiheessa, korjaaminen on usein hankalaa ja jopa mahdotonta. Hyvin kirjoitetuissa ohjelmissa niitä on suhteellisen vähän, ja ne ovat niin lieviä, etteivät ne estä ohjelmaa täyttämästä tarkoitustaan. Ohjelman, jossa on paljon vakavia virheitä, sanotaan olevan buginen. Sana tulee englannin kielen ludetta ja hyönteistä tarkoittavasta sanasta bug (suom. ötökkä). Sana on vanha insinööritermi, jota esimerkiksi Edison käytti kirjoittaessaan vuonna 1878:

»It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that ”Bugs”—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.»

Ohjelmointivirheellä selitetään myös usein ohjelmistosodankäyntiin liittyviä ohjelmistojen ”ominaisuuksia”, esimerkiksi ohjelmistoon jääneitä takaportteja ja turvallisuusrakenteiden ohituksia tai puskurin ylivuotovirhettä (ohjelmointivirheitä). Käytännössä tarkoituksellisen vian ja tahattomasti syntyneen ohjelmointivirheen erottaminen on lähes mahdotonta. Ne voidaan erottaa vain tietämällä virheen tavoite.

Bugi-termin väitetään syntyneen vuonna 1947, kun Grace Hopper jäljitti virheen Harvard Mark II -tietokoneen releeseen jääneeseen yöperhoseen. Perhonen poistettiin ja liitettiin lokikirjaan.[3] Hopper on sanonut, ettei ollut tapahtuma-aikana paikalla, mutta se oli yksi hänen mielikertomuksistaan.[4] Hopper ja ryhmä vaikutti termin debugata (engl. debug) yleistymiseen.[1] Hopperin mukaan termiä bugi käytettiin kuvaamaan tutkaongelmia toisen maailmansodan aikana.[4]

Debuggaus

Debuggaus eli virheenjäljittäminen on prosessi, jossa ohjelmointivirheitä eli bugeja paikallistetaan ja korjataan. Usein virheen löytäminen on esimerkiksi helppoa, mutta yksittäinen koodirivi, jossa virhe ilmenee, voi olla hyvin vaikea löytää.

Debuggauksessa käytetään apuna debuggeria, joka suorittaa koodia rivi riviltä, jolloin ohjelmistokehittäjän on mahdollista nähdä, missä järjestyksessä koodia ajetaan ja tarkastella muuttujien arvoja jokaisessa koodin ajon vaiheessa. Tavallisesti tarkasteltavalle koodiriville asetetaan "breakpoint", johon koodin ajo pysähtyy ja tämän jälkeen koodia ajetaan rivi kerrallaan.

Debuggaaminen on myös mahdollista ilman debuggeria esimerkiksi kirjoittamalla muuttujien arvoja konsoliin tai erilliseen lokitiedostoon (eng. tracing).

Debuggaus ja testaus ovat toisilleen komplementaarisia prosesseja. Testauksen tarkoitus on selvittää, mitä tapahtuu, kun ohjelman lähdekoodeissa on virhe. Debuggauksen tehtävä on paikallistaa virhe ja korjata se. Testauksesta ei selviä, mikä virhe ohjelmassa on, se ainoastaan paljastaa minkälaisia seurauksia virheellä on. Kun virhe on tunnistettu, debuggauksella virhe voidaan selvittää ja korjata.[5]

Debuggauksen haasteet

Debuggaus voi olla työlästä ja mahdollisesti vaatia jopa enemmän aikaa kuin itse koodin kirjoittaminen. Debuggaus voi olla erityisen haasteellista, kun

  • Virheestä aiheutuva ongelma on selvä, mutta sen aiheuttaja ei.
  • Virhe on vaikea saada toistettua. Esimerkiksi ei ole tiedossa, millä inputilla virhe on saatu aikaiseksi tai sen aikaansaaminen on hankalaa.
  • Koodin riippuvuussuhteet eivät ole selviä, jolloin koodivirheen korjaaminen yhdessä paikassa koodia voi aiheuttaa virheitä toisaalla koodissa.[6]

Katso myös

Lähteet

  1. a b Log Book With Computer Bug si.edu. Viitattu 5.10.2022. (englanniksi)
  2. NH 96566-KN The First "Computer Bug" history.navy.mil. Viitattu 5.10.2022. (englanniksi)
  3. Sharron Ann Danis: Rear Admiral Grace Murray Hopper ei.cs.vt.edu. Viitattu 5.10.2022. (englanniksi)
  4. a b First Computer Bug jamesshuggins.com. Arkistoitu Viitattu 5.10.2022. (englanniksi)
  5. What is debugging? Software Quality. Viitattu 27.7.2023. (englanniksi)
  6. What is debugging? Software Quality. Viitattu 27.7.2023. (englanniksi)

Aiheesta muualla

Read other articles:

Yehezkiel 3Kitab Yehezkiel 30:13–18 pada suatu naskah bahasa Inggris dari awal abad ke-13, MS. Bodl. Or. 62, fol. 59a. Teks bahasa Ibrani disalin sebagaimana dalam kodeks bahasa Latin. Terjemahan bahasa Latin ditulis di bagian marjin.KitabKitab YehezkielKategoriNevi'imBagian Alkitab KristenPerjanjian LamaUrutan dalamKitab Kristen26← pasal 2 pasal 4 → Yehezkiel 3 (disingkat Yeh 3) adalah bagian dari Kitab Yehezkiel dalam Alkitab Ibrani dan Perjanjian Lama di Alkitab Kristen. Beri...

 

1986 video game This article is about the Sega Master System game. For the NES game, see Pro Wrestling (NES video game). 1986 video gamePro WrestlingDeveloper(s)SegaPublisher(s)SegaPlatform(s)Master SystemReleaseJP: July 20, 1986NA: December 1986[1]EU: August 1987Genre(s)WrestlingMode(s)Single-player, multiplayer Pro Wrestling, known as Gokuaku Doumei Dump Matsumoto (極悪同盟 ダンプ松本) in Japan, is a professional wrestling video game released for the Master System in 1986 b...

 

Folgende Teile Bezug scheinen seit 2018 nicht mehr aktuell zu sein: Abbruch und Neubau Bitte hilf uns dabei, die fehlenden Informationen zu recherchieren und einzufügen. Wikipedia:WikiProjekt Ereignisse/Vergangenheit/fehlend Römisch-katholische Kirche St. Christophorus in Basel St. Christophorus ist eine römisch-katholische Kirche in der Schweizer Stadt Basel. Sie befindet sich im heutigen Stadtteil Kleinhüningen und bildet einen Teil der röm.-kath. Pfarrei St. Clara. Vorgeschichte D...

Jane the Virgin Virgem Jane (PT)Jane, a Virgem (BR) Jane the Virgin Informação geral Formato série Gênero Dramédia Comédia romântica Telenovela Sátira[1][2][3] Duração 40-43 minutos Estado Finalizada Baseado em Juana la virgen, de Perla Farías Desenvolvedor(es) Jennie Snyder Urman País de origem Estados Unidos Idioma original inglêsespanhol Produção Produtor(es) Paul Sciarrotta Meredith Averill Corinne Brinkerhoff David S. Rosenthal Josh Reims Gina Lamar Mark Grossan ...

 

Halaman ini berisi artikel tentang kabupaten. Untuk kecamatan bernama sama, lihat Banyuwangi, Banyuwangi. Banyuwangi beralih ke halaman ini. Untuk kegunaan lain, lihat Banyuwangi (disambiguasi). Kabupaten Banyuwangi BlambanganKabupatenTranskripsi bahasa daerah • Hanacaraka 1,2ꦧꦚꦸꦮꦔꦶ • Pegon/Jawi 3,4باڽوواڠي • Lontara 5,6ᨅᨎᨘᨓᨂᨗ • Alfabet OsingByanyuwangaiGunung Ijen BanyuwangiPelabuhan KetapangTari GandrungPan...

 

vdePolítica de Pelotas SenadoresJoaquim Augusto de Assunção (1913-1915) • Augusto Simões Lopes (1935-1937)Deputados federais1ª RepúblicaIldefonso Simões Lopes (1906-1908, 1913=1919, 1922-1930)2ª RepúblicaAugusto Simões Lopes (1933-1935)3ª RepúblicaNão havia Câmara dos Deputados4ª RepúblicaAbílio Fernandes (1946-1947) • Artur de Sousa Costa (1946-1951) • Antero Leivas (1946-1951) • Joaquim Duval (1955-1963) • Ary Alcântara (1963-1964) • Cid Furtado (1963-1964)5ª ...

American historian (1932–2023) Richard G. HovannisianHovannisian during the anti-government protests in Yerevan's Freedom Square in March 2013BornRichard G. Hovannisian(1932-11-09)November 9, 1932Tulare, California, U.S.DiedJuly 10, 2023(2023-07-10) (aged 90)Los Angeles, California, U.S.NationalityAmericanAlma materUC BerkeleyUCLAKnown forRepublic of Armenia (4 vols.)SpouseVartiter Hovannisian (née Kotcholosian)Scientific careerFieldsArmenian, Russian, and Near Eastern histo...

 

Political party in Australia This article is about the modern-day Australian political party founded after the dissolution of the original party of the same name. For other uses, see Democratic Labour Party. For the party the Democratic Labour Party split from, see Australian Labor Party. Australian Labor Party (Anti-Communist) redirects here. For the defunct right-wing Labor organisation that existed during 1940–41, see Australian Labor Party (Non-Communist). It has been suggested that thi...

 

Sporting event delegationEthiopia at the2023 World Aquatics ChampionshipsFlag of EthiopiaFINA codeETHNational federationEthiopian Swimming Federationin Fukuoka, JapanCompetitors2 in 1 sportWorld Aquatics Championships appearances200920112013201520172019202220232024 Ethiopia is set to compete at the 2023 World Aquatics Championships in Fukuoka, Japan from 14 to 30 July. Swimming Main article: Swimming at the 2023 World Aquatics Championships Ethiopia entered 2 swimmers.[1][2] M...

Jeanette Biedermann discographyBiedermann on tour, 2020Studio albums8Video albums4Music videos21Singles24 German actress and recording artist Jeanette Biedermann began her professional music career in 1998. Her discography, as a solo artist, includes sixth regular studio albums, a holiday album, twenty-one singles and four DVD albums, which she released on Universal Music and her former label Polydor Records.[1] Biedermann began her music career in 1999 with the German-language single...

 

Nursing is a licensed profession in Taiwan, plus additional of further nurse specialist training courses.[1] Health law and regulation in Taiwan is overseen by the Ministry of Health and Welfare. Nursing education Taiwanese nurses are segregated into three categories based on length of training, comparable to the licensed, registered, and advanced registered categories in the American system. Speciality nurses (專科學校) study for 5–7 years, normal nurses (普通大學) for 4, a...

 

Embedded WizardDeveloper(s)TARA Systems GmbHInitial release2003Stable releaseV12 / November 13, 2022; 12 months ago (2022-11-13) Written inC++Operating systemWindows, Linux using WineAvailable inEnglishLicenseEmbedded Wizard - EULAWebsiteEmbedded Wizard Embedded Wizard is a graphical user interface tool developed and distributed by TARA Systems GmbH for creating graphical user interface (GUI) applications mainly for embedded systems. It provides a WYSIWYG front-end for editi...

For information about the alula feather, see Alula. AlulaCategoriesOrnithologyFrequencyQuarterlyPublisherAlulaFirst issue1995Final issue2008CountryFinlandBased inTurkuWebsitehttp://www.alula.fi/ISSN1455-9439 Alula was an ornithological magazine published in Turku, Finland.[1] The magazine was published on a quarterly basis.[1] Initially it was published in both Finnish and English, but the final volumes were published in English only. It was aimed primarily at birders with an ...

 

This is a list of foreign players[a] that have played in the Canadian Premier League, which commenced play in 2019. The following players: Have played at least one CPL regular season game. Players who were signed by CPL clubs, but only played in playoff games, Canadian Championship games, or did not play in any competitive games at all, are not included. Are considered foreign, i.e., outside Canada determined by the following: A player is considered foreign if his allegiance is not to...

 

2015 film by Scott Mann Not to be confused with Heist (2001 film), The Heist (2001 film), or The Big Heist. HeistTheatrical release posterDirected byScott MannWritten by Stephen Cyrus Sepher Max Adams Produced by Randall Emmett George Furla Wayne Marc Godfrey Alexander Tabrizi Stephen Cyrus Sepher Starring Robert De Niro Jeffrey Dean Morgan Kate Bosworth Morris Chestnut Dave Bautista Gina Carano Mark-Paul Gosselaar D.B. Sweeney Stephen Cyrus Sepher Tyson Sullivan CinematographyBrandon CoxEdit...

Legendary Arthurian knight Fictional character AgravainMatter of Britain characterAgravain's attributed armsFirst appearancePerceval, the Story of the Grail by Chrétien de TroyesIn-universe informationTitlePrince, SirOccupationKnight of the Round TableFamilyLot, Morgause (parents) Gawain, Gaheris, Gareth, Mordred (brothers)SpouseFlorée or LaurelRelativesKing Arthur's familyHomeOrkney, Camelot Sir Agravain[a] (/ˈæ.ɡrə.veɪn/) is a Knight of the Round Table in Arthurian legend, wh...

 

Wawan RuswandiAsisten Personil KasadMasa jabatan25 Mei 2021 – 25 Februari 2022PendahuluMulyo AjiPenggantiDarmono SusastroDanpussenkav Kodiklat TNI ADMasa jabatan18 Juni 2020 – 10 Juni 2021PendahuluAna SupriatnaPenggantiSulaiman Agusto Informasi pribadiLahir8 Maret 1964 (umur 59)Pandeglang, BantenSuami/istriNy. Ririn KusumaningrumAlma materAkademi Militer (1987)Karier militerPihak IndonesiaDinas/cabang TNI Angkatan DaratMasa dinas1987—2022Pangkat Mayor Je...

 

2011 single by JamiroquaiLifelineSingle by Jamiroquaifrom the album Rock Dust Light Star Released24 January 2011GenreAlternative rockfunk rockdance-rockLength4:40 (album version)3:34 (single edit)LabelMercury RecordsSongwriter(s)Matt JohnsonJay KayRobert HarrisProducer(s)Jay KayJamiroquai singles chronology Blue Skies (2010) Lifeline (2011) Automaton (2017) Lifeline is the third single from British funk/acid jazz band Jamiroquai's studio album, Rock Dust Light Star.[1] The single was ...

Pour un article plus général, voir Championnats d'Europe d'athlétisme. 110 mètres haies aux championnats d'Europe d'athlétisme Colin Jackson remporte quatre titres consécutifs de champion d'Europe, de 1990 à 2002.Généralités Sport Athlétisme110 mètres haies Organisateur(s) AEA Éditions 25e en 2022 Catégorie Championnats d'Europe Palmarès Tenant du titre Asier Martínez (2022) Plus titré(s) Colin Jackson (4) Records Colin Jackson (13 s 02, 1998) modifier Le 110 mètres haies fa...

 

1931 in music By location United Kingdom Norway By genre country jazz By topic 1931 in jazzDecade1930s in jazzMusic1931 in musicStandardsList of 1930s jazz standardsSee also1930 in jazz – 1932 in jazz Overview of the events of 1931 in jazz List of years in jazz … 1921 1922 1923 1924 1925 1926 1927 1928 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 … Art Archaeology Architecture Literature Music Philosophy Science +... This is a dynamic list and may never be able t...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!