¿Qué constituye un error?

10

En realidad, ¿qué es un error? alguna regla predefinida?

Muthu
fuente
¿Podemos tener algún contexto? ¿Está hablando desde un punto de vista puramente técnico, o errores que se informarán en los sitios de seguimiento?
Jeremy
55
Todos los errores son solo características ocultas :)
Marco Ceppi
2
Tiendo a decir "características indocumentadas" en lugar de ocultas :-)
Little Jawa

Respuestas:

14

Un error es:

Un error de software es el término común utilizado para describir un error, falla, error, falla o falla en un programa o sistema informático que produce un resultado incorrecto o inesperado, o hace que se comporte de manera no intencionada. (De Wikipedia )

Aquí hay otra buena definición de lo que constituye un error. Ya sea:

  1. El programa no se comportó de acuerdo con las intenciones del programador. o
  2. Las intenciones del programador no cumplieron con las expectativas comunes y razonables de los usuarios.

La comunidad Ubuntu tiene una excelente definición de error en este wiki , especialmente destacando la diferencia entre error y características faltantes :

Un error de software es un error o falla en un programa de computadora que hace que no funcione como debería. Esto podría ser tan simple como no funcionar en absoluto, o tan complicado como un resultado sutilmente incorrecto [...] Algunas cosas no son errores, pero faltan características que deberían incluirse razonablemente. Las características que faltan no se deben informar como errores, sino que se deben escribir las especificaciones de características.

Si bien es difícil trazar una línea que separe las dos definiciones y responder a la pregunta, ¿ son errores o características faltantes? , es posible dar algunas pautas:

  • Si es un problema que tendría muchos detalles que abordar, es probable que sea una característica. Por ejemplo, la imposibilidad de escribir archivos de forma segura en una partición moderna de Windows es una característica que falta.
  • La imposibilidad de escribir archivos de forma segura en una partición ReiserFS sería un error.

La diferencia entre las dos afirmaciones es: la primera está más extendida (admite Windows FS moderno) y, por lo tanto, puede verse como una característica que falta, mientras que la otra enfatiza un problema único (no se puede escribir en ReiserFS): un error específico.

Si está interesado, le recomiendo que eche un vistazo a la wiki del equipo BugSquad . Combatir errores es una de las actividades más interesantes involucradas en el ciclo de desarrollo de software, además de ser una gran oportunidad de aprendizaje :-)

¡Gracias!

crncosta
fuente
bueno, aunque no está directamente relacionado, quizás valga la pena mencionar que cada error que quieras cometer debe ser reproducible.
danizmax
No, hay errores debido a las condiciones de carrera. ¿Por qué no deberías querer cometerlos también? Será difícil si el programador no puede reproducir el error, pero eso no afecta el deseo de hacerlo, ¿verdad?
usuario desconocido
Consulte también la guía de Ubuntu BugSquad sobre errores: wiki.ubuntu.com/Bugs
Thomas Ward
2

Voy a dar un golpe. Principalmente, comportamiento no previsto por el diseñador / programador (descontando mal diseño). En términos de qué errores debe informar a las personas, cualquier cosa que haga que el programa sea más difícil de usar y se ajuste a la descripción anterior. Esto incluye, de peor a menos grave, fallas del sistema, fallas X, fallas del programa y cualquier error interno del programa.

Los errores que causan bloqueos o cierres de ventanas generalmente causarán algún tipo de salida a stderror si ha ejecutado la aplicación desde un terminal, esto puede ser útil. Consulte también los registros del sistema para obtener informes de errores.

Jeremy
fuente
1

Un error es un error en un programa o sistema informático, por lo que el programa no funciona correctamente o no funciona en absoluto. Por lo tanto, los errores pueden ser el resultado de un código de programación incorrecto o un código de programación que no es lo suficientemente robusto y no puede manejar ciertas excepciones (por ejemplo: división por 0)

3sdmx
fuente
1

A todos los efectos prácticos, el término "error" debe evitarse como un término demasiado confuso.

La mejor respuesta a su pregunta llena un libro completo: "Por qué fallan los programas" de Andreas Zeller. Un libro que debería estar en la estantería de cada programador. El autor también hace un buen esfuerzo al no llamarlos "errores" (sigue leyendo). Porque como la respuesta de crncosta ya sugiere que un "error" no es solo un error de programación. Esta es la razón por la cual algunas personas prefieren el término "problema" en su lugar (lo que lleva a "rastreador de problemas" en lugar de "rastreador de errores").

Porque lo que un usuario final percibe como un error no tiene por qué ser un error. Puede ser, a pesar de que esto se usa a menudo como una excusa poco convincente, simplemente por diseño. Sin embargo, algunas fallas, una vez observadas, se clasifican como "errores", a pesar de que se deben a la falta de una característica.

El autor del libro mencionado pasa varias páginas sobre la definición de términos como falla y defecto y describe por qué "error" no es un término apropiado (demasiado confuso).

Resumen de su terminología:

  1. programador crea el defecto
  2. el defecto causa una infección ("estado de programa defectuoso")
  3. la infección se propaga
  4. la infección causa falla ("comportamiento observable malo / no intencionado")
  5. el observador (generalmente el usuario final) ve la falla

Como puede ver, el autor distingue entre causa y efecto, que en el caso de "error" casi siempre se mezcla. La mayoría de las veces el término "error" se aplica al defecto , la infección y el fallo .

0xC0000022L
fuente