Debugging

Disambiguazione – Se stai cercando il termine nel contesto del ciclo di vita del software, vedi Ispezione del software.
Uno sviluppatore software esegue un debugging

Il debugging (o semplicemente debug) o depurazione, in informatica, nell'ambito dello sviluppo software, indica l'attività che consiste nell'individuazione e correzione da parte del programmatore di uno o più errori (bug) rilevati nel software, direttamente in fase di programmazione oppure a seguito della fase di testing o dell'utilizzo finale del programma stesso.

L'attività di debug è una delle operazioni più importanti e difficili per la messa a punto di un programma, spesso estremamente complicata per la complessità dei software in uso e delicata per il pericolo di introdurre nuovi errori o comportamenti difformi da quelli desiderati nel tentativo di correggere quelli per cui si è svolta l'attività di debug.

Operazioni di base

Sebbene ogni sessione di debug sia unica e costituisca una storia a sé, alcuni principi generici sono applicabili a tutte le sessioni di debug. In particolare, per il debug di applicazioni software, in genere si possono riconoscere cinque fasi nel debug:

  • identificazione del bug
  • individuazione del componente in cui è presente il bug
  • individuazione della causa del bug
  • progettazione di una correzione per il bug
  • implementazione e testing della suddetta correzione

Rilevazione dell'errore

Lo stesso argomento in dettaglio: Bug (informatica) e Debugger.

Mentre gli errori di sintassi sono tipicamente evidenziati dall'IDE, alla fine della stesura del codice il programmatore opera una seconda fase di test valutando se l'output del programma è quello atteso compilando/interpretando ed eseguendo il codice. All'eventuale rilevazione dell'errore di semantica e di runtime segue la fase di debugging, ossia di individuazione della parte di software, a volte molto complesso, nella quale si annida l'errore. Spesso tale operazione viene svolta dal programmatore di pari passo con la stesura del codice stesso, testando continuamente il codice ed evitando così l'accumulo degli errori.

Questa attività è supportata da programmi specifici (debugger) messi a disposizione dall'IDE grazie anche all'uso di breakpoint su linee di codice e dai messaggi di standard error emessi nei file di log (es. rilevamento eccezioni nelle console dell'IDE), che indicano e mostrano allo sviluppatore l'esecuzione, istruzione per istruzione, del programma, permettendo nel contempo l'analisi dei dati trattati dal programma stesso. In assenza di tali strumenti per le attività di debugging, si ricorre alla più semplice, ma anche meno efficace tecnica di stampare a video o su file le istruzioni che il programma sta eseguendo, inserendo a tal scopo nel codice delle istruzioni di debug che evidenzino il punto di arrivo dell'esecuzione del programma fino all'errore. Sempre a questo scopo, il programmatore può, con l'ausilio dei commenti, far eseguire solo alcune parti del codice o al contrario non far eseguire particolari parti del codice, sospette di causare l'errore. Una volta individuato l'errore nel codice il programmatore corregge l'errore in maniera iterativa finché il programma non fa ciò che è desiderato.

Una terza fase di debug è quella che il programmatore deve risolvere quando il software prodotto è stato mandato in fase di testing o collaudo al rispettivo team ed è stato rimandato indietro con la lista dei difetti riscontrati; in genere in questi casi molto spesso sono presenti errori nella stesura o interpretazione delle specifiche rispetto a ciò che è realmente desiderato senza andare in errore.

Una quarta fase di debug può avvenire quando in fase di utilizzo del programma da parte dell'utente finale questi riscontra delle anomalie; in genere in questi casi si ingenera un errore con relativo messaggio che viene inviato tramite Internet alla casa produttrice del software che aggiornerà periodicamente con nuove release senza errori o aggiornamenti il prodotto (es. Microsoft Windows).

Accorgimenti per accelerare il processo di debug

Corretto atteggiamento mentale

È necessario fare autocritica, e accettare il fatto che il programma non si comporta come dovrebbe e che si è fatto un errore, cosa del tutto normale e frequente in fase di sviluppo; se tutto fosse stato previsto e non ci fossero errori, il programma funzionerebbe correttamente, ma spesso questo risultato non si ottiene quasi mai alla prima stesura del codice, ma solo per successive modifiche e correzioni. Tale atteggiamento mentale incrementa significativamente la possibilità di trovare e risolvere dei bug.

Usare file di log

Oltre all'uso della console dell'IDE è opportuno creare uno o più file di log che può risultare molto utile per verificare se il programma funziona come previsto, e cosa succede prima, dopo e durante il verificarsi del malfunzionamento.

Fare attenzione all'input fornito al programma

Tutti gli input forniti dall'utente devono essere validati prima sintatticamente e successivamente anche semanticamente dal programma prima di essere elaborati. Ciò migliora anche la sicurezza del programma.

Memorizzare le tipologie di errori

Nel caso si siano già scritti dei programmi simili e ci si sia trovati a bug simili a quello attuale, è buona norma, sulla scorta dell'esperienza, cercare di ricordare l'errore commesso e la soluzione adottata.

Accorgimenti per ridurre la necessità di debug

Disegno del codice

Disegnare accuratamente le strutture dati e le funzioni nella programmazione strutturata e le classi in quella orientata agli oggetti è il sistema migliore per ridurre gli errori nel codice e nel facilitare l'individuazione dell'errore nel caso il programma non funzioni correttamente.

Leggibilità del codice

L'utilizzo di convenzioni chiare per i nomi delle variabili, funzioni, classi, metodi e costanti, così come quello di nomi parlanti, ovvero che rendano chiaro l'utilizzo di una componente e, soprattutto, evitare di riutilizzare la stessa componente per scopi diversi, rende più chiaro e leggibile il codice anche a fronte di una ricerca di errori.

Commenti

I commenti sono fondamentali, soprattutto se il codice viene scritto a più mani. In particolare, il commento deve dare un valore aggiunto all'istruzione. Ad esempio, se l'istruzione è

lordo = tara + netto ;

non ha senso scrivere un commento come

/* il peso lordo è uguale a quello netto più la tara */

perché si evince già dal nome delle variabili. Un commento come

/* "tara" è una costante definita nel file costanti.php */

è sicuramente molto più utile.

Voci correlate

Altri progetti

Collegamenti esterni

Controllo di autoritàLCCN (ENsh85036145 · J9U (ENHE987007543228905171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

Paramount GlobalKantor pusat Paramount di One Astor Plaza di Kota New YorkJenisPublikKode emiten Nasdaq: PARAA (Kelas A) Nasdaq: PARA (Kelas B) S&P 500 component (PARA) ISINUS92556H2067IndustriPerusahaan publikPendahuluViacomCBS (2019-2022)*Garis CBS Westinghouse Electric & Manufacturing Company Westinghouse Electric Corporation CBS Corporation (1997–2000, 2006–2019) Garis Viacom CBS Television Film Sales CBS Films CBS Enterprises Inc. Viacom (1970–2006, 2005–2019) G...

 

Ryoji Ikeda池田 亮司Born (1966-07-08) July 8, 1966 (age 57)Gifu, Gifu Prefecture, JapanOccupation(s)artistmusicianYears active1995–presentWebsiteryojiikeda.comMusical artist Ikeda's sound and light installation Spectra illuminates the night sky every winter solstice at the Museum of Old and New Art (MONA) in Hobart, Tasmania, Australia. Ryoji Ikeda (池田 亮司 Ikeda Ryōji, born 1966)[1] is a Japanese visual and sound artist who currently lives and works in Paris, France...

 

Terumbu karang di Taman Nasional Bunaken menyediakan habitat bagi berbagai organisme laut. Dalam studi ekologi, Habitat adalah suatu tempat alami yang memiliki faktor abiotik maupun biotik untuk mendukung makhluk hidup untuk bertahan hidup dan berkembang biak. Faktor abiotik dapat berupa tanah, kelembapan, rentang temperatur, dan intensitas cahaya. Sementara itu, faktor biotik dapat berupa keberadaan makanan dan ada tidaknya pemangsa. Pada dasarnya, habitat adalah lingkungan fisik di sekelili...

Reruntuhan Deir el-Medina. Situs Warisan Dunia UNESCO [1] Deir el-Medina (bahasa Arab Mesir: دير المدينة) adalah sebuah desa Mesir Kuno yang merupakan rumah bagi para pengrajin yang mengerjakan makam di Lembah Para Raja selama dinasti ke-18 hingga ke-20 dari Kerajaan Baru Mesir (skt. 1550–1080 SM)[2] Nama kuno pemukiman itu adalah Set maat Tempat Kebenaran, dan para pekerja yang tinggal di sana disebut Hamba Tempat Kebenaran.[3] Selama era Kristen, kuil...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Aermacchi AL-60 – news · newspapers · books · scholar · JSTOR (August 2011) (Learn how and when to remove this template message) LASA-60 / AL-60 / C4M Kudu Operational Aermacchi AL-60B-2 registered in Germany Role Utility aircraftType of aircraft Manufacturer L...

 

Defunct level of competition in Minor League Baseball A 2007 game with the Class A Short Season Vancouver Canadians at Nat Bailey Stadium Class A Short Season (officially Short-Season A)[1][a] was a level of play in Minor League Baseball in the United States[b] from 1965 through 2020. In the hierarchy of minor league classifications, it was below Triple-A, Double-A, Class A-Advanced (created in 1990), and Class A. Teams in Class A Short Season played about 75 to 80 gam...

Animal PlanetDiluncurkan1 Juni 1996; 27 tahun lalu (1996-06-01)PemilikWarner Bros. DiscoveryFormat gambar1080i HDTV(downscaled to 480i letterboxed for the SDTV feed)NegaraAmerika SerikatBahasaInggris Animal Planet adalah jaringan televisi kabel dan satelit multinasional yang dimiliki oleh Warner Bros. Discovery. Saluran ini khusus untuk menayangkan program-program tentang hubungan antara manusia dan hewan. Sejarah Animal Planet diluncurkan pada 1 Juni 1996; dibuat dari hasil kerja sama a...

 

American actor (1903–1982) Don DillawayDillaway in Young as You Feel (1931)BornDonald Provost Dillaway(1903-03-17)March 17, 1903DiedNovember 18, 1982(1982-11-18) (aged 79)Westlake Village, California, U.S.Resting placePierce Brothers Valley Oaks Memorial Park, Westlake Village, CaliforniaOccupationActorYears active1929–1967 Donald Provost Dillaway (March 17, 1903 – November 18, 1982) was an American stage and film actor. Early years Dillaway's mother, billed as Nettie Gordon, ...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Rock'n Coke – news · newspapers · books · scholar · JSTOR (June 2014) (Learn how and when to remove this template message) Rock'n CokeRock'n Coke 2003 posterGenreRock musicDatesend August/early SeptemberLocation(s)Hezarfen Airfield in Istanbul, TurkeyYears acti...

Questa voce sull'argomento calciatori italiani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Elio Canonico Nazionalità  Italia Calcio Ruolo Centrocampista Termine carriera 1958 Carriera Squadre di club1 1945-1947 Vogherese58 (23)1947-1948 Novara25 (5)1948-1952 Bari113 (22)1952-1955 Pisa78 (20)1955-1958 Sammargheritese56 (10) 1 I due numeri indicano le presenze e le reti...

 

French writer and dramatist (1824–1895) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Alexandre Dumas fils – news · newspapers · books · scholar · JSTOR (September 2022) (Learn how and when to remove this message) Alexandre Dumas filsAlexandre Dumas filsBornAlexandre Dumas(1824-07-27)27 July 1824Paris, F...

 

Logo Sanwa Bank The Sanwa Bank, Limited (株式会社三和銀行code: ja is deprecated , Kabushiki gaisha Sanwa Ginkō) dulunya merupakan bank besar asal Jepang yang berkantor pusat di Osaka, dari tahun 1933 hingga 2002. Sanwa kemudian bergabung dengan Tokai Bank untuk membentuk UFJ Bank (kini menjadi bagian dari MUFG Bank). Pada dekade 1990-an, Sanwa merupakan bank dengan laba terbesar di dunia, dan merupakan bank dengan aset terbesar kedua, di bawah Tokyo-Mitsubishi.[1] Sanwa diben...

2002 Australian film by Phillip Noyce For other uses, see Rabbit-proof fence (disambiguation). Rabbit-Proof FenceTheatrical release posterDirected byPhillip NoyceScreenplay byChristine OlsenBased onFollow the Rabbit-Proof Fenceby Doris Pilkington GarimaraProduced byPhillip NoyceChristine OlsenJohn WinterStarringEverlyn SampiTianna SansburyLaura MonaghanDavid GulpililKenneth BranaghCinematographyChristopher DoyleEdited byVeronika JenetJohn ScottMusic byPeter GabrielProductioncompaniesRumbalara...

 

У этого термина существуют и другие значения, см. Коряки (село). Для термина «Коряк» см. также другие значения. Коряки Современное самоназвание нымыланы, чавчувены, алюторцы Численность и ареал Всего: 7953  Россия: 7485 (Всероссийская перепись 2021 г.)[1]  Камчатский кр...

 

Type of metallaphone This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Ranat ek lek – news · newspapers · books · scholar · JSTOR (August 2017) (Learn how and when to remove this message) Ranat ek lekClassification Percussion (metallophone)Related instruments Roneat dek, ranat ek, ranat thum lek The ranat ek l...

الشيخ محمد الحاح حسن معلومات شخصية اسم الولادة محمد الحاج حسن الميلاد 1976 (العمر 47–48)شمسطار الإقامة أميركا الجنسية أميركي لبناني الديانة مسلم الحياة العملية المدرسة الأم الحرية المهنة رئيس تحرير موقع www.inn.nwes الحزب التيار الشيعي الحر مجال العمل منظمة AMC وموقع inn.news الموا�...

 

День признания независимости Абхазии Тип Государственный Значение годовщина изгнания грузинских войск из Абхазии Отмечается  Республика Абхазия Дата 30 сентября Празднование парад Традиции народные гуляния, фейерверки Связан с Распад СССР и провозглашение независ�...

 

Sheet of clear material This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Screen protector – news · newspapers · books · scholar · JSTOR (September 2019) (Learn how and when to remove this message) A screen protector, yet to be installed A smartphone with a screen protector installed A screen protector is an a...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: 1985 NBL season – news · newspapers · books · scholar · JSTOR (February 2019) (Learn how and when to remove this message) Sports season1985 NBL seasonLeagueNational Basketball LeagueSportBasketballDuration12 April – 24 August 198531 August 1985 (semi-finals)...

 

У этого термина существуют и другие значения, см. Хоккайдо (значения). Префектура Хоккайдояп. 北海道Равнина Токати Префектура Хоккайдо на карте Японии Карта префектуры Хоккайдо Расположение Страна Япония Остров Хоккайдо Координаты 43°04′ с. ш. 141°54′ в. д.HGЯO Инфор...