¿Diferencia entre un defecto y un fallo en las pruebas?

¿Cuál es la diferencia entre un defecto y un fallo?

Solución
  • Un bug es el resultado de un error de codificación

  • Un defecto es una desviación de los requisitos

Es decir: Un defecto no significa necesariamente que haya un bug en el código, podría ser una función que no se implementó pero que estaba definida en los requisitos del software.


De la página de Wikipedia sobre pruebas de software:

No todos los defectos de software son causados por errores de codificación. Una fuente común de defectos caros es causada por lagunas en los requisitos, por ejemplo, requisitos no reconocidos, que resultan en errores de omisión por parte del diseñador del programa[14]. Una fuente común de lagunas en los requisitos son los requisitos no funcionales como la comprobabilidad, escalabilidad, mantenibilidad, usabilidad, rendimiento y seguridad.

Comentarios (8)

Citando a Ilene Burnstein del libro Practical Software Testing (recomendado) que parte de la definición del "IEEE Standards Collection for Software Engineering" (1994) y del "IEEE Standard Glossary of Software Engineering Terminology" (estándar 610.12, 1990):

Error

Un error es una equivocación, malentendido o malentendido por parte de un desarrollador de software ; En la categoría de desarrollador se incluimos a los ingenieros de software programadores, analistas y probadores. Por ejemplo, un desarrollador puede malinterpretar una notación de diseño, o un programador puede escribir una variable nombre de forma incorrecta.

Fallos (Defectos)

Un fallo (defecto) se introduce en el software como resultado de un error. Se trata de una anomalía en el software que puede hacer que se comporte incorrectamente, y no de acuerdo con su especificación. ; Los fallos o defectos a veces se llaman "bugs". El uso de este último término trivializa el impacto que los fallos tienen en la calidad del software. El uso del término "defecto" también se asocia con artefactos de software tales como requisitos y documentos de diseño. Los defectos que se producen en estos artefactos también son causados por errores y son suelen detectarse en el proceso de revisión proceso.

Fallos

Un fallo es la incapacidad de un sistema o componente de software para realizar sus funciones requeridas dentro de los requisitos de rendimiento especificados.

Durante la ejecución de un software componente o sistema, un probador desarrollador o usuario observa que éste no produce los resultados esperados. En algunos casos, un tipo particular de mal comportamiento indica un cierto tipo de fallo está presente. Podemos decir que el tipo de mal comportamiento es un síntoma del fallo. Un experimentado desarrollador/probador tendrá un conocimiento base de fallos/síntomas/casos de fallo (modelos de fallo como los descritos en el Capítulo 3) almacenados en la memoria. Un comportamiento incorrecto de comportamiento incorrecto puede incluir producir valores incorrectos para las variables de salida, una respuesta incorrecta por parte de un dispositivo, o una imagen incorrecta en una pantalla. Durante el desarrollo, los fallos suelen ser observados por los probadores, y los fallos son localizados y reparados por desarrolladores.

Puede leer el capítulo completo en Google Books, aquí.

Comentarios (0)

Existen diferentes términos relacionados con los errores de software. Extracto de un curso que hice:

  • Error: Acción u omisión humana que da lugar a un fallo.

  • Fallo**: El fallo es un defecto del software (paso, proceso o definición de datos incorrecta) que provoca una avería.

  • Error**: Igual que Fallo.

  • Fallo**: Incapacidad de un programa informático para realizar sus funciones requeridas dentro de los requisitos de rendimiento especificados.

Según esto, no hay diferencia entre un defecto y un fallo. Sin embargo, hay quien sostiene que un bug es un error que se detecta antes de lanzar el software, mientras que un defecto es el que detecta el cliente.

No he podido resistirme a publicar el famoso "primer caso real de bug encontrado".

Comentarios (3)