Bug reopen vs. new

55

Se abrió, corrigió, verificó y cerró un error. Un mes después, apareció nuevamente en una versión posterior después de varias iteraciones sin ninguna regresión.

Siempre que las características del error sean las mismas, ¿volvería a abrir el ID de error existente o abriría uno nuevo con un enlace al error cerrado?

KMoraz
fuente

Respuestas:

86

Las características no son iguales a las causas. El nuevo error podría tener una razón subyacente diferente, aunque parezca ser el mismo. Entonces, abra un nuevo error y apúntelo al anterior para ayudar al desarrollador.

Dibbeke
fuente
23
+1 hay muchas enfermedades diferentes con diferentes tratamientos que comparten síntomas comunes .
FrustratedWithFormsDesigner
¿Sería justo deducir que si el error demostró tener la misma causa, lo vuelves a abrir?
KMoraz
@KMoraz: Creo que sí, pero eso es solo algo a considerar después de que la investigación demuestre que es exactamente la misma causa. Dado que los síntomas desaparecieron por un tiempo, es poco probable que sea exactamente el mismo error, aunque podría ser un error introducido en una parte diferente del sistema, pero codificado de la misma manera que el error original fue codificado y causando síntomas similares.
FrustratedWithFormsDesigner
1
@KMoraz Yo diría que no. Supongamos que se solucionó en 1.0, 1.1 no lo tenía, pero reapareció en 1.2. A menos que su rastreador de problemas le permita asociarlo con varias versiones a la vez, perderá el historial que se encontró y solucionó en 1.0. Solo abre un nuevo error.
Andy
1
@Andy No creo que cambie nada, pero quizás 1.1 lo tuvo y nadie se dio cuenta ...
joshuahedlund
35

Si se verificó y cerró, y funcionó durante un tiempo, y luego apareció de nuevo después de que algo cambió, entonces no es el mismo error. Puede manifestarse de manera similar al error anterior, pero su causa bien puede ser diferente. Entonces no es el mismo error. Entonces abriría uno nuevo, con un enlace al error cerrado.

Joonas Pulakka
fuente
16

Abre un nuevo error, siempre. ¿Por qué? Supongamos que resulta ser idéntico al error anterior, y ha lanzado la solución para el error anterior. Sus notas de la versión documentarán que "Fix Bug XXX". Desde el punto de vista del seguimiento de problemas y de aclarar las notas de la versión, es preferible consultar el nuevo error "Fix Bug XXX + 1 (que era similar en causa y efecto al Bug XXX)" en lugar de decir "Fix Bug XXX (otra vez) "o algo similar.

James McLeod
fuente
2
Citar ID de errores en las notas del parche es simplemente ... muy hostil.
Thomas Bonini
3
@krelp Es útil cuando trabaja con un proveedor para solucionar un problema y puede rastrear la identificación de error que recibió con una identificación de error en las notas de la versión.
Darryl Braaten
1
@Krelp Me preguntaba por qué es una mala idea, así que pregunté aquí: programmers.stackexchange.com/questions/142258/… ¿ Quizás tenga alguna información al respecto? :)
Travis Northcutt
Este es un buen punto
KMoraz el
4

En términos generales, abra un nuevo error.

Sin embargo, si se le permite investigar primero, verificaría su historial en el código fuente .

Si trabaja en un entorno de equipo, alguien puede tener un código antiguo en su sistema (es decir, no realizó un Get Latest después de que se revisó la corrección original), realizó cambios y luego se registró sin hacer una diferencia. Mala práctica, claro, pero sucede "todo el tiempo".

Mirar el historial de los archivos donde se solucionó el error lo confirmará o eliminará rápidamente como una posibilidad.

Wonko el cuerdo
fuente
1
"(es decir, no hicieron un Get Latest después de que se revisó la corrección original), hicieron cambios y luego se registraron sin hacer una diferencia" ... si eso sucede, su sistema de control de fuente está roto
JoelFan
@JoelFan, no necesariamente. A veces, la fusión automática no funciona correctamente y, a veces, la fusión manual tampoco funciona correctamente. O bien, podría ser el caso de que se perdieron el cambio cuando hicieron el diff, etc. Todo lo que digo es que huele a error humano, y una verificación de 2 minutos del historial de control de la fuente puede ahorrar mucho molestia.
Wonko el cuerdo
1
Comprobar el historial vale la pena de todos modos ... porque si su sistema de control de fuente está roto, quiere saber eso.
mjfgates
2
Si eso sucede all the time, no es el SCM el que está roto, es tu equipo de desarrollo ...
Daenyth
1

Estoy de acuerdo con la sugerencia de los pósters anteriores de abrir un nuevo error, ya que puede no ser la misma causa raíz.

Mi recomendación adicional sería asegurarme de que siempre esté agregando pruebas de unidad e integración que cubran el error para que en futuras versiones detecte el problema de inmediato antes de que se lo comunique a sus clientes. Nada le parece peor a un cliente que ver el mismo error volver.

Mike Parkhill
fuente
1

No es la mejor analogía: el hecho de que los síntomas de dos personas sean los mismos no significa que la enfermedad / causa de la enfermedad sea la misma.

De wikipedia:

Un error de software es un error, falla, falla o falla en un programa o sistema de computadora que hace que produzca un resultado incorrecto o inesperado, o que se comporte de manera no intencionada. La mayoría de los errores surgen de .....

Un error es una falla en el código y tiene síntomas / efectos. Un error no es el síntoma. Un error es el error en el código. El hecho de que los síntomas sean los mismos no significa necesariamente que el mismo defecto esté causando los síntomas.

Según tengo entendido, debe volver a abrir un error cuando sepa con certeza que un error se debe al mismo código. Esto puede suceder cuando el código se comporta correctamente en todos los escenarios de prueba / casos de prueba, pero no en un nuevo caso de prueba o caso de prueba en el que no pensó anteriormente. Este tipo de escenario podría no ser común.

El otro escenario es que los mismos síntomas son causados ​​por nuevas fallas, es decir, nuevos errores en otras partes del mismo código o incluso en otros sistemas que afectan ese código.

Entonces, la apuesta más segura es abrir un nuevo error cuando ocurren los mismos síntomas. Si ve que el mismo código anterior es responsable del error, cierre el nuevo error y vuelva a abrir el error anterior. De lo contrario, deje que el nuevo error permanezca y vincúlelo con el anterior.

BugBot
fuente