> ## Content Index
> Fetch the complete content index at: https://diariobug.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Diferencia Entre Error, Bug, y Falla
- URL: https://diariobug.com/error-bug-falla/
- Published: 2021-09-17T00:48:21.000Z
- Updated: 2021-11-06T03:22:21.000Z
- Author: Alvaro Sánchez
- Tags: Fundamentos, ISTQB, #Import 2026-09-13 01:41

Es muy frecuente entre los profesionistas en tecnología utilizar los términos **error**, **bug**,y **falla** para describir un resultado inesperado durante la ejecución de un programa o para referirse a la causa que genera dicho resultado. Sin embargo, error, bug, y falla no son lo mismo. Comprender las diferencias entre estos conceptos y usarlos adecuadamente simplifica y estandariza la comunicación.

## Conceptos

El glosario de la Junta Internacional de Aptitudes de Pruebas de Software (ISTQB, por sus siglas en inglés) define los términos de la siguiente manera:

| Error | Acción humana que produce un resultado incorrecto.                                                                                 |
| ----- | ---------------------------------------------------------------------------------------------------------------------------------- |
| Bug   | Imperfección en un componente o sistema que puede causar que el componente o sistema falle en desempeñar las funciones requeridas. |
| Falla | Desviación del componente o del sistema respecto de prestación, servicio o resultado esperado.                                     |

La ISTQB señala que las palabras **defecto,** **problema** y **falta** son sinónimos de bug y que es preferible el uso de la palabra defecto sobre los otros términos a pesar de que el término bug es más utilizado.

![](https://lh5.googleusercontent.com/GuoqEP3ueYNOu7yXt66mYU6F_ONZTAICbQl5ElASkHKR25g63-fJa_cd99ZAz0dm6nzgPT6BCVMd6n19nnaCZ04yNZsQ9Uiw84ZF52JD1dRWjF6eIwiMgPFkKghvAfhGOy_xyEG7=s0)

De manera similar, la palabra **equivocación** es sinónimo de error, y error es el término preferido.

![](https://lh3.googleusercontent.com/f0H9kf4LoSVE4fl-QpgCjil6us-8oqzttjZQzq14SwanSigMqPvk6bE-T3uu1d5sxvJC_XxBxcerzNtdYGrv_mLMsNY4ZEiWfErdVqnIRUjis0GsEqXFssUWJTyotKEmWndMxKwu=s0)

El siguiente enunciado es de utilidad para entender, tanto la diferencia como la relación, que existe entre los términos error, defecto y falla.

Una persona comete un **error** e introduce un **defecto** en el código del programa. Si durante la ejecución del programa, se ejecuta la línea de código con el defecto, el programa funciona de manera inesperada, es decir, el defecto causa una **falla**.

![](https://lh5.googleusercontent.com/GNVxLHNpYKYKJpaakPuE4v5UkXOgIeRb00jbFiIH9gR0cshMey4kLlGduiEwFIDVUyfRBWaq95ZHBEfxPNpo_fQ2QHKfYn0XsGPlf4PO88IaUVDO4Z4cA40cJ1ONcPVAgCHQBwc0=s0)

## Ejemplo

Un programador tiene la tarea de implementar un programa que controle el acceso a un sitio web permitiendo el acceso sólo a usuarios de 18 o más años de edad. 

El programa solicita al usuario introducir su edad y si ésta es de 18 o más, le da la bienvenida al sitio web, si no, se le niega el acceso por ser menor de edad. 

El programador implementa el software y decide probarlo utilizando los siguientes casos de prueba:

| Edad\[Años\] | Resultado Esperado\[Mensaje Desplegado\] |
| ------------ | ---------------------------------------- |
| 17           | Es menor de edad, no tiene acceso        |
| 18           | Bienvenido a nuestro sitio web           |
| 19           | Bienvenido a nuestro sitio web           |

Los resultados de sus pruebas se muestran a continuación:

![](https://lh6.googleusercontent.com/cgkYVEZyzRZVzlpFJyg04rZUJ97mKqmRbjj1AE-q4wbtG5_3ouvtxhge5-lybfD9ElMGRY-t_tB_ZH4iLI9MPVrVJlp4jyTzjc3GBz8uiYig_tygrT1zYDQ1ABZ9qwarXS--E87o=s0)

Como se observa en los resultados, el programa autoriza correctamente el acceso al sitio web, cuando se introduce la edad de 18 años. Sin embargo **falla** en los otros dos casos. En el caso en el que la edad es de 17 años el programa debió de negar el acceso al sitio pero el acceso fue autorizado y en el caso en el que la edad es de 19 años el programa debió permitir el acceso pero lo negó.

El programador inspecciona el código y detecta un **defecto** en la línea 3\. La condición utiliza el operador menor o igual que (<=), es decir, verifica que la edad sea de 18 años o menos. En lugar de utilizar el operador <=, debería utilizar el operador mayor o igual que (>=) para que la condición verifique que la edad sea de 18 años o más. El programador introdujo por **error** el defecto en la condición.

| 1: function autorizarAcceso() {2: var edad = prompt("Introducir edad:");3: if(edad <\= 18) {4: alert("Bienvenido a nuestro sitio web.");5: } else {6: alert("Es menor de edad, no tiene acceso.");7: }8:} |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

  
Una vez que el programador identificó y corrigió el **defecto** que causó la **falla**, el programador prueba nuevamente el programa utilizando los mismos casos de prueba y verifica que funciona adecuadamente.

![](https://lh5.googleusercontent.com/izayZtnGbL-wYHc5KffsyR8K1x3cgCrirzYD_DHaTUgI_-YZqovIFjPYcyQ47wmRLseyVOeAR1-BxCx1tQ79xLpJw49HXiYby4U8B1t3C1lMvXxyfEQFi3g0XTNFpYu1YU7dbEEM=s0)

Cabe destacar que los defectos no son la única fuente de fallas en el software, otros factores como cambios inesperados en librerías o sistemas de los que se depende también resultan en fallas.

## Resúmen

Los términos error, defecto, y falla no son lo mismo y utilizarlos adecuadamente nos ayuda a tener una comunicación eficaz.