Как вы отслеживаете ошибки в ваших личных проектах? [закрыто]


45

Я пытаюсь решить, нужно ли мне пересмотреть процесс отслеживания дефектов для моих домашних проектов. Последние несколько лет я действительно отслеживаю дефекты, используя TODOтеги в коде, и отслеживаю их в определенном виде (я использую Eclipse, у которого есть приличная система тегов).

К сожалению, я начинаю задаваться вопросом, является ли эта система неустойчивой. Дефекты, которые я нахожу, обычно связаны с фрагментом кода, над которым я работаю; ошибки, которые не сразу понимаются, как правило, забываются или игнорируются. Я написал заявление для своей жены, у которого был серьезный дефект в течение почти 9 месяцев, и я все время забываю его исправить.

Какой механизм вы используете для отслеживания дефектов в ваших личных проектах? У вас есть конкретная система или процесс расстановки приоритетов и управления ими?


Проверьте todo.ly
Работа

1
Это может быть за чертой как вопрос, который faq считает не по теме. "Какая технология лучше?"
JZD

Trello - отличный инструмент для подобных вещей, и он бесплатный.
gahooa

Ответы:


25

Fogbugz (бесплатная индивидуальная лицензия), если это длинный проект или простой список дел (с использованием задач Google)


7
Приятно. Я не осознавал, что у FogBugz есть бесплатная версия (для тех, кто ищет ее), которая называется Student and Startup Edition.
Эрик Кинг

На первый взгляд выглядит очень интересно
bedwyr

После использования FogBugz я не вижу, как кто-то предпочитает что-то другое. Чтобы не приходилось отслеживать несколько учетных записей fogbugz, я просто создал для себя один личный fogbugz: earlz.fogbugz.com
Earlz

17

Я обычно использую веб-систему контроля версий (Github, Bitbucket, Redmine, Google Code, ...) для хранения моего исходного кода и отслеживания ошибок. Если вы считаете, что в конкретном коде есть ошибка, вы можете создать проблему с номером ревизии / changelist / changeset и указать, какой файл и диапазон строк вы подозреваете.


8

Я использовал электронную таблицу / текстовый файл для каждого проекта (комментарии ToDo в коде плохо масштабируются по причинам, которые вы перечислили; они локальны по отношению к коду, и если есть проблема, которой нет, она обычно проскальзывает через трещины).

Недавно я установил сервер Redmine в моей домашней сети. Это немного тяжеловесно для «команды» из одного человека, но я работаю над довольно многими проектами в свое свободное время и, как правило, просто использую опции Issue Tracker + Repository, возможно, со странной вики-страницей в более сложных местах.

Мой друг клянется Pivotal Tracker в тех же целях, но мой нынешний работодатель использует Redmine внутри, поэтому я решил, что это даст мне некоторую практику. Это не плохо.

Для проектов с открытым исходным кодом я просто использую отслеживание проблем GitHub.


Комментарии к заданию в коде работают лучше, если они представляют собой Doxygen / подобные аннотации, при условии, что вы регулярно создаете документы. Вы получаете собранный список задач (и ошибок) в сгенерированных документах. Очевидно, что отсутствуют гибкие параметры отчетов для специального средства отслеживания ошибок, и вы не собираетесь искать старые (предположительно) исправленные ошибки в своем хранилище, когда аннотации удаляются из текущей версии, но это может довольно неплохо работать для небольших простые проекты.
Steve314

7

На самом деле я установил бесплатную систему отслеживания ошибок MANTIS на своем размещенном веб-сервере (которую я использую для блога и других вещей) и добавил все свои недостатки.

Другими словами, я запускаю свои вещи так, как будто они были профессиональными и за них платят.

Я считаю, что это помогает сохранять лучшее мышление (устранение дефектов и т. Д.), А также быть согласованным (ish) с другими методами, обычно используемыми в промышленности.

Также используйте заметки TODO в коде и т. Д., Но только для заметок, таких как: «однажды я должен сделать это более эффективным, сортировка пузырьков снижает производительность». Или для более непосредственных заметок о том, куда вы попали, когда вас вытащили на ужин :)


Я использовал MANTIS, и это здорово!
Работа


5

Мы используем JIRA на моем рабочем месте, и я большой поклонник этого. Множество продуктов и людей вовлечены, и все это прекрасно управляется.


+1 Jira - безусловно лучшая система отслеживания проблем, с которой я столкнулся. Легко начать использовать, постепенно использовать более продвинутые функции, когда это необходимо. Достаточно дружелюбны даже для нетехнических пользователей, чтобы сообщать и отслеживать проблемы.
Маглоб

Еще одна похвала. Jira - сильно «экзотермический» инструмент, который дает больше, чем вы вкладываете, что запускает цикл положительной обратной связи :)
Maglob

4

Я давно искал ответ на этот вопрос и с тех пор разработал очень аккуратную и простую систему, которая отвечает следующим ключевым задачам:

Цели в порядке важности:

  1. Сделайте возможным ввод нового задания / ошибки настолько легко, насколько это возможно, чтобы я мог записать его, как только обнаружу или придумать, и вернуться к кодированию, прежде чем потерять свое место.
  2. Позволяет легко видеть и управлять проблемами без большого количества поиска, щелчка, детализации.
  3. Упростите связь с контролем версий, чтобы позже я смог узнать, какие изменения были внесены для решения проблемы, или какая задача или ошибка привели к конкретному изменению в коде.
  4. Сделайте его относительно простым в настройке: минимальная установка и настройка и минимальная цена.

(3 и 4 менее важны, и я был бы в порядке с системой, которая не предоставляет их, но эта делает).

Шаг 1: Получить проект в Bitbucket

Я использую bitbucket для отслеживания проблем и для контроля версий git (например, для проекта iOS в XCode). Я посмотрел на FogBUGz (о котором я читал в течение многих лет на JoelOnSoftware) и GitHub и других, но битбакет, кажется, имеет лучшие бесплатные функции для небольших команд.

Шаг 2. Использование отслеживания ошибок Bitbucket в проекте

Далее я настроил отслеживание проблем в том же проекте с битбакетом. Так что в моем проекте теперь есть git-репозиторий и система отслеживания ошибок.

Шаг 3: Сделайте отслеживание проблем простым!

Для этого я использую Bitbucket Cards, который является хорошим, простым канбан-подобным интерфейсом к проблемам Bitbucket. Вам просто нужно войти в свою учетную запись Bitbucket и настроить нужные столбцы. У меня есть четыре столбца: Backlog, Next, Bugs и Resolved. (Я думаю о слиянии ошибок с отставанием, но пока не обращайте на это внимания)

Пример Bitbucket Cards (Это изображение из блога Bitbucket Cards, а не из моего проекта, поэтому столбцы отличаются от тех, которые я использую)

Bitbucket Cards позволяет вам установить очень простой фильтр для каждого списка, в котором вы выбираете статус (ы) и вид (ы) проблем, которые идут в столбце карты. Итак, openвопросы о статусе подобного рода bugнаходятся в столбце « Ошибка» .

Определение столбца (Это из моего проекта: вот как я выбираю то, что идет в столбце Bug)

Что действительно круто, так это то, что когда вы перетаскиваете карту из одного столбца в другой, она автоматически изменит статус проблемы, которую представляет карта, в соответствии с определением в столбце назначения.

Еще одна приятная вещь в Bitbucket Cards - это то, что она не легко истекает. Это очень важно, поскольку цель всей этой системы - упростить ее - поэтому эта система работает для меня, а не для меня. Я открываю закладку на странице своей карты, и она остается открытой на вкладке Chrome в течение всего дня.

Это заботится о моей второй цели.

Шаг 4: Свяжите это с контролем версий.

Проблемы с Bitbucket аккуратно связаны с контролем версий (как и у большинства конкурентов), поэтому, когда я закончу работать над проблемой, я фиксирую ее в git с сообщением типа «Добавлено тессо в whatsit. Исправления # 245». Если я фиксирую это, затем нажимаю на него, затем перезагружаю страницу «Карты Bitbucket», я вижу, что проблема переместилась в столбец «Решено». Здорово.

Там моя третья цель выполнена.

Шаг 5: Упростите СОЗДАНИЕ проблем.

Вы, вероятно, думаете, что вся эта установка уже слишком сложна в настройке, и почему я хочу добавить в процесс еще одно веб-приложение. Хорошо, помните мою основную цель выше: я хочу, чтобы было так легко добавить задачу, чтобы я не терял ход мыслей до того, как попал в текстовую область, чтобы набрать ее, и при этом я не хочу терять свое место в код к тому времени, когда я закончу.

Теперь Bitbucket Cards позволяет мне довольно легко создавать задачи , но щелкнуть мышью немного, чтобы полностью достичь цели # 1. Вы должны нажать Создать проблему; затем появляется модальный редактор; после ввода названия проблемы необходимо прокрутить вниз, чтобы указать вид (ошибка / задание) и приоритет; затем нажмите создать.

Вместо этого я решил использовать второе приложение Bitbucket под названием taskrd .

Вы можете настроить taskrd, указав свой логин Bitbucket, установить его в закладке и на вкладке и держать его открытым весь день, как карты Bitbucket. Taskrd имеет гораздо более простой рабочий процесс для добавления новой задачи, просто введите ее, при желании установите вид и приоритет и нажмите кнопку Добавить.

интерфейс tasrkd (это изображение из блога Taskrd)

Теперь можно утверждать, что не стоит усилий по настройке Taskrd вместо использования Bitbucket Cards или даже собственной системы ввода проблем Bitbucket. В конце концов, с помощью Taskrd мне нужно щелкнуть вкладку в моем браузере и нажать «Перезагрузить» на моей странице с помощью карт Bitbucket, чтобы обновить и получить новую проблему, добавленную в приложение Taskrd. Но на самом деле, я нахожу, что я обычно нахожусь в режиме или другом: либо я использую Bitbucket Cards для организации того, что я делаю дальше, либо для просмотра списка ошибок, либо я занят кодированием и вводом задач / ошибки, как они происходят со мной - все в режиме быстрого огня. Для этого второго режима работы Taskrd великолепен: я просто держу его открытым на отдельном мониторе и быстро выявляю проблемы во время работы.

Так что это охватывает цель № 1.

Моя последняя цель была легкой / дешевой. Ну, это дешево: все это бесплатно. Bitbucket имеет бесплатные частные репозитории на срок до пяти пользователей, а другие приложения были бесплатными. Установка кажется нетривиальной на основании вышесказанного, но на самом деле самой сложной частью была настройка git для отправки в репозиторий bitbucket, который везде будет одинаковым. Мне не нужно было ничего устанавливать, и подключить оба приложения к моему хранилищу bitbucket было довольно просто. Настройка столбцов карточек, как они мне нравились, заняла немного времени, но это было не сложно.

Читая это назад, я мог бы показаться чем-то вроде шилла для Bitbucket, но я действительно не хотел этого делать. Просто я использовал этот процесс в течение нескольких недель - после нескольких лет попыток различных конфигураций, чтобы отследить, что я делаю - и я действительно копаю его, поэтому подумал, что найду время, чтобы выложить его для других.


3

Если вы знакомы с использованием тегов TODO в Eclipse, простым шагом будет использование Mylyn . По сути, это простой список задач. Но он также связывает контекст с задачами - нажмите на задачу, чтобы активировать ее, выполнить некоторые действия, а затем в следующий раз, когда вы ее активируете, Eclipse откроет соответствующие классы и покажет вам соответствующие методы. Еще более мощно, если вы в конечном итоге перейдете на какую-либо другую систему отслеживания ошибок, Mylyn сможет извлекать задачи из этих систем и представлять их в вашей IDE.

Большинство загрузок Eclipse в эти дни включены в стандартную комплектацию Mylyn. Просто найдите представление списка задач и начните добавлять задачи.


+1 Я видел Милин, но боюсь, это не поможет мне намного больше, чем задачи в «Затмении». Ошибки, которые я нахожу, которые непосредственно не видны в коде, как правило, теряются в случайном порядке, поэтому менее вероятно, что я добавлю ошибку в Eclipse, когда она не будет открыта :)
bedwyr

Я использую теги TODO, затем использую find / grep -o, чтобы составить список задач.
сал

3

Я использую стартовую лицензию за 10 $ для Jira. Это дешево, и я уже хорошо знаю это с работы.


2

Как и другие, я использую текстовый файл или трекер ошибок, встроенный в любой хостинг dvcs.

Многое зависит от того, что это за «личный проект». Это что-то, что когда-либо увидит свет, или это просто эксперимент? Этот проект используется общественностью?

Например, один из моих личных проектов стал умеренно популярным, и настройка сайта Get Satisfaction для него работала очень хорошо. Не совсем "отслеживание ошибок", но он отлично работал для запросов об ошибках / функциях.


2

Кинда удивилась, что никто еще не сказал этого, но есть распределенные решения для отслеживания ошибок, которые действуют как часть вашего распределенного контроля исходного кода, то есть база данных ошибок живет с вашим кодом в вашем контроле версий. Хорошо известные реализации включают в себя «Bugs Everywhere», Fossil и Ditz.

См. Https://stackoverflow.com/questions/773818/distributed-projectmanagement-bug-tracking и https://stackoverflow.com/questions/1851221/distributed-bug-tracker-to-go-with-dvc?rq=1 для обсуждения.


1

Для своих личных проектов я использую Omnifocus.

Обновление: 25/10/2010 Если я нахожу ошибку, которую не могу или не хочу исправлять немедленно, я быстро добавляю ее в почтовый ящик Omnifocus. Затем, когда я делаю обзор, я соберу всю информацию, которая, по моему мнению, мне понадобится, чтобы исправить ошибку, а затем добавлю ее в проект. Его позиция в списке задач указывает на его относительную важность.

Я отношусь к ошибкам так же, как к требованиям / функциям, во многих отношениях.


2
Спасибо за ответ: не возражаете против того, чтобы использовать его специально для отслеживания дефектов?
бедуир

Спасибо за обновления! Интересно увидеть общий todo-инструмент, используемый для управления дефектами.
бедуир

Примечание: только для продуктов Apple
Mark C

Omnifocus - это продукт Apple, но я использую его для своих разработок не Apple.
Генри


1

Я использую свой собственный TheKBase (поскольку я использую OSX, я использую его на .Net на виртуальной машине или в Mono, в зависимости от моего настроения). Только для одного одновременного пользователя, но: он допускает несколько иерархий, поэтому он переходит от менеджера задач к менеджеру информации, не пропуская промежуточных шагов. Кроме того, это бесплатный исходный код на Github и бесплатный (я думаю, это очевидно).

Для любопытных, инструкции здесь .


1

Я использую ToDoList для своих личных проектов; Это легкий, бесплатный и имеет множество функций. Не уверен, насколько хорошо он масштабируется для командных проектов, но это здорово для меня, когда я работаю сам. Я не уверен, как я выжил с помощью встроенного списка задач Visual Studio так долго, это дерьмо.


В моих небольших личных проектах у меня работает список ReSharper TODO.
Никто

1

Мы используем комбинацию JIRA и Google Docs и электронных таблиц. Я посмотрел на другие инструменты, так как наша установка JIRA старше, чем грязь и не так проста в использовании, как новые, более изящные, перетаскиваемые интерфейсы.

Я изучал Manymoon, Zoho Projects, Insightly, Redmine и Assembla. Мы собираемся поэкспериментировать с бесплатным инструментом Stand Up от Assembla . Это очень простой интерфейс отчетности из трех полей, который задает каждому члену команды три вопроса: что вы делали на прошлой неделе? Что ты будешь делать на этой неделе? Какие барьеры на вашем пути?

В конце концов, я думаю, что я буду придерживаться JIRA, Google Docs и инструмента Assembla Stand Up, поскольку комбинация дает мне все, что мне нужно.


1

Мне нравится Trac больше всего, потому что он легкий, простой в использовании и простой в настройке. И интегрированный вики и элегантный браузер хранилища - большой плюс.

На работе мы используем JIRA, что тоже неплохо, но не так просто администрировать. И я очень скучаю по вики (интеграция с Confluence не так хороша) и хорошему браузеру хранилища (у нас просто есть ViewVC).


Trac - это кошмар для установки и настройки.

1

Я использую Trac в течение последних нескольких лет. Я также использовал Bugzilla и JIRA. Мои личные и частные консалтинговые проекты связаны с Trac просто потому, что я к этому привык, и для запуска проекта в моей личной настройке dev требуется так мало усилий, потому что усилия закончились. У меня есть трек, связанный со всем, что мне нужно, включая SVN или Git and Hudson (точнее, Jenkins сейчас).

В некоторых клиентских проектах, как правило, нет выбора, кроме того, что они используют, что, к сожалению, достаточно часто, или что-то в этом духе. Я удивлен, когда в последнее время у них есть багтрекер. Лично я с нетерпением жду лучшего предложения от сообщества OSS, чем Trac. Это делается, но в наши дни это похоже на лоскутное одеяло.


Trac - это кошмар для настройки и администрирования.

0

Я не вижу смысла в использовании формального отслеживания ошибок для небольших индивидуальных проектов. Обычно я просто держу (очень короткий) мысленный список и исправляю ошибки, когда узнаю о них. Конечно, это не масштабируется для больших проектов / проектов с несколькими людьми, но дело в том, что это не нужно.


3
Это отчасти проблема: ментальный список, как правило, недостаточно. Многие из моих дефектов регистрируются мысленно, а затем со временем теряются по мере появления новых функций и улучшений.
бедуир

@bedwyr, если вы придерживаетесь правила исправления всех известных дефектов перед внедрением новых функций, это не проблема.
Кевин Лейти

@Kevin, дефекты могут быть обнаружены в предыдущих выпусках, пока вы работаете над последней итерацией проекта. Не могли бы вы немедленно прекратить разработку высокоприоритетной функции для устранения дефекта с низким приоритетом в предыдущем случае? Если нет, как вы их отслеживаете? В моем случае психического списка недостаточно.
Bedwyr

@bedwyr Хорошо, думаю, это вопрос предпочтений. Я на самом деле исправил бы этот дефект немедленно, так как мы говорим о небольшом проекте с одним человеком. Если бы я был в большой корпоративной обстановке, другая история.
Кевин Лейти

0

Если вы используете ReSharper, у него есть TODO tracker, который показывает вам список всех TODOs, NOTEs и BUGs в вашем решении. Он также выделяет их в вашем коде любым цветом по вашему выбору. Я считаю это действительно полезным в моих собственных проектах.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.