Рекомендации по автоматической регистрации непредвиденных ошибок / следов стека в трекере ошибок
Мы хотели автоматически регистрировать все непредвиденные клиентские ошибки на нашем баг-трекере. Для справки наше приложение написано на Java/GWT/Guice/Hibernate/Jetty, а наш трекер ошибок - это размещенная версия FogBugz, которая может создавать ошибки программно или по электронной почте.
Самая большая проблема, с которой я сталкиваюсь, это следы стека, которые происходят в цикле, перегружают трекер ошибок, создавая тысячи случаев. У кого-нибудь есть предлагаемый способ справиться с автоматическим созданием ошибок, подобным этому?
3 ответа
Если вы используете FogBugz bugscout (см. Также последние документы здесь), то у него есть возможность просто увеличить количество случаев одной и той же проблемы, вместо того, чтобы снова и снова создавать новое дело для одного и того же исключения.
JIRA поддерживает автоматическое создание проблем с помощью так называемых сервисов: документация.
У кого-нибудь есть предлагаемый способ справиться с автоматическим созданием ошибок...?
Ну, у меня есть. Не делай этого.
Что вы собираетесь извлечь из этого? Усилие тестера? По моему опыту, все усилия, которые можно было бы сэкономить, были потеряны многократно, поскольку накладные расходы передавались разработчикам, которые все равно должны были анализировать и поддерживать автоматически созданные заявки. Не говоря уже об общем разочаровании, вызванном этим.
- Наименее контрпродуктивным способом, который я могу себе представить, было бы что-то вроде создания выделенной категории ошибок или экземпляра средства отслеживания ошибок, чтобы только тестеры могли видеть и использовать его.
В этой "песочнице" автоматически создаваемые ошибки могут быть назначены тестировщикам, которые впоследствии будут передавать проанализированные и обобщенные отчеты об ошибках разработчикам.
И даже в этом случае я бы рекомендовал обратить пристальное внимание на то, что пользователи (тестеры) говорят о системе. Если они, скажем, начнут жаловаться на систему, попробуйте вместо этого попробовать ручной способ.
Вы уверены, что хотите это сделать?
Очевидно, что это зависит от вашего приложения, но даже при тщательном рассмотрении случаев, которые могут генерировать множество отчетов об ошибках (из-за циклов), этот подход может все же закончить заполнением трекера ошибок.
Как насчет этого? Кодируйте свое приложение так, чтобы каждый раз, когда возникало исключение, вы собирали информацию о клиенте (IP, логин, версия приложения и т. Д.) И отправляли эту + трассировку стека (или весь объект исключения.ToString()) по электронной почте себе. (или команда разработчиков).
Затем на вашем почтовом клиенте есть фильтр, который сортирует входящую почту и добавляет ее в удобную папку, которую вы сможете просмотреть позже.
Таким образом, вы можете получить тонны электронных писем, возможно, об одной или нескольких проблемах, но тогда вам все равно, потому что вы сами вводите проблемы в багтрекер и легко удаляете эту тонну почты.
Это то, что я сделал для своего приложения (которое является клиент-серверным настольным приложением). В этом случае все хорошо.
Надеюсь, что это помогло!