# Software-errore

Software-akats bat edo zorri bat (software bug ingelesez ), ordenagailu edo konputagailu-programen (softwarea) sorreraren prozesuan hutsegite edo akats baten emaitza da. Hutsegite hori softwarearen bizitzaren zikloaren edozein etapetan agertu ahal da, nabarienak garapen eta programazioaren etapan ematen diren arren. Erroreak softwarearen sorreraren edozein etapatan gertatu ahal dira.
1947.an, Mark Iiren sortzaileek ordenagailu batean gertatutako lehen errorearen berri eman zuten, intsektu batek eragindakoa. Mark Ii, 1944an eraikitako ASCC MARK I-ren ondorengo ordenagailua, hutsegite bat jasan zuen errele elektromagnetiko batean. Errele hori ikertu zenean, errelea irekita gera zedila eragin zuen sits bat aurkitu zen .
Grace Murray Hopper, Fisikan lizentziaduna eta matematikari gailena, Mark Iian programatzaile gisa lan egin zuena, intsektua bitakoran itsatsi zuen zinta itsasgarriaz (irudia) eta arazoaren kausa deskribatzeko "zomorro" hitza erabili zuen..
Gertakari hau "bug" (zomorro) ingelesezko terminoaren erabileraren iturburu bezala okerki ezaguna da, aparatu edo sistema batean arazo bat adierazteko. Egia esan, Thomas Alva Edisonek "bug" erabilia zuen dagoeneko interferentziekin eta funtzionamendu okerrarekin erlazionatutako zenbait oharretan. Gracek lehen aldiz informatikarekin lotu zuen, kasu honetan, egiazko intsektu batekin erlazionatua. Dena den, XX. mendeko 50.ko hamarkadan, Gracek "debug" terminoa ere erabili zuen programazioa-kodeetan erroreen arazketaz mintzatzean.
softwarearen programazio-erroreen detekzioan eta ezabaketan laguntzen duten programei araztaile (debugger) izena ematen zaie.

## Programen diseinuan akatsak

* Daltonismoa duten pertsonentzat kolore desegokiekin diseinuak
* Tamainagatik edo diseinuagatik irakurketa zaileko tipografiak dituzten testuak erabiltzen dituzten diseinuak.
* Mugimendu-disfuntzioak dituzten pertsonentzat teklatu bidezko aukerarik utzi gabe, saguaren erabilera behartzen dituzten diseinuak.
* Inplikazio kulturalak dituzten diseinuak, adibidez kultura jakin batean lotsa edo isekarako objektu izan daitezkeen gorputzaren atalak, edo identitate kultural edo erlijiosoaren ezaugarriak dituzten ikurrak erabiltzean .
* Instalatuko den ekipoak ezaugarri jakin batzuk dituela estimatzea, adibidez pantailaren bereizmena, prozesadorearen abiadura, memoria-kopurua edo Internetari konektagarritasuna.

## Ohiko programazio-erroreak

* Zeroz zatitu
* Ziklo infinitua
* Problema aritmetikoak, adibidez, gainezkatzeak (overflow) edo gainezkatze negatiboak (underflow).
* Arrayren tamaina gainditzea
* Hasieratu gabeko aldagai bat erabiltzea
* Baimendu gabeko memoriari atzitzea (access violation)
* Memoria-galera (memory leak)
* Pilaren gainezkatzea edo gainezkatze negatiboa ( )
* Buferraren gainezkatzea (buffer overflow)
* Elkar-blokeoa (Deadlock)
* Datu-baseetan taulen indexatze desegokia.

## Instalazio edo programazio akatsak

* Sistemaren (DLL Hell) edo programa bat baino gehiagorako amankomunak diren liburutegien ezabaketa edo ordezkapena.
* Instalazioa egin dadin erabiltzaile baten saioa arbitrarioki berrabiarazi.
* Erabiltzaileak Internetera konexio iraunkor bat duela aurresuposatzea.

## Programazio-lengoaien errore-kodeak

Programazio-lengoaia gehienek gutxienez bi errore mota izaten dituzte, programatzaileei aukera ematen dietenak programen akatsak maneiatzeko eraginkorra eta azken erabiltzailearekin oldarkorra ez den era batez. Errore hauek dirakonpilaziokoak eta exekuzio-denborako erroreak.
Konpilazio-erroreek normalean iturburu-kodea programa exekutagarri baten sorburu izatea eragozten dute, exekuzio-denborako erroreak, berriz, programatik kanpoko gertaera batek bere exekuzioa eragozten duen berariazko egoerak dira. Normalean programatzaile eraginkor batek imajinatzen saiatu behar du gertaera horien aurrean nola erantzun behar den, programa izan dadin, eta ez erabiltzailea edo sistema eragilea, arazoa ebatz dezan. Honela, adibidez, maneiatu gabeko errore-bloke batek ondokoa egin ahal izango luke:
"nirefitxategia" ez ba da existitzen (edo programak edo erabiltzaileak ez dute irekitzeko pribilegio nahikorik), sistema eragileak programak harrapatuko ez duen errore bat itzuliko du eta honakoa bezalako mezu bat izango dugu ""nirefitxategia" fitxategia ezin du idazketarako irekia izan" eta berriro saiatzeko, bertan-behera uzteko eta ezeztatzeko botoiak ( Windows sistema eragilean), mugagabeki errepikatzea baizik beste ekintzarik izango ez dutenak, ziklo horretatik irteteko aukerarik gabe, programa bortizki amaituz ez bada. Errorea exekuzio-garaian harrapatzeko aukera ematen duen kode bat ondokoa izango litzateke:
Programazio-lengoaia diferenteek eraikuntza logiko diferenteetarako aukera ematen diete programatzaileei exekuzio-garaian erroreak harrapatzeko eta ebazteko, adibidez, programazio-lengoaia diferenteetako assert, try" eta "on error" aginduak.

## Ikus, gainera

* Last Error
* Segurtasuna-zuloa
* Bugzilla
* Hotfix
* Araztailea
* Programen arazketa
* Software Ingeniaritza
* Missingno.

## Kanpo estekak

* INTECO-CERT-en produktuen Ahulezien Bilatzailea
* Datuak: Q179550
* Multimedia: Computer bugs / Q179550

## Erreferentziak

* ↑ bug
* ↑ Ordenagailu baten barrura hegan egin zuen sitsa eta «bug informatikoa»ren iturburuak | Microsiervos ( Hiri-kondairak)