Логи, или журнал действий пользователя, помогает тестировщикам понять, что означает ошибка, а также - откуда она взялась.
Вам не нужны логи? Все падения ручных тестов легко воспроизведете сами?
Ок. Выпустили продукт в продакшен, звонит пользователь - у меня упало!
Вы по его путанным объяснениям и так и сяк систему корячите - нет проблемы. Ведь пользователей не учат локализовывать проблемы, запоминать ВСЕ свои шаги (а порой бага воспроизводится только при обязательном выполнении некоего пункта). Он просто "ввел данные", и все.
Когда у вас система логирует ваши действия, и, что более полезно, сообщения об ошибках - когда можно почитать стек, ошибку воспроизводить становится намного проще. Часто, прочитав сообщение об ошибке, уже понимаешь, в чем проблема, не прося помощи разработчиков...
Навеяно обсуждением локализации проблем на тренинге Алексея.
В принципе, иногда хватает даже не столько логов, сколько журнала действий пользователя.
Это:
Был у нас такой случай. По просьбе пользователей сделали журнал действий пользователя. Логировалось создание, редактирование. Но не удаление - им было не нужно.
И вот! Отрелизились, все хорошо, smoke-тесты проблем не обнаружили.
Потом приходит запрос от пользователя - "а что это такое в логах? что за система??".
Смотрим - "Карточка пользователя. Событие - изменение. Автор - Система"...
Я тут же полезла менять карточку, размышляя, как могла упустить такую очевидную ошибку, ведь я ее даже не видела на тестовом стенде! Хм... Изменила карточку, автор в логах корректный... Полезла посмотреть на боевой, какие роли были у измененного. Стала играться на тестовой системе.
Ну никак. Что делают с такими проблемами? Правильно, откладывают в долгий ящик. Не воспроизводится же. Пользователям изредка появляющаяся запись в логах особо не мешала, я воспроизвести не могла, программисты разводили руками.
Но ведь одно дело - когда проблему посчитали низкоприоритетной. и ее решение отложили. А другое - когда ты даже локализовать проблему не смог! Так и пыталась я периодически ее воспроизвести.
И вот наконец... Через пару недель, в следующий релиз, проводя smoke, я внезапно обнаружила ровно такую же запись (так как время было ближе к полуночи, никто больше ее оставить все равно не мог). И вот наконец-то, наконец-то!!! Меня осенило!
Тут надо признать, что локализация проблемы, которую вы долго и упорно не могли отловить, приносит в 100 раз больше удовольствия, чем нахождение обычной ошибки. Так что чувство распирающей гордости/радости я помню до сих пор :) И когда я сказала начальству, что нашла таки ЕЕ, у меня сразу попросили ссылочку - всем было интересно, не одна я искала причину :)))
А причина была проста - не логировалось удаление. И пока я пыталась и так и сяк изменять карточку пользователя, что, собственно, и отображалось в "кривом" логе, я ничего и не находила. А оказалось, что для формирования этой записи надо было удалить... элемент из связанного модуля. Но другого, абсолютно другого модуля...
Мораль сей басни такова - если уж логируете, логируйте все :)
Вам не нужны логи? Все падения ручных тестов легко воспроизведете сами?
Ок. Выпустили продукт в продакшен, звонит пользователь - у меня упало!
Вы по его путанным объяснениям и так и сяк систему корячите - нет проблемы. Ведь пользователей не учат локализовывать проблемы, запоминать ВСЕ свои шаги (а порой бага воспроизводится только при обязательном выполнении некоего пункта). Он просто "ввел данные", и все.
Когда у вас система логирует ваши действия, и, что более полезно, сообщения об ошибках - когда можно почитать стек, ошибку воспроизводить становится намного проще. Часто, прочитав сообщение об ошибке, уже понимаешь, в чем проблема, не прося помощи разработчиков...
Навеяно обсуждением локализации проблем на тренинге Алексея.
В принципе, иногда хватает даже не столько логов, сколько журнала действий пользователя.
Это:
- Нужно пользователям. Например, руководители смогут отслеживать то, что сделали их подчиненные.
- Нужно нам. Чтобы, получив звоночек от пользователей (у нас проблема!), можно было просто открыть боевой стенд (если мы говорим о веб-приложении) и посмотреть журнал - а что, собственно говоря, сейчас происходило? Это поможет навести на мысль, куда копать дальше.
Был у нас такой случай. По просьбе пользователей сделали журнал действий пользователя. Логировалось создание, редактирование. Но не удаление - им было не нужно.
И вот! Отрелизились, все хорошо, smoke-тесты проблем не обнаружили.
Потом приходит запрос от пользователя - "а что это такое в логах? что за система??".
Смотрим - "Карточка пользователя. Событие - изменение. Автор - Система"...
Я тут же полезла менять карточку, размышляя, как могла упустить такую очевидную ошибку, ведь я ее даже не видела на тестовом стенде! Хм... Изменила карточку, автор в логах корректный... Полезла посмотреть на боевой, какие роли были у измененного. Стала играться на тестовой системе.
Ну никак. Что делают с такими проблемами? Правильно, откладывают в долгий ящик. Не воспроизводится же. Пользователям изредка появляющаяся запись в логах особо не мешала, я воспроизвести не могла, программисты разводили руками.
Но ведь одно дело - когда проблему посчитали низкоприоритетной. и ее решение отложили. А другое - когда ты даже локализовать проблему не смог! Так и пыталась я периодически ее воспроизвести.
И вот наконец... Через пару недель, в следующий релиз, проводя smoke, я внезапно обнаружила ровно такую же запись (так как время было ближе к полуночи, никто больше ее оставить все равно не мог). И вот наконец-то, наконец-то!!! Меня осенило!
Тут надо признать, что локализация проблемы, которую вы долго и упорно не могли отловить, приносит в 100 раз больше удовольствия, чем нахождение обычной ошибки. Так что чувство распирающей гордости/радости я помню до сих пор :) И когда я сказала начальству, что нашла таки ЕЕ, у меня сразу попросили ссылочку - всем было интересно, не одна я искала причину :)))
А причина была проста - не логировалось удаление. И пока я пыталась и так и сяк изменять карточку пользователя, что, собственно, и отображалось в "кривом" логе, я ничего и не находила. А оказалось, что для формирования этой записи надо было удалить... элемент из связанного модуля. Но другого, абсолютно другого модуля...
Мораль сей басни такова - если уж логируете, логируйте все :)