Tietokoneohjelmista puhuttaessa virhe on virhe tai ristiriita ohjelman suorittamisessa tai tiedostossa tai laskelmassa. Tietokonevirhe voi johtua useista tekijöistä. Yksi on käyttäjän tai käyttäjän virhe. Jos esimerkiksi käyttäjä käyttää “Liitä” -komentoa, kun mitään ei ole kopioitu, tämä on esimerkki käyttäjävirheestä, joka voi tapahtua missä tahansa ohjelmassa milloin tahansa. Muut virheet liittyvät itse ohjelmistoon. Kaksi tärkeää virheluokkaa ovat käännösaikavirhe ja ajonaikainen virhe.
Kääntämisajan virhe ilmenee, kun ohjelmaa käännetään, eli kun lähdekoodista tulee suoritettava ohjelma. Suoritusaika on tietokoneohjelman suorittaminen sen sijaan, että asennat, lataat tai suljet ohjelman. Suorituksenaikainen virhe on häiriö, vika tai ongelma, joka syntyy, kun ohjelmaa suoritetaan tietyllä tietokoneella tiettynä aikana. Monet virheet jäävät staattiseen ohjelmistotestaukseen, kun ohjelma käännetään – jos se käännetään. Ajonaikaisten virheiden havaitseminen on ohjelmistojen dynaamisen testauksen keskeinen kohde.
Ajonaikaisen virheen diagnosoinnissa on tärkeää ottaa huomioon ajonaikainen ympäristö. Käyttöaikaympäristö on samanlainen käsite kuin toimintaympäristö. Se viittaa laitteisto- ja ohjelmistokokoonpanoon, jossa ajonaikainen virhe tapahtui tai ilmenee, jos se on toistettavissa. Suoritusaikaympäristö sisältää tekijöitä, kuten tietokoneen käyttöjärjestelmän, suorittimen (keskusyksikkö) tyypin sekä järjestelmäohjelmiston tai ajonaikaiset moottorit, joita sovellus hyödyntää ja vaatii toimiakseen oikein.
Ohjelman käytön aikana voi esiintyä monenlaisia ajonaikaisia virheitä. Jotkut niistä ovat käyttäjävirheitä, kuten yhteyden muodostamatta jättäminen tai oheislaitteiden neuvojen kytkeminen päälle tai virheellisten ohjeiden antaminen, kuten “Liitä”, kun mitään ei ole kopioitu. Resurssien puuttuminen on toinen tilanne, joka voi aiheuttaa ajonaikaisen virheen. Tietokonevirus tai muistiongelma voi myös aiheuttaa ajonaikaisen virheen, samoin kuin ristiriita toisen ohjelman kanssa.
Jos ajonaikainen virhe ilmenee, käyttäjä saattaa nähdä virheilmoituksen. Joskus tämä viesti yksinkertaisesti sanoo “Suorituksenaikainen virhe” ja tarjoaa mahdollisuuden debugiin. Muut ovat tarkempia, kuten Java-ajonaikaiset virheilmoitukset “StackOverflowError”, “OutOfMemoryError” tai “VerifyingError”.