Answers:
特征不等于原因。新的bug可能具有不同的潜在原因,即使它看起来是相同的。因此,打开一个新错误并将其指向旧错误以帮助开发人员。
如果已验证并关闭它,并且工作了一段时间,然后在更改了某些内容后又出现了,那么它不是同一个错误。它的显示方式可能与旧错误类似,但其原因可能有所不同。因此,它不是同一个错误。因此,我将打开一个新的,带有指向已关闭的错误的链接。
始终打开一个新的错误。为什么?假设它与先前的错误相同,并且您已经发布了针对先前的错误的修复程序。您的发行说明将记录“修复错误XXX”。从问题跟踪和使发行说明更清晰的角度来看,最好是引用新的错误“修复错误XXX + 1(其因果关系与错误XXX类似)”,而不是说“修复错误”。 XXX(再次)”或类似内容。
一般来说,打开一个新的错误。
但是,如果允许您先进行一些调查,我将在源代码中检查您的历史记录。
如果您在团队环境中工作,则某些人的系统上可能有旧代码(即,他们在签入原始修订后没有执行“获取最新信息”),进行了更改,然后在不进行差异的情况下签入。当然,这是错误的做法,但是“一直”发生。
查看错误已修复的文件的历史记录将很快确认或消除这种可能性。
all the time
,不是SCM崩溃了,而是您的开发团队...
不是最好的类比-仅仅因为两个人的症状相同,并不意味着疾病/病因是相同的。
从维基百科:
软件错误是指计算机程序或系统中的错误,缺陷,故障或错误,导致其产生不正确或意外的结果,或行为异常。大多数错误来自.....
错误是代码中的缺陷,并且具有症状/影响。错误不是症状。错误是代码中的错误。仅仅因为症状相同,并不一定意味着相同的缺陷导致了症状。
我的理解是,当您确定某个错误是由于同一段代码引起的时,您应该重新打开一个错误。当代码在所有测试场景/测试用例中均能正常运行,而在新的测试用例或您之前未曾考虑过的测试用例中都无法正常运行时,可能会发生这种情况。这种情况可能并不常见。
另一种情况是,相同的症状是由新的缺陷引起的,即相同代码的其他部分甚至影响该代码的其他系统中的新错误。
因此,最安全的选择是在出现相同症状时打开一个新的错误。如果您发现该错误由同一旧代码负责,请关闭新错误并重新打开旧错误。如果不是,则保留新的bug并将其链接到旧的bug。