O que constitui um bug?

10

Na verdade, o que é um bug? alguma regra pré-definida?

    
por Muthu 24.11.2010 / 13:34

4 respostas

14

Um erro é:

  

Um bug de software é o termo comum usado para descrever um erro, falha, falha ou falha em um programa ou sistema de computador que produz um resultado incorreto ou inesperado ou faz com que ele se comporte de maneira não intencional. (De Wikipedia )

Aqui é outra boa definição do que constitui um bug. Qualquer um:

  1. O programa não se comportou de acordo com as intenções do programador. ou
  2. As intenções do programador não cumpriram as expectativas comuns e razoáveis do usuário.

A comunidade Ubuntu tem uma excelente definição de bugs neste wiki , especialmente destacando a diferença entre bug e recursos ausentes :

  

Um bug de software é um erro ou falha em um programa de computador que faz com que ele não funcione como deveria. Isso pode ser tão simples quanto não funcionar ou ser tão complicado quanto um resultado sutilmente incorreto [...] Algumas coisas não são bugs, mas faltam recursos que devem ser razoavelmente incluídos. Recursos ausentes não devem ser reportados como bugs, em vez disso, FeatureSpecifications deve ser escrito para eles.

Embora seja difícil traçar uma linha separando as duas definições e responder à pergunta são erros ou falta de recursos? , é possível fornecer algumas diretrizes:

  • Se for um problema que teria muitos detalhes para resolver, é provável que seja um recurso. Por exemplo, a incapacidade de gravar arquivos com segurança em uma partição moderna do Windows é um recurso ausente.
  • A incapacidade de gravar arquivos com segurança para uma partição ReiserFS seria um bug.

A diferença entre as duas afirmações é a seguinte: a primeira é mais difundida (suporta janelas modernas FS) e assim pode ser vista como Missing Feature, enquanto a outra enfatiza um problema único (não pode escrever em ReiserFS) - um bug específico .

Se você estiver interessado, eu recomendo que você dê uma olhada no wiki equipe do BugSquad . Lutar contra bugs é uma das atividades mais interessantes envolvidas no ciclo de desenvolvimento de software, além de ser uma ótima oportunidade de aprendizado: -)

Obrigado!

    
por crncosta 24.11.2010 / 13:48
2

Vou dar um pulo. Principalmente, comportamento não pretendido pelo designer / programador (descontando o design defeituoso). Em termos de quais erros você deve reportar às pessoas, qualquer coisa que faça o programa usar e se encaixa na descrição acima. Isso inclui, do pior para o menos grave, travamentos do sistema, travamentos do X, travamentos de programas e quaisquer erros de programas internos.

Bugs que causam falhas ou fechamentos de janelas geralmente causam algum tipo de saída para stderror se você executar o aplicativo a partir de um terminal, isso pode ser útil. Veja também os registros do sistema para relatórios de erros.

    
por Jeremy 24.11.2010 / 13:43
1

Um bug é um erro em um programa ou sistema de computador, portanto, o programa não funciona corretamente ou não funciona. Então bugs podem ser resultado de código de programação errado, ou código de programação que não é robusto o suficiente e não pode lidar com certas exceções (por exemplo: divisão por 0)

    
por 3sdmx 24.11.2010 / 13:44
1

Para todos os efeitos práticos, o termo "bug" deve ser evitado como um termo muito difuso.

A melhor resposta para sua pergunta preenche um livro inteiro: "Por que os programas falham" por Andreas Zeller. Um livro que deveria estar na estante de todos os programadores. O autor também faz um bom esforço em não chamá-los de "bugs" (continue lendo). Porque como a resposta do crncosta já sugere um "bug" não é apenas um erro de programação. É por isso que algumas pessoas preferem o termo "problema" (que leva ao "rastreador de problemas" em vez de "rastreador de bugs").

Porque o que é percebido como um bug por um usuário final não precisa ser um bug. Pode ser - mesmo que isso seja frequentemente usado como desculpa - simplesmente pelo design. Algumas falhas, no entanto, uma vez observadas, são classificadas como "bugs", mesmo que sejam devido à falta de um recurso.

O autor do livro acima mencionado gasta várias páginas sobre a definição de termos como falha e defeito e descreve porque "bug" não é um termo apropriado (muito confuso) .

Resumo de sua terminologia:

  1. programador cria o defeito
  2. defeito causa uma infecção ("estado do programa defeituoso")
  3. infecção propaga
  4. infecção provoca falha ("comportamento observável ruim / não intencional")
  5. observador (geralmente o usuário final) vê o falha

Como você pode ver o autor distingue entre causa e efeito, que no caso de "bug" é quase sempre misturado. Na maioria das vezes, o termo "bug" está sendo aplicado ao defeito , à infecção e à falha .

    
por 0xC0000022L 12.06.2012 / 20:25