Diferencias entre error, falla, fracaso y defecto.

Inicias una carrera como S/W QA Engineer (Software Quality Assurance), o piensas hacerlo, y te has topado con la pregunta «¿Qué es un defecto?» y «¿Por qué algunas veces escucho que algo es un defecto y otras no?«. Bueno, este post te ayudará a clarificar tus dudas.

Hablando de software, uno puede hallar referencias a los términos falla, error y defecto. Aunque sus significados están relacionados, hay diferenias importantes entre estos conceptos:

  • Error: Es una acción humana que produce un resultado incorrecto. Las equivocaciones cometidas por los programadores (typos o «errores de dedo», por ejemplo) son conocidos como errores. Estos pueden suceder por diferentes motivos, como: confusión en entender los requisitos del sistema, malinterpretar algún valor, etc.
  • Defecto: Es cuando una carcterística reelevante para la calidad se aleja de sus valores especificados lo cual produce que un producto no cumpla con sus requisitos de uso normales. El «error» introducido por un programador en el código es conocido como «defecto.»
  • Falla: Es la manifestación de un error en el software. También son conocidos como «bugs» («bichos» o insectos en inglés). En otras palabras, cuando un defecto es encontrado por el usuario final, lo llamamos falla.

Como podemos ver, la diferencia entre los términos anteriores está más relacionada al momento del desarrollo del software en el cual se encuentran los fallos (para no utilizar ninguno de los términos anteriores) a características propias inherentes a cada término. Si una inexactitud se descubre durante el desarrollo de software, lo llamaremos error; si se encuentra durante el análisis de calidad (Sofwtare QA), lo llamaremos defecto; y si se localiza al momento de la producción (cuando el software entra en contacto con sus usuarios finales) lo llamaremos falla. Así es más sencillo, ¿no creen?

Puede darse el caso en el que una falla no sea detectada por un largo tiempo, hasta que algún acontecimiento específico la activa. Cuando un cierto evento activa una falla, lleva al programa a un «estado de error intermedio». Si se permite que la compilación proceda de un estado de error sin una acción correctiva, el programa podrá causar eventualmente un fracaso. Debo de comentar que, en la programación tolerante a fallos, se pueden tomar ciertas acciones correctivas para «sacar» a un programa de un estado de error hacia un estado deseable de tal manera que calculos posteriores no den lugar a un fracaso.

 

Ahora bien, ¿Qué es un fracaso?.

Hablando de fracasos en software podemos comentar de varios ejemplos por ejemplo en este post de omicrono.com en el cual hablan de los horrorosos casos de webOS, Windows Vista, Bit.ly, entre otros. Sin embargo, en S/W QA, se considera un fracaso cuando el software siendo desarrollado (o cierta parte del mismo) se sale de curso, terminando con un producto que no fue desarrollado para el propósito que se buscaba. Esto sucede cuando no se tiene bien definido el propósito del producto desarrollado (*cof cof* Google Wave), lo cual ocurre con mayor frecuencia de lo que esperaríamos o quisiéramos.

Deja un comentario