Cosa costituisce un bug?


10

In realtà cos'è un bug? eventuali regole predefinite?


Possiamo avere qualche contesto? Stai parlando da un punto di vista puramente tecnico o bug che verranno segnalati sui siti di monitoraggio?
Jeremy,

5
Tutti i bug sono solo funzioni nascoste :)
Marco Ceppi

2
Tendo a dire "caratteristiche non documentate" piuttosto che nascoste :-)
Little Jawa,

Risposte:


14

Un bug è:

Un bug del software è il termine comune utilizzato per descrivere un errore, un difetto, un errore, un errore o un errore in un programma per computer o in un sistema che produce un risultato errato o imprevisto o fa sì che si comporti in modo involontario. (Da Wikipedia )

Ecco un'altra buona definizione di ciò che costituisce un bug. O:

  1. Il programma non si è comportato secondo le intenzioni del programmatore. o
  2. Le intenzioni del programmatore non hanno soddisfatto le aspettative comuni e ragionevoli dell'utente.

La comunità Ubuntu ha un'eccellente definizione di bug in questo wiki , in particolare evidenziando la differenza tra bug e funzionalità mancanti :

Un bug del software è un errore o un errore in un programma per computer che non funziona come dovrebbe. Questo potrebbe essere semplice come non funzionare affatto, o complicato come un risultato leggermente errato [...] Alcune cose non sono bug, ma mancano funzionalità che dovrebbero essere ragionevolmente incluse. Le funzioni mancanti non devono essere segnalate come bug, ma le specifiche FeatureS devono essere scritte per loro.

Mentre è difficile tracciare una linea che separa le due definizioni e rispondere alla domanda si tratta di bug o funzionalità mancanti? , è possibile fornire alcune linee guida:

  • se è un problema che avrebbe molti dettagli da affrontare, è probabile che sia una funzionalità. Ad esempio, l'impossibilità di scrivere i file in modo sicuro in una moderna partizione di Windows è una caratteristica mancante.
  • L'incapacità di scrivere file in modo sicuro su una partizione ReiserFS sarebbe un bug.

La differenza tra le due affermazioni è: la prima è più diffusa (supporta Windows FS moderno) e quindi può essere vista come caratteristica mancante, mentre l'altra sottolinea un problema unico (impossibile scrivere in ReiserFS) - un bug specifico.

Se sei interessato, ti consiglio di dare un'occhiata al wiki del team BugSquad . Combattere i bug è una delle attività più interessanti coinvolte nel ciclo di sviluppo del software, oltre ad essere un'ottima opportunità di apprendimento :-)

Grazie!


bello, anche se non è direttamente correlato, forse vale la pena ricordare che ogni bug che vuoi commettere deve essere riproducibile.
danizmax,

No, ci sono bug dovuti alle condizioni di gara. Perché non dovresti voler impegnarli anche tu? Sarà difficile, se il programmatore non è in grado di riprodurre il bug, ma ciò non influisce sul desiderio di farlo, vero?
utente sconosciuto il

Si prega di fare riferimento anche alla guida di BugSquad di Ubuntu sui bug: wiki.ubuntu.com/Bugs
Thomas Ward

2

Prenderò un'altalena. In primo luogo, comportamento non inteso dal progettista / programmatore (scontando una cattiva progettazione). In termini di quali bug dovresti segnalare alle persone, tutto ciò che rende il programma più efficace da usare e si adatta alla descrizione sopra. Ciò include, dal peggiore al meno grave, arresti anomali del sistema, arresti anomali X, arresti anomali del programma ed eventuali bug interni del programma.

I bug che causano arresti anomali o chiusure di finestre di solito causano uno stderror di output se hai eseguito l'applicazione da un terminale, questo può essere utile. Vedere anche i registri di sistema per i rapporti sugli errori.


1

Un bug è un errore in un programma o sistema del computer, quindi il programma non funziona correttamente o non funziona affatto. Quindi i bug possono essere il risultato di un codice di programmazione errato o di un codice di programmazione che non è abbastanza robusto e non può gestire determinate eccezioni (ad esempio: divisione per 0)


1

A tutti gli effetti pratici il termine "bug" dovrebbe essere evitato come termine troppo confuso.

La migliore risposta alla tua domanda riempie un intero libro: "Perché i programmi falliscono" di Andreas Zeller. Un libro che dovrebbe essere sullo scaffale di ogni programmatore. L'autore fa anche un buon sforzo per non chiamarli "bug" (continua a leggere). Perché la risposta di crncosta suggerisce già che un "bug" non è solo un errore di programmazione. Questo è il motivo per cui alcune persone preferiscono il termine "problema" (che porta a "problema tracker" anziché "bug tracker").

Perché ciò che viene percepito come un bug da un utente finale non deve essere affatto un bug. Può essere - anche se questo è spesso usato come una scusa zoppa - semplicemente dal design. Alcuni errori, tuttavia, una volta osservati, sono classificati "bug", anche se sono dovuti alla mancanza di una funzionalità.

L'autore del suddetto libro spende diverse pagine sulla definizione di termini come fallimento e difetto e descrive perché "bug" non è un termine appropriato (troppo confuso).

Sintesi della sua terminologia:

  1. il programmatore crea il difetto
  2. il difetto provoca un'infezione ("stato del programma difettoso")
  3. l'infezione si propaga
  4. infezione causa fallimento ("comportamento cattivo / non osservabile")
  5. l'osservatore (di solito l'utente finale) vede l' errore

Come puoi vedere, l'autore distingue tra causa ed effetto, che nel caso di "bug" è quasi sempre mescolato. Il più delle volte il termine "bug" viene applicato al difetto , all'infezione e al fallimento .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.