Як поводитися з помилками, які, на мою думку, я виправив, але я не зовсім впевнений


13

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

Якби я встановив " statusфіксований", а " solutionфіксований", це означало б щось повністю виправлене, чи не так?

Чи загальноприйнята практика встановлювати значення " statusфіксовано" та " solutionвідкривати", щоб зазначити тестерам, що "це, мабуть, виправлено, але для цього потрібно більше уваги"?

Редагувати: більшість (якщо не всі) помилки мають два властивості для статусу помилки, можливо, імена не однакові. До statusЯ маю в виду новий, призначений, фіксований, закритий, і т.д. , і solutionя маю в виду відкритий (новий), фіксований, нерозв'язною, що не відтвореним, дублювати, не помилка і т.д.


3
Це дещо специфічно для вашої програми відстеження помилок. Які ще значення можна присвоїти статусу та рішення ?
шарфрідж

У деяких трекерах помилок є статус вирішеного, а інший закритий. Лише QA-люди можуть встановлювати статус закритим, але розробники можуть встановлювати статус вирішеним.
Брайан

Відповіді:


8

Чи загальноприйнята практика встановлювати статус фіксованим, а рішення відкривати, вказувати тестерам, що "це, мабуть, виправлено, але для цього потрібно більше уваги"?

Поширене чи ні, це все-таки правильно робити, і ви виклали, чому самі: як би там не було, це хороший підхід до

вкажіть тестерам, що "це, мабуть, виправлено, але йому потрібно приділити більше уваги"


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

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


6

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


+1 - це найпростіша відповідь. Якщо ви постаралися з усіх сил, а тестовий набір тестів достатньо сильний, що ще ви можете зробити?
ozz

3

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

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

Наприклад, скажімо, ви змінюєте програму, і тестер вкладає 1 годину на спробу відтворити помилку, а помилка не вискочить - вистачило однієї години? Або додатково тестувати марну трату часу, тому що помилка вже була виправлена?

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

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


4
Для певних типів помилок відтворювальний тестовий сценарій просто не існує. Наприклад, помилка, пов’язана з термінами, може траплятися в середньому один раз у мільйон - але неможливо передбачити, чи буде вона 3-го чи 532454-го. Тим не менш, такі помилки є помилками і їх потрібно виправити.
Joonas Pulakaka

3
@Joonas Pulakka: Я згоден. І такі помилки можуть залежати від зовнішніх обставин. У разі вбудовування вони можуть залежати від перенапруг, спричинених чимось поза вашим контролем. Не намагатися виправити це не завжди найкраще рішення, особливо, якщо мені трапляється знайти кодовий запах, який я підозрюю, що це може бути причиною цієї помилки. У цьому випадку чому я не можу це виправити?
vsz

2
@JoonasPulakka: на мій досвід щодо відтворюваних сценаріїв, у більшості випадків, коли люди кажуть «це неможливо», їм просто не вистачає правильної ідеї зробити все можливим. У вашому прикладі можна створити сценарій із циклом "10 мільйонів пробігів", що зробить принаймні дуже ймовірним відображення помилки за розумну кількість часу.
Док Браун

2
@vsz: ви, звичайно, маєте це виправити, але те, що я пропоную, - спершу слід створити тест (або дати підказникам тест, що перевірити), а потім виправити це, а не навпаки.
Doc Brown

2
@DocBrown має рацію, ще один спосіб задуматися над тим, що іноді помилки потребують статистичного підходу, щоб "відтворити" їх. Можливо, може бути, що існує дуже специфічний набір входів / обставин, що відтворює помилку, але ви, можливо, НЕ уявляєте, що це за входи, і набір можливих входів може бути занадто величезним, щоб повторити. У цих випадках одним із підходів є збирання статистичних даних про виникнення помилок кожного разу, коли ви намагаєтеся вирішити її. Це може зайняти багато часу, і результати можуть не дати тобі 100% «впевненості» в статистичному сенсі, але іноді це все, що ти маєш.
Анджело

0

Іноді єдині наявні у вас докази - це лише статистичні дані, наприклад, це відбувається один-два рази на місяць, але в іншому випадку, здавалося б, не пов'язане ні з чим. Це загалом найгірший тип помилок для діагностики та усунення, з якими я коли-небудь стикався, тому що ви не можете сказати, чи ваші виправлення впливають на певну ефективність. Останній з них, який мені довелося вирішити, закінчився статистичним виправленням: частота симптомів знизилася до 10%, з якої ми почали. Остаточного твору так і не було знайдено, а може і було, але ніхто не мав можливості сказати.

Дві поради, які я маю, (1) припускають, що численні причини можуть діяти, поки ви не дізнаєтесь про інше, і (2) висунути гіпотезу про те, як симптоми можуть існувати, а потім розірвати кожну лінію логіки, яка бере участь навіть віддалено. Глибокі покрокові інструменти іноді є єдиним засобом для досягнення задоволення.

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