Ohjelmointivirhe

Ohjelmistovika on tietokoneohjelman koodissa oleva ongelma, joka saa sen toimimaan virheellisesti. Ne voivat aiheuttaa käyttäjälle haittaa ja saada tietokoneen kaatumaan tai jäätymään. Useimmissa tietokoneohjelmissa on virheitä. Ohjelman, jossa on suuri määrä virheitä (tai mahdollisesti yksi tai muutama vakava virhe), sanotaan olevan virheellinen.

Useimmat virheet johtuvat kehittäjän huonosta ohjelmoinnista, mutta joskus ne voivat johtua myös kääntäjän ongelmista. Kun virheitä löytyy, ihmiset lähettävät kehittäjälle vikailmoituksia, joissa he kertovat virheestä ja antavat heidän korjata sen.

Joskus ihmiset sanovat, että heidän tietokoneessaan on vika, kun siinä on jotain vikaa. Ongelman aiheuttaa yleensä tietokonevirus, joka on saastuttanut tietokoneen ja saa sen hidastumaan tai tekemään erilaisia asioita.

Jotkut viat ovat vaarattomia, esimerkiksi monet videopelit sallivat virheellisesti esineiden liikkua seinien läpi. Toiset virheet ovat vakavampia, esimerkiksi navigointijärjestelmän virhe, joka aiheuttaa lentokoneen räjähtämisen.



Virhetyypit

Puskurin ylivuoto

Puskurin ylivuoto tapahtuu, kun ohjelma kirjoittaa tai lukee muistialueelle, jota sen ei pitäisi käyttää.

Aritmeettinen ylivuoto

Aritmeettinen ylivuoto tapahtuu, kun muuttujan sisältämä luku kasvaa suuremmaksi kuin muuttujan sallima suurin luku. Tämä aiheuttaa yleensä sen, että luku nollautuu takaisin nollaan.

Loputon silmukka

Loputon silmukka syntyy, kun ohjelma joutuu silmukkaan (ohjeiden sarja, joka toistuu monta kertaa), eikä silmukasta pääse ulos. Tämä voi aiheuttaa ohjelman pysähtymisen.

Pyöristysvirheet

Jos liukulukumuuttujan tarkkuus ei riitä, siihen tallennettu luku voi olla epätarkka. Tämä voi aiheuttaa erilaisia ongelmia ohjelmatyypistä riippuen, esimerkiksi navigointiohjelma voi navigoida epätarkoituksenmukaiseen paikkaan, tai äänentoisto-ohjelmassa ääni voi vääristyä.

Jakaminen nollalla

Jakaminen nollalla on virheellinen matemaattinen operaatio. Jos ohjelma jakaa kokonaisluvun nollalla, se kaatuu. Linuxissa tämän vian ilmetessä näytetään viesti "floating point exception", vaikka kyseessä eivät olekaan liukuluvut. Liukulukumatematiikka sallii joskus jakamisen nollalla. Tämä johtaa yleensä erityiseen "ei luku"-arvoon.

Leikkausongelmat

Videopeleissä leikkausongelmat, joita kutsutaan myös törmäystunnistusongelmiksi, ilmenevät, kun objekti kulkee esteen (kuten seinän, lattian tai katon) läpi, jonka läpi sen ei ollut tarkoitus kulkea. Tämä on hyvin yleinen vika, jota esiintyy monissa videopeleissä. Näin voi käydä esimerkiksi Doom 2:ssa, kun arkkivihollinen herättää henkiin murskatun hirviön. Leikkausongelmia voidaan usein käyttää aikasäästötaktiikkana speedrunsissa, esimerkiksi Super Mario 64:ssä on mahdollista ohittaa linnan kierreportaat hyppäämällä katon läpi.

Turvallisuusvirheet

Tietoturvavirheet ovat virheitä, joiden avulla tunkeutuja voi joko päästä tietokoneelle tai aiheuttaa tietokoneen kaatumisen. Tietokoneen kaatumista kutsutaan palvelunestohyökkäykseksi. Tietoturvavikoja pidetään erityisen tärkeinä korjata, koska niiden avulla tunkeutujat voivat varastaa tärkeitä tietoja, kuten luottokorttinumeroita tai salasanoja. Esimerkkejä tietoturvaongelmista ovat Heartbleed ja Shellshock.



Misbugs

Virhevirhe on virhe, jota on käytetty ominaisuutena. Esimerkkinä voidaan mainita Android-puhelimessa oleva vika, jonka avulla käyttäjät voivat saada pääkäyttäjän oikeudet.



Laitteistovirheet

Jotkin viat vaikuttavat ohjelmiston sijasta laitteistoon (tietokoneen fyysisiin osiin). Esimerkiksi komennon lock cmpxchg8b eax suorittaminen vanhoissa Pentium-prosessoreissa aiheuttaa sen, että prosessori lakkaa toimimasta, kunnes se käynnistetään uudelleen. Koska laitteistovirheet ovat fyysisiä suunnitteluvirheitä, niitä ei voi korjata ohjelmistopäivityksellä, vaikka vika voidaankin kiertää (piilottaa) ohjelmistopäivityksellä.



Kysymyksiä ja vastauksia

K: Mikä on ohjelmistovika?


A: Ohjelmistovika on tietokoneohjelman koodissa oleva ongelma, joka aiheuttaa sen, että ohjelma ei toimi oikein.

K: Mitä seurauksia ohjelmistovirheellä on?


A: Ohjelmistovirhe voi aiheuttaa käyttäjälle haittaa ja saada tietokoneen kaatumaan tai jäätymään.

K: Onko kaikissa tietokoneohjelmissa virheitä?


V: Kyllä, useimmissa tietokoneohjelmissa on virheitä.

K: Mikä on virheellinen ohjelma?


V: Virheellinen ohjelma on ohjelma, jossa on suuri määrä virheitä tai mahdollisesti yksi tai muutama vakava virhe.

K: Kuka on vastuussa useimmista tietokoneohjelmien virheistä?


V: Useimmat virheet johtuvat kehittäjän huonosta ohjelmoinnista, mutta joskus ne voivat johtua kääntäjän ongelmista.

K: Mitä ihmiset tekevät, kun he löytävät tietokoneohjelmasta virheen?


V: Kun virheitä löytyy, ihmiset lähettävät virheilmoituksia kehittäjälle kertoakseen virheestä ja antaakseen hänen korjata sen.

K: Mitä ihmiset tarkoittavat sanoessaan, että heidän tietokoneessaan on virhe?


V: Kun ihmiset sanovat, että heidän tietokoneessaan on vika, he tarkoittavat yleensä, että tietokoneessa on jotain vikaa, joka johtuu yleensä tietokoneviruksesta, joka on saastuttanut heidän tietokoneensa ja saa sen hidastumaan tai tekemään erilaisia asioita.

AlegsaOnline.com - 2020 / 2023 - License CC3