Повторне відкриття помилки проти нового


55

Помилка була відкрита, виправлена, перевірена та закрита. Через місяць він знову з’явився в наступній версії після кількох ітерацій без регресу.

За умови, що характеристики помилки однакові, чи повторно відкриєте існуючий ідентифікатор помилки чи відкриєте новий із посиланням на закриту помилку?

Відповіді:


86

Характеристики не мають рівних причин. Нова помилка може мати іншу причину, навіть незважаючи на те, що вона виявляється однаковою. Отже, відкрийте нову помилку та вкажіть її на стару, щоб допомогти розробнику.


23
+1 Є багато різних захворювань з різними методами лікування, які мають загальні симптоми.
FrustratedWithFormsDesigner

Чи справедливо було б зробити висновок, що якщо помилка виявила ту саму причину, ви знову відкриєте її?
KMoraz

@KMoraz: Я б так подумав, але це лише те, що слід врахувати після того, як слідство доведе, що це саме та сама причина. Оскільки симптоми зникли на деякий час, малоймовірно, що це точно та сама помилка, хоча це може бути помилка, введена в іншу частину системи, але кодована так само, як кодована вихідна помилка і тому викликає подібні симптоми.
FrustratedWithFormsDesigner

1
@KMoraz Я б сказав, що ні. Припустимо, це було зафіксовано в 1.0, у 1.1 його не було, але він з’явився на 1.2. Якщо ваш інструмент відстеження проблем не дозволить вам пов’язати його відразу з серверними випусками, ви втратите історію, яку було знайдено та виправлено в 1.0. Просто відкрийте нову помилку.
Енді

1
@Andy Не думай, що це нічого не змінює, але, можливо, 1,1 було це, і ніхто не помітив ...
joshuahedlund

35

Якщо він був перевірений і закритий, і працював деякий час, а потім з’являвся знову після того, як щось було змінено, то це не та сама помилка. Це може проявлятись так само, як і стара помилка, але причина може бути різною. Так що це не та сама помилка. Тож я б відкрив новий, із посиланням на закритий помилку.


16

Завжди відкривайте нову помилку. Чому? Припустимо, він виявляється ідентичним попередньому помилку, і ви випустили виправлення для попередньої помилки. Ваші примітки до випуску документують, що "Виправити помилку XXX". З точки зору відстеження випусків та більш чітких приміток до випуску, краще посилатися на новий помилку "Виправити помилку XXX + 1 (яка була подібною за причиною та наслідком до помилки XXX)", а не казати "Виправити помилку XXX (знову) "або щось подібне.


2
Посилання ідентифікаторів помилок у виправлених нотах просто .. дуже недружелюбно.
Томас Боніні

3
@krelp Корисно, коли ви працюєте з постачальником, щоб виправити проблему, і ви можете відстежувати ідентифікатор помилки, отриманий вами, за допомогою ідентифікатора помилки у примітках до випуску.
Darryl Braaten

1
@Krelp Мені було цікаво, чому це погана ідея, тому я запитав тут: programmers.stackexchange.com/questions/142258/… Можливо, у вас є щось з цього приводу? :)
Травіс Нортчітт

Це хороший момент
KMoraz

4

Взагалі кажучи, відкрийте нову помилку.

Однак якщо вам дозволено спочатку провести деяке розслідування, я би перевірив вашу історію у вихідному коді .

Якщо ви працюєте в командному середовищі, хтось може мати старий код у своїй системі (тобто, вони не зробили Останнє після реєстрації оригінального виправлення), внесли зміни, а потім зареєструвались, не роблячи відмінностей. Погана практика, звичайно, але це відбувається "постійно".

Дивлячись на історію файлів, де виправлена ​​помилка, це швидко підтвердить чи усуне це.


1
"(тобто вони не зробили Останнє після реєстрації оригінального виправлення), внесли зміни, а потім зареєструвались, не роблячи різниці" ... якщо це станеться, ваша система управління джерелом зламана
JoelFan

@JoelFan - не обов’язково. Іноді автоматичне злиття працює неправильно, а іноді і ручне злиття не працює належним чином. Або це може бути просто так, що вони пропустили зміну, коли зробили різницю і т. Д. Все, що я говорю, - це, що пахне людською помилкою, і 2-хвилинна перевірка історії управління джерелом може врятувати багато клопоту
Wonko the Sane

1
Перевірка історії все-таки варта ... бо якщо ваша система управління джерелом зламана, ви хочете це знати.
mjfgates

2
Якщо це трапиться all the time, це не SCM, який зламаний, це ваша команда з розвитку ...
Daenyth

1

Я погоджуюся з пропозицією попередніх плакатів відкрити нову помилку, оскільки вона може не виявитися тією самою першопричиною.

Моєю подальшою рекомендацією було б переконатися, що ви завжди додаєте тести для одиниць та інтеграції, які охоплюють помилку, щоб у майбутніх версіях ви вирішили проблему одразу до того, як вона вийде для ваших клієнтів. Нічого не виглядає гірше для клієнта, тоді як той самий помилка повертається.


1

Не найкраща аналогія. Тільки тому, що симптоми двох людей однакові, це не означає, що захворювання / причина захворювання однакові.

З Вікіпедії:

Помилка програмного забезпечення - це помилка, недолік, збій або несправність у комп'ютерній програмі чи системі, що призводить до того, що вона може призвести до невірного або несподіваного результату або поводитися ненавмисно. Більшість помилок виникає через .....

Помилка - це недолік у коді, і він має симптоми / наслідки. Помилка - це не симптом. Помилка - помилка в коді. Тільки тому, що симптоми однакові, це не обов’язково означає, що той самий недолік викликає симптоми.

Я розумію, що вам слід повторно відкрити помилку, коли ви точно знаєте, що помилка викликана тим самим фрагментом коду. Це може статися, коли код поводиться правильно у всіх сценаріях тестування / тестових випадках, але це не в новому тестовому випадку або тестовому випадку, про який ви не думали раніше. Такий сценарій може не зустрічатися.

Інший сценарій полягає в тому, що ті самі симптоми викликаються новими вадами, тобто новими помилками в інших частинах того ж коду або навіть в інших системах, які впливають на цей код.

Отже, найбезпечніша ставка - відкрити нову помилку, коли виникають такі самі симптоми. Якщо ви бачите, що той самий старий код відповідає за помилку, закрийте нову помилку та повторно відкрийте стару помилку. Якщо ні, то нехай новий помилка залишиться і зв’яжіть його зі старою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.