¿Qué consideramos un bug?

Hay a veces algo de controversia en que se debe considerar un bug (error de programación) y que se debe considerar una nueva funcionalidad, pongamos un ejemplo clásico.

Supongamos que queremos desarrollar una calculadora que pueda realizar divisiones, pues como todos sabemos la división por 0 no se puede realizar. Supongamos que nuestro programa tiene una función que es la que permite realizar la división y que esta función no filtra que el dato que recibe como denominador es un 0, ¿sería esto un bug?.

Supongamos ahora que la interfaz de usuario que recoge los datos es la que nos permite recoger un valor 0 como denominador, ¿sería entonces un bug?.

Pues bueno, me he enterado que un cliente de Openbravo tuvo un problema de este estilo con su soporte profesional, y no me extraña porque en mi antigua empresa tuvimos innumerables problemas con el soporte para determinar que era un bug y que no lo era, porque inmediatamente te decían que debías pagar soporte de segundo nivel ya que el soporte profesional no cubre todo lo que no sea un bug.

El problema era el siguiente, hay una funcionalidad en Openbravo que te permite configurar una cuenta contable como resultado de aplicar una operación sobre otras cuentas, por ejemplo la suma de la cuenta A + la cuenta B. A esto Openbravo lo llama operandos. El problema es que al realizar ciertos cálculos como el balance de situación se debe recorrer el árbol y Openbravo no comprueba que hayas puesto como operando de una cuenta un nodo que sea padre de dicha cuenta, con lo que se produce un bucle infinito y la consecuente excepción de que la pila de la máquina virtual se queda sin memoria.

Lo curioso de todo el asunto es que Openbravo insistió a este cliente suyo en que esto no era un bug sinó una mala configuración y les reiteró que esto debería entrar como soporte de segundo nivel pagándolo adicionalmente. Finalmente como un favor, así lo hicieron notar, les dieron la solución (supongo que conocían este bug clamoroso a mi entender más que de sobra) porque les urgía.

Nota, esto son cosas que están pasando hoy. He sabido de esta anécdota muy recientemente.

Cheli

Comentarios

  1. deabru

    A mi me parece un bug.

    Una cosa es que salga un resultado incoherente, ahí se podría discutir si es mal uso o un error de programación, pero si se peta… e incluso en el caso de los malos usos, si se puede filtrar la operación, también consideraría un fallo no hacerlo.

  2. Juanjo

    Y por qué tuviste que tocar eso? Si una cosa viene bien preconfigurada es el balance de situación y el PyG, gracias a los operandos.

    Juan José

  3. Autor de la
    Entrada
    Cheli

    Pues parece ser que uno de los contables creó una nueva subcuenta y pensó que debía ponerse como operando a si misma, el resultado ya lo conoces.

  4. lluis

    Es claramente un bug, el sistema deberia detectar el ciclo antes de evaluar la operacion y mostrar un mensaje de error controlado.

    En mi proyecto actual tenemos un motor contable que permitir definir variables calculadas. Lo que hacemos es montar un grafo dirigio y ordenarlo topologicamente, y si existen ciclos sacamos un error. La primera version no lo hacia y petaba la pila.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.