Saltar ao contido

Bug

Na Galipedia, a Wikipedia en galego.

Un bug ou erro de software é un erro, problema, falta ou fallo nun programa informático que lle impide funcionar correctamente ou produce un resultado incorrecto.

Os bugs suceden por erros producidos ben cando se escribe o programa informático, ou ben cando se interconectan varios deles dun xeito incorrecto, posiblemente debido a un fallo no deseño software, por exemplo na arquitectura software. Asúmese que todo programa informático contén erros, mais canto mellor escritos (técnicas de programacion) estean os programas (normalmente despois dunha serie de correccións e probas), menos bugs terán por liña de código, o que fará que tales programas que sexan suficientemente estables e se poidan utilizar nas tarefas para as que foron deseñados. Os informes (“reports”) de erros chámanse “informes de erros” e ás veces emprégase a terminoloxía inglesa de PRs (problem reports), TTR (test trouble reports). O resultado da análise de tales informes convértese nunha petición de cambio CRs (change requests).

Descrición

[editar | editar a fonte]

Os bugs poden ter unha ampla variedade de efectos, a nivel cualitativo e cuantitativo. Algúns poden tardar moito tempo en provocar un fallo (por exemplo se o programa tarda moito en executar a parte do código na que se localiza ese bug). Os bugs máis serios poden provocar que caia o programa ou que quede bloqueado (“frozen” = conxelado), ou inclusive que “caia” o computador enteiro (i.e., todos os seus programas).

Os resultados dos bugs poden ser cualitativamente moi serios, por exemplo bugs que ocorreron en computadores Therac-25 que controlan unha terapia radioactiva, causando a morte de pacientes, ou os bugs que causaron que se destruíse o foguete Ariane 5 en 1996, en menos dun minuto despois do lanzamento.

Dous aspectos de seguridade informática (safety vs security)

[editar | editar a fonte]

En informática en inglés, distínguese entre Safety e mais security: Safety refírese ao estudo da seguridade dos programas informáticos no sentido de evitar que danen aos seres humanos, mentres que se lle chama security cando trata de evitar que se acceda (hackers etc) a un sistema informático con fins non lexítimos, causando danos económicos ou doutras índoles.

Etimoloxía

[editar | editar a fonte]
Imaxe do caderno de bitácora do ordenador co bug que producía o seu malfuncionamento.

Aínda que en inglés "bug" significa comunmente “bicho”, xa se lle chamaba “bugs” na época da Segunda guerra mundial aos erros no hardware dos rádares electrónicos.

A invención atribúeselle a Grace Hopper, cando fixo pública a causa dun malfuncionamento nun computador electromecánico por culpa dun bicho.[1]

Prevención de bugs

[editar | editar a fonte]

Non é doado psicoloxicamente para algúns enxeñeiros aceptar que o seu código ten bugs. Ironicamente chámaselle ás veces aos erros "características non consideradas". Tense chegado, eufemisticamente a chamarlle "mellora da fiabilidade" á corrección dun bug.

Os bugs son intrínsecos á natureza humana da tarefa de programación, polo tanto non se pode evitar que se produzan, mais si se pode diminuír o seu número medio e a súa importancia, ben a priori con técnicas e metodoloxías de programación apropiadas, ben durante a actividade de produción de código coa análise de calidade do código en produción, ben a posteriori coas probas (ou testes) do código que se produciu.

Hai que ter en conta a case obvia consideración de que, canto máis tarde no ciclo de produción/probas se detecta un bug, máis custosa resulta a súa corrección.

Debugging

[editar | editar a fonte]

A atopar e reparar os bugs chamaselle "depurar" (debugging), unha das partes máis importantes da programación. Acotío, os programadores gastan tanto tempo e esforzo en atopar e corrixir os bugs que en escribir novo código.

Normalmente, é moito máis difícil atopar o problema no código fonte que corrixilo. Úsanse programas coñecidos como depuradores ( debuggers) para axudar na localización do bug.

Tipicamente, o primeiro paso é intentar reproducir o problema/fallo e así atopar o bug. Unha vez reproducido o fallo, o programador usará o debugger ou outra ferramenta para monitorizar a execución do programa na rexión infrutuosa e, finalmente, atopar o problema.

Non sempre é doado reproducir o problema. Dáse incluso o caso de haber erros que non se reproducen ao monitorizar o programa co debugger, a isto chámaselle humoristicamente heisenbugs (con relación ao principio de incerteza de Heisenberg).

Bugs famosos

[editar | editar a fonte]
  • Os accidentes no Therac-25 (1985-1987), posiblemente o fallo máis serio (perda de vidas humanas) relacionado cun computador.

Tipos comúns de erros causados por bugs

[editar | editar a fonte]

Véxase tamén

[editar | editar a fonte]

Ligazóns externas

[editar | editar a fonte]