Virheenkorjaus viittaa prosessiin ohjelmistokehityksessä, jossa ohjelma -analyytikot kamppailevat tietokonekoodin läpi ja etsivät “vikoja” – virheiden, puutteiden tai suoja -aukkojen lähdettä sisäisissä ohjelmaohjeissa. Laitteistokehitys käy myös läpi virheenkorjauksen varmistaakseen yhteensopivuuden nykyisten laitteistostandardien kanssa ja yhteentoimivuuden komponenttien välillä, jotka noudattavat samoja protokollia. Lisäksi virheenkorjaus takaa, että laitteisto ja ohjelmisto ovat taaksepäin yhteensopivia tai rinnakkain olemassa olevien standardien kanssa, jotka saattavat olla edelleen käytössä.
Ohjelmiston virheenkorjaus tapahtuu kahdessa vaiheessa. Ensimmäistä vaihetta kutsutaan alfa-testaukseksi, ja se suoritetaan itse ennen ohjelmiston julkistamista. Toinen vaihe suoritetaan julkisella prosessilla, joka tunnetaan beetatestauksena. Betatestaajat ovat vapaaehtoisia tietokoneharrastajia, jotka käyttävät beeta -ohjelmistoja omalla vastuullaan ja sopivat, että virheistä tai ongelmista ilmoitetaan kehittäjille.
Koska viat on eristettävä ja tunnistettava ennen niiden korjaamista, ensimmäinen askel on testata ohjelmisto eri olosuhteissa. Kun vika paljastuu, virheenkorjaaja panee merkille tarkat olosuhteet, joissa virhe ilmeni, mukaan lukien nykyinen käynnissä oleva toiminto, käyttöjärjestelmän tyyppi ja versio sekä muut mahdolliset ohjelmisto- tai laitteistokomponentit. Julkiset betatestaajat lähettävät verkossa yksityiskohtaisia raportteja, joissa luetellaan asiaankuuluvat tiedot, yleensä täyttämällä ennalta suunniteltu lomake.
Kun molemmat virheenkorjausvaiheet on suoritettu, ohjelmisto on valmis yleiseen julkaisuun vakaana versiona. Virheenkorjaus jatkuu kuitenkin tuotteen käyttöiän ylläpitoprotokollana, joka tehostuu merkittävillä päivityksillä.
Laitteisto debuggataan ennen kuin se tulee markkinoille, eikä sille tehdä varsinaista beta-testausta sinänsä, koska se olisi liian kallista ja ongelmallista useista melko ilmeisistä syistä. Sen sijaan useimmat laitevalmistajat tarjoavat online -käyttöliittymän, josta käyttäjät voivat saada teknistä tukea tai ilmoittaa laitteisto -ongelmista. Monissa tapauksissa nämä ongelmat osoittautuvat käyttäjävirheiksi, mutta prosessin tarkoituksena on myös paljastaa virheitä, jotka eivät jääneet alkuperäiseen virheenkorjausvaiheeseen. Virheenkorjaajat voivat palata ohjauspiireihin koodattuihin ohjeisiin ja tehdä muutoksia päästäkseen eroon laitteistosta. Valmistaja voi sitten tarjota laiteohjelmistopäivityksen, jonka käyttäjät voivat ladata verkosta päivittääkseen laitteistonsa.
Vaikka sisäinen virheenkorjaus voi varmasti poistaa ohjelmiston ja laitteiston monista virheistä, mikään ei korvaa reaalimaailman testausta. Tekijän tai valmistajan on käytännössä mahdotonta toistaa kaikkia mahdollisia olosuhteita ja järjestelmiä, joissa laitteistoa tai ohjelmistoa käytetään. Monet kokeneet IBM-PC-käyttäjät odottavat 12–36 kuukautta ennen kuin he siirtyvät uuteen käyttöjärjestelmään tästä syystä, esimerkiksi siirtymällä Windows ™ XP ™ -käyttöjärjestelmästä Windows Vista ™ -käyttöjärjestelmään. Tämä antaa yhteisölle aikaa tunnistaa kaikki suuret turvallisuusongelmat, viat tai muut alkuongelmat, jotka saattavat vaatia virheenkorjausta ja korjausta.