- Pentru a raporta o eroare
MediaWiki
pe Wikipedia, vezi
Wikipedia:Bug reports
.
O
eroare de program
este o eroare, defect sau
avarie
intr-un
program pentru calculator
sau
sistem
care cauzeaz? acesta s? produc? un rezultat incorect sau nea?teptat, sau s? se comporte intr-un mod neinten?ionat. Procesul de c?utare ?i fixare a erorilor este denumit "
depanare
" ?i deseori se utilizeaz? tehnici formale sau unelte pentru a identifica erorile, ?i din anii 1950, unele sisteme de calculator au fost proiectate s? evite, detecteze sau auto-corecteze diverse erori de calculator in timpu oper?rii.
Majoritatea erorilor apar din gre?eli ?i erori f?cute sau in
designul
programei sau
codul s?u surs?
, sau in componentele ?i
sistemele de operare
utilizate de aceste programe. Careva sunt cauzate de
compilatoare
care produc cod incorect. Unui program care con?ine multe erori, ?i/sau erori care interfer? serios cu func?ionalitatea sa, i se spune c? e
eronat
sau
b?gos
(defectiv). Erorile pot declan?a avarii care ar putea avea
efect de und?
. Erorile ar putea avea efecte subtile sau cauza programul s? se
pr?bu?easc?
sau s?
inghe?e
calculatorul. Alte erori se calific? ca
erori de securitate
?i ar putea, spre exemplu, s? permit? unui
utilizator cu inten?ii rele
s? ocoleasc?
controlul accesului
pentru a
ob?ine privilegii neautorizate
.
[1]
Unele erori de program au fost legate de dizastre. Erori in codul care a controlat ma?ina de
radioterapie
Therac-25
au fost direct responsabile pentru decesele pacien?ilor in anii 1980. in 1996, racheta
prototip
Ariane 5
de US$1 miliard al
Agen?iei Spa?iale Europene
a fost distrus? in mai pu?in de un minut dup? lasare datorit? unei erori in programul calculatorului de bord de ghidare.
[2]
In Iunie 1994, un elicopter
Chinook
al For?elor Aeriene Regale
s-a pr?bu?it
in
Mullul Kintyreului
, omorand 29 oameni. Aceasta ini?ial a fost demis? ca eroare a pilotului, dar o investigare de
Computer Weekly
a convins ancheta
Camerei Lorzilor
c? posibil a fost c?uzat? de o eroare de program in
calculatorul de control al motorului
a aeronavei.
[3]
in 2002, un studiu comandat de
Institutul Na?ional de Standarde ?i Tehnologie
al
Departamentului de Comer?
al SUA a concluzionat c? "erorile de program, sunt a?a de prevalente ?i a?a de detrimentale c? ele cost? economiei SUA un estimat de $59 miliarde anual, sau cam 0.6 procente al produsului intern brut".
[4]
Industria tehnologiilor informa?ionale a depus mare efort in reducerea num?rului erorilor.
[5]
[6]
Acestea includ:
Erori deseori apar atunci cand programatorul face o
eroare logic?
. Inova?ii diverse in
stil de programare
?i
programarea defensiv?
sunt designate s? fac? aceste erori mai pu?in probabile, sau mai u?or de descoperit. Unele gre?eli tipografice, mai ales al simboalelor sau a operatorilor logici/
matematici
, permit programului s? opereze incorect, pe cand alte ca un simbol care lipse?te sau un nume pronun?at gre?it ar face posibil prevenirea oper?rii programului. Limbajele compilate pot dezv?lui unele gre?eli de tipar cand codul surs? e compilat.
Mai multe scheme asist? in gestionarea activit??ii programatorului incat mai pu?ine erori sunt produse.
Ingineria programelor
(care la fel adreseaz? probleme de design al programelor) aplic? multe tehnici ca s? previn? defecte. Spre examplu,
specifica?iile de program
formale precizeaz? comportamentul exact al programelor a?a c? e posibil de eliminat erorile de design. Din nefericire, specifica?iile formale sunt inpractice pentru orice in afar? de cele mai scurte programe, din cauza
exploziei combinatoriale
a problemei ?i
nedeterminismului
.
C?utarea ?i fixarea erorilor, sau
depanarea
, este o parte major? a
program?rii
.
Maurice Wilkes
, un pioner al program?rii timpuriu, a descris realizarea sa din sfar?itul anilor 1940 c? mult din restul vie?ii sale va fi cheltuit g?sind gre?eli in programele lui proprii.
[7]
Deseori, cea mai grea parte a depan?rii ii g?sirea erorii. Indat? ce e g?sit?, corectarea ei de regul? este relativ u?oar?. Programele cunoscute ca
depanatoare
ajut? programatorii s? localizeze erori prin executarea codului linie dup? linie, privind valorile variabilelor, ?i alte func?ii de observare a comportamentului programului. F?r? un depanator, codul poate fi ad?ugat a?a ca mesajele sau valorile s? fie scrise in o consol? sau o fereastr? sau fi?ier de logare pentru a trasa execu?ia programului sau a ar?ta valorile.
Chiar ?i, cu ajutorul depanatorului, locarea erorilor este un fel de art?. Nu este rar pentru fixul unei erori intr-o sec?iune a programului sa cauzeze e?ecuri in sec?iuni complet diferite, in a?a fel f?cant deosebit de greu trasarea (spre exemplu, o eroare in rutina de
redare
grafic? cauzand rutina
I/I
a fi?ierului s? cad?), intr-o parte a sistemului aparent f?r? leg?tur?.
Uneori, o eroare nu este un defect isolat, dar reprezint? o eroare de gandire sau planificare din partea programatorului. A?a
erori logice
necesit? o sec?iune a programului s? fie revizuit? sau rescris?. Ca parte de
revizuire a codului
, p??irea prin cod ?i imaginarea sau transcrierea procesului de execu?ie deseori poate g?si erori f?r? necesitatea de a rula programul ?i de a le reproduce.
Mai tipic, primul pas in locarea erorii este reproducerea ei sigur?. Din moment ce eroarea e reproductibil?, programatorul ar putea folosi un depanator sau alt? unealt? in timp ce reproduce eroarea ca s? g?seasc? punctul in care programul
s-a dus h?isa
[
necesit? citare
]
.
Volumul ?i tipul de prejudicii o eroare de program poate s? cauzeze in mod natural afecteaz? luarea de decizii, procesele ?i poli?ele in privin?a calit??ii programelor. In a?a aplica?ii ca
zborul spa?ial uman
sau
siguran?a auto
, deoarece defectele programelor au poten?ialul s? cauzeze v?t?m?ri umane sau chiar moartea, a?a programe vor avea mult mai mult? scrutinitate ?i control al calit??ii ca, spre exemplu, un sit pentru cump?r?turi in re?ea. In aplica?ii ca sfera bancar?, unde defectele program au poten?ialul s? cauzeze serioase prejudicii financiare b?ncii sau clien?ilor s?i, controlul calit??ii este la fel mai important decat, s? zicem, intr-o aplica?ie de editare foto.
Un num?r de erori de program au devenit bine cunoscute, deseori din cauza severit??ii sale: example includ variate pr?bu?iri al aeronavelor spa?iale ?i militare. Posibil cea mai renumit? eroare este
problema anului 2000
, mai cunoscut? ca eroarea Y2K in englez?, in care s-a temut c? colapsul economic mondial s-ar intampla la inceputul anului 2000 ca rezultat al calculatoarelor s? cread? thinking c? era anul 1900. (In fine , nici o problem? major? nu a avut loc.)
O eroare renumit? era
disrup?ia tranzac?ion?rii cu ac?iuni din 2012
care a implicat incompatibilitatea dintre IPA(API in englez?)-ul vechi ?i IPA-ul nou.
- In ambele romanul
2001: O odisee spa?ial?
din 1968 ?i filmul corespunz?tor din 1968
2001: O odisee spa?ial?
, calculatorul de bord al corabiei spa?iale,
HAL 9000
, incearc? s? ucid? to?i membrii echipajului s?u. In romanul continuare din 1982,
2010: A doua odisee
, ?i filmul care il acompaniaz? din 1984,
2010
, revela?ia e c? aceast? ac?iune a fost cauzat? de aceia ca calculatorul a fost programat cu doua obiective conflictuale: s? dezv?luie complet toate informa?iile sale, ?i s? ?in? scopul adev?ra? al zborului in secret de la echipaj; acest conflict cauzeaz? HAL s? devin? paranoid ?i eventual omicidal.
- In versiunea englez? al cantecului forma?iei Nena din 1983
99 Luftballons
(99 Baloane Ro?ii) ca rezultat a unei "gre?eli in program", o lansare a unui grup de 99 baloane ro?ii e confundat cu o lansare de rachete nucleare al inamicului, necesitand o lansare r?spuns echivalent?, rezultand intr-o catastrof?.
- In comedia american? din anul 1999
Office Space
, trei angaja?i incearc? s? expluateze preocuparea companiei lor cu fixarea erorii de calculator a anului 2000 prin infectarea sistemului de calculatoare al companiei cu un virus care trimite b?nu?i rotunji?i c?tre un cont bancar separat. Planul creaz? probleme incat ins??i virusul are o proprie eroare, care trimite prematur mari sume de bani in cont.
- Romanul din anul 2004
The Bug
, de
Ellen Ullman
, este despre incercarea programatorului s? g?seasc? o eroare eluziv? intr-o aplica?ie de baz? de date.
[8]
- Filmul canadian din 2008
Control Alt Delete
este despre un programator la sfar?itul anului 1999 care se chinuie s? fixeze erori la compania sa relatate de problema anului 2000.