错误重新打开与新


55

错误已被打开,修复,验证和关闭。一个月后,它经过几次迭代,没有任何回归,再次出现在后续版本中。

如果错误特征相同,您将重新打开现有的错误ID还是使用链接到已关闭错误的链接打开一个 ID ?

Answers:


86

特征不等于原因。新的bug可能具有不同的潜在原因,即使它看起来是相同的。因此,打开一个新错误并将其指向旧错误以帮助开发人员。


23
+1有许多不同的疾病,不同的治疗方法具有共同的症状。
FrustratedWithFormsDesigner 2012年

可以推断出,如果错误被证明是由相同的原因引起的,您可以重新打开它吗?
KMoraz 2012年

@KMoraz:我会这样认为,但这只是在调查证明是完全相同的原因之后才考虑的。由于症状消失了一段时间,因此不太可能是完全相同的错误,尽管它可能是引入系统不同部分的错误,但是编码方式与原始错误的编码方式相同,因此会导致类似的症状。
FrustratedWithFormsDesigner 2012年

1
@KMoraz我会拒绝。假设它已在1.0中修复,而1.1没有,但是在1.2中重新出现。除非您的问题跟踪程序使您立即将其与服务器版本相关联,否则您将失去在1.0中找到并修复该问题的历史记录。只需打开一个新的错误。
安迪

1
@Andy认为它不会改变任何东西,但也许1.1可以改变它,却没人注意到...
joshuahedlund 2012年

35

如果已验证并关闭它,并且工作了一段时间,然后在更改了某些内容后又出现了,那么它不是同一个错误。它的显示方式可能与旧错误类似,但其原因可能有所不同。因此,它不是同一个错误。因此,我将打开一个新的,带有指向已关闭的错误的链接。


16

始终打开一个新的错误。为什么?假设它与先前的错误相同,并且您已经发布了针对先前的错误的修复程序。您的发行说明将记录“修复错误XXX”。从问题跟踪和使发行说明更清晰的角度来看,最好是引用新的错误“修复错误XXX + 1(其因果关系与错误XXX类似)”,而不是说“修复错误”。 XXX(再次)”或类似内容。


2
在补丁说明中引用错误ID只是..非常不友好。
Thomas Bonini 2012年

3
@krelp与供应商合作以解决问题时非常有用,您可以在发行说明中跟踪收到的带有错误ID的错误ID。
Darryl Braaten'3

1
@Krelp我想知道为什么这不是一个好主意,所以我在这里问:programmers.stackexchange.com/questions/142258 / ... 也许您对此有一些意见?:)
Travis Northcutt 2012年

这是一个很好的观点
KMoraz '04年

4

一般来说,打开一个新的错误。

但是,如果允许您先进行一些调查,我将在源代码中检查您的历史记录

如果您在团队环境中工作,则某些人的系统上可能有旧代码(即,他们在签入原始修订后没有执行“获取最新信息”),进行了更改,然后在不进行差异的情况下签入。当然,这是错误的做法,但是“一直”发生。

查看错误已修复的文件的历史记录将很快确认或消除这种可能性。


1
“(即,他们没有在签入原始修订后未获取最新信息),进行了更改,然后在不进行差异的情况下签入。” ...如果发生这种情况,则您的源代码管理系统已损坏
JoelFan

@JoelFan-不一定。有时自动合并无法正常工作,有时手动合并也无法正常工作。或者,可能是他们在进行差异分析时错过了更改等情况。我只想说这是人为错误的味道,并且对源代码管理历史记录进行2分钟的检查可能会节省很多时间。麻烦。
桑科旺科(Wonko the Sane),2012年

1
无论如何,检查历史记录都是值得的...因为如果您的源代码管理系统损坏了,您想知道这一点。
mjfgates 2012年

2
如果发生这种情况all the time,不是SCM崩溃了,而是您的开发团队...
Daenyth 2012年

1

我同意以前的海报建议打开一个新的错误,因为它可能最终不是相同的根本原因。

我的进一步建议是确保您始终添加涵盖该错误的单元和集成测试,以便在以后的版本中,您可以在将问题发布给客户之前立即发现问题。对于客户来说,没有什么比看上去更糟的了,然后再看到相同的错误。


1

不是最好的类比-仅仅因为两个人的症状相同,并不意味着疾病/病因是相同的。

从维基百科:

软件错误是指计算机程序或系统中的错误,缺陷,故障或错误,导致其产生不正确或意外的结果,或行为异常。大多数错误来自.....

错误是代码中的缺陷,并且具有症状/影响。错误不是症状。错误是代码中的错误。仅仅因为症状相同,并不一定意味着相同的缺陷导致了症状。

我的理解是,当您确定某个错误是由于同一段代码引起的时,您应该重新打开一个错误。当代码在所有测试场景/测试用例中均能正常运行,而在新的测试用例或您之前未曾考虑过的测试用例中都无法正常运行时,可能会发生这种情况。这种情况可能并不常见。

另一种情况是,相同的症状是由新的缺陷引起的,即相同代码的其他部分甚至影响该代码的其他系统中的新错误。

因此,最安全的选择是在出现相同症状时打开一个新的错误。如果您发现该错误由同一旧代码负责,请关闭新错误并重新打开旧错误。如果不是,则保留新的bug并将其链接到旧的bug。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.