您如何跟踪个人项目中的错误?[关闭]


45

我正在尝试决定是否需要为自己的项目重新评估缺陷跟踪过程。在过去的几年中,我实际上只是使用TODO代码中的标记来跟踪缺陷,并在特定的视图中跟踪它们(我使用的是Eclipse,它具有不错的标记系统)。

不幸的是,我开始怀疑这个系统是否不可持续。我发现的缺陷通常与我正在处理的代码片段有关。无法立即理解的错误往往会被遗忘或忽略。我为我的妻子写了一个申请表,该申请表有近9个月的严重缺陷,但我一直忘了修复它。

您使用什么机制来跟踪个人项目中的缺陷?您是否有特定的系统或确定优先级和管理它们的过程?


退房todo.ly
工作

1
这可能是常见问题解答认为与主题无关的问题。“哪种技术更好?”
jzd 2011年

Trello是用于此类事情的出色工具,并且是免费的。
gahooa 2012年

Answers:


25

Fogbugz(免费的个人许可证),如果它是一个冗长的项目或简单的待办事项列表(使用Google任务)


7
真好 我没有意识到FogBugz有一个免费版本(对于正在寻找它的人来说叫做Student and Startup Edition)。
埃里克·金

乍一看,看起来非常有趣
bedwyr 2010年

使用FogBugz之后,我看不到有人喜欢什么不同的东西。为了不必跟踪多个fogbugz帐户,我为自己创建了一个个人fogbugz:earlz.fogbugz.com
Earlz 2011年

17

我通常使用基于Web的修订控制系统(Github,Bitbucket,Redmine,Google Code等)来存储我的源代码并跟踪错误。如果您认为特定代码中存在错误,则可以使用修订号/变更列表/变更集来创建问题,并指定您怀疑的文件和行范围。


8

我以前在每个项目中都使用电子表格/文本文件(由于您列出的原因,代码中的ToDo注释无法很好地扩展;它们在代码中是本地的,如果没有问题,则往往会漏掉裂缝)。

最近,我在家庭网络上设置了Redmine服务器。对于一个“团队”来说,这有点重量级,但是我正在自己的时间上从事许多项目,并且倾向于只在更复杂的地方使用Issue Tracker + Repository选项,也许还有奇怪的Wiki页面。

我的一个朋友出于相同的目的使用Pivotal Tracker发誓,但是我的现任雇主内部使用Redmine,因此我认为这可以给我一些实践。不算太差。

对于开源项目,我只使用GitHub的问题跟踪。


如果代码中的待办事项注释为Doxygen /类似注释,则效果更好,只要您定期构建文档即可。您会在生成的文档中获得待办事项(和错误)的收集列表。显然,缺少专用的错误跟踪器的灵活报告选项,并且当从当前版本中删除注释时,您不会在存储库中查找旧的(据说)已解决的错误,但是对于较小的版本,它可以很好地工作简单的项目。
Steve314

7

实际上,我已经在托管的Web服务器上安装了免费的MANTIS bugtracker系统(用于博客和其他东西),并把所有的缺陷都放在了其中。

换句话说,我把自己的东西当作专业的东西并付了钱。

我发现它有助于保持更好的心态(关闭缺陷等),并与行业中常用的其他实践保持一致。

也可以在代码等中使用TODO注释-但仅适用于最重要的注释,例如:“有一天我必须提高注释的效率,气泡排序会损害性能”。或想了解更多有关当晚被带到晚餐时起床地点的信息:)


我用过MANTIS,真棒!
工作


5

我们在工作场所使用JIRA,我非常喜欢它。许多产品和相关人员参与其中,并且一切都很好。


+1 Jira是迄今为止我遇到过的最好的问题跟踪系统。易于开始使用,并在需要时逐渐采用更多高级功能。甚至对非技术用户来说也足够友好,可以报告和跟踪问题。
Maglob

另一个好评。Jira是强力的“放热”工具,其功能超出您的预期,将触发正反馈周期:)
Maglob

4

我前段时间正在寻找答案,此后,我设计出了一个非常简洁的系统,该系统可以满足我的这些关键目标:

目标的重要性顺序:

  1. 使尽可能轻松地输入新任务/错误成为可能,这样我一发现或梦想就可以立即记下它,然后在失去位置之前重新进行编码。
  2. 无需大量搜索,单击和下钻即可轻松查看和管理问题。
  3. 使其易于与版本控制配合使用,以便以后可以找出为解决问题而进行了哪些更改,或者哪些任务或错误导致了代码中的特定更改。
  4. 使设置相对容易:最小的安装和配置以及最小的价格。

(3和4不太重要,对于没有提供它们的系统,我可以接受,但确实可以提供)。

步骤1:在Bitbucket中获取项目

我使用bitbucket进行问题跟踪和git版本控制(例如,对于XCode中的iOS项目)。我查看了FogBUGz(已经在JoelOnSoftware上阅读了很多年),GitHub和其他内容,但是bitbucket似乎为小型团队提供了最好的免费功能。

步骤2:在项目中使用Bitbucket问题跟踪

接下来,我在同一bitbucket项目中设置了问题跟踪。因此,我的项目现在具有git存储库和问题跟踪。

第3步:简化问题跟踪!

为此,我使用了Bitbucket卡,它是Bitbucket问题的一个很好的,简单的看板式前端。您只需要登录您的Bitbucket帐户并设置所需的列即可。我有四列:待办事项,下一步,错误和已解决。(我正在考虑将Bug与Backlog合并,但暂时不要在意)

Bitbucket卡示例 (此图片来自Bitbucket Cards博客,而非我的项目,因此这些列与我使用的列不同)

使用Bitbucket卡,您可以为每个列表设置一个非常简单的过滤器,从中可以选择卡列中的状态和问题种类。因此,open此类状态问题bug出现在“ 错误”列中。

列定义 (这来自我的项目:这就是我选择“错误”列中的内容的方式)

真正酷的是,当您将卡片从一列拖放到另一列时,它将自动更改卡片代表的问题状态,以与目标列的定义相匹配。

Bitbucket卡的另一个好处是,它不容易超时。这很关键,因为整个设置的目的是使其变得简单-因此,该系统对我有用,而不是为我工作。我打开了我的卡片页面的书签,并且整日在Chrome标签上保持打开状态。

这照顾了我的第二个目标。

步骤4:使用版本控制将其绑定。

Bitbucket问题与版本控制(对于大多数竞争者)紧密地联系在一起,所以当我完成一个问题时,我将其提交给git,并显示一条消息,例如“将whato添加到whatsit。修复#245”。如果我提交了此信息,然后推送它,然后重新加载我的Bitbucket卡页面,我将看到问题已移至“已解决”列。凉。

我的第三个目标已经完成。

第5步:简化创建问题的过程。

您可能认为整个设置已经很复杂,为什么还要在此过程中添加另一个Web应用程序。好吧,请记住上面的主要目标:我想使添加任务变得如此简单,以至于在到达文本区域进行输入之前我不会迷失方向,也不想失去自己的位置我完成时的代码。

现在,到位桶卡确实让我创建任务容易,但它只是有点clicky / scrolly充分满足目标#1。您必须单击创建问题;然后弹出一个模式编辑器;输入问题标题后,您必须向下滚动以指定种类(错误/任务)和优先级;然后点击创建。

相反,我选择使用另一个名为taskrd的 Bitbucket应用程序。

您可以通过为其设置Bitbucket登录名来设置taskrd,并将其设置在书签和标签上,并使其保持全天开放,就像Bitbucket卡一样。Taskrd的工作流程非常简单,可以添加新任务,只需键入它,然后选择设置种类和优先级,然后单击“添加”按钮即可。

tasrkd界面 (此图片来自Taskrd博客)

现在可以争论的是,通过使用Bitbucket卡甚至Bitbuckets自己的发行系统来建立Taskrd都不值得。毕竟,使用Taskrd,我必须在浏览器上单击一个选项卡,然后在包含Bitbucket卡的页面上单击“重新加载”,以刷新并获取我在Taskrd应用程序中添加的新问题。但实际上,我发现自己通常处于模式或其他模式:要么我正在使用Bitbucket卡来组织下一步要做的事情,要么浏览错误列表,或者我正忙于编码并输入任务/ bug出现在我身上-都处于快速启动模式。对于第二种工作方式,Taskrd很棒:我只是将其保持在单独的显示器上,然后在工作时快速输入问题。

这样就涵盖了目标#1。

我的最后一个目标是轻松/便宜地设置。价格便宜:所有这些都是免费的。Bitbucket拥有最多五个用户的免费私人存储库,其他应用程序是免费的。基于上述内容,安装似乎很简单,但实际上最复杂的部分是设置git推送到bitbucket存储库,该存储库在任何地方都相同。我不需要安装任何东西,并且将两个应用程序都连接到我的Bitbucket存储库非常简单。以我喜欢的方式设置纸牌列需要花费一些时间,但并不难。

读一读,我可能对Bitbucket有点不满意-但我真的不是故意的。只是我一直在使用此过程数周(经过多年尝试不同的配置来跟踪我在做什么的经历),而且我真的在挖掘它,所以我想花点时间将其布置给其他人。


3

如果您熟悉在Eclipse中使用TODO标记,那么简单的步骤就是使用Mylyn。最基本的说,这是一个简单的待办事项清单。但是,它还将上下文与任务相关联-单击任务以将其激活,做一些事情,然后在下次激活它时,Eclipse将打开相关的类,并向您显示相关的方法。更强大的是,如果您最终转而使用其他错误跟踪系统,Mylyn可以从这些系统中提取任务并将其呈现在IDE中。

如今,大多数Eclipse下载都将Mylyn作为标准捆绑在一起。只需搜索“任务列表”视图并开始添加任务即可。


+1我见过Mylyn,但恐怕除了Eclipse中的任务之外,对我的帮助不大。我发现在代码中不直接可见的bug经常会在
改组中

我使用TODO标记,然后使用find / grep -o使自己成为待办事项列表。
萨尔

3

我将10美元的入门许可证用于Jira。它很便宜,我已经从工作中知道了。


2

像这里的其他人一样,我使用文本文件或内置在任何dvcs托管服务中的bug跟踪器。

很多取决于它是什么类型的“个人项目”。它会成为现实吗?还是只是一个实验?公众正在使用该项目吗?

例如,我的一个个人项目受到了一定程度的欢迎,并为此建立了一个“ 获取满意度”网站,效果很好。并不是真正的“错误跟踪”,但是对于错误/功能请求非常有用。


2

Kinda感到惊讶的是,还没有人说过这一点,但是有一些分布式错误跟踪解决方案可以作为您的分布式源代码管理的一部分,也就是说,错误数据库与您的修订控件中的代码一起存在。众所周知的实现包括“臭虫无处不在”,Fossil和Ditz。

参见https://stackoverflow.com/questions/773818/distributed-projectmanagement-bug-trackinghttps://stackoverflow.com/questions/1851221/distributed-bug-tracker-to-go-with-dvc?rq=1进行讨论。


1

对于我的个人项目,我使用Omnifocus。

更新:2010年10月25日如果我发现无法或不希望立即修复的错误,我会迅速将其添加到Omnifocus收件箱中。然后,当我进行审查时,我将收集我认为需要修复该错误并将其添加到项目中的所有信息。它在任务列表中的位置表明它的相对重要性。

在大多数方面,我都会以与需求/功能相同的方式对待错误。


2
谢谢:您是否介意详细说明如何将其专门用于缺陷跟踪?
bedwyr 2010年

感谢更新!有趣的是,将通用的待办事项工具用于缺陷管理。
bedwyr 2010年

注意:仅适用于Apple产品
Mark C

Omnifocus是Apple产品,但我将其用于非Apple开发。
亨利


1

我使用自己的TheKBase(因为我在OSX上,所以我会根据自己的心情在虚拟机或Mono的.Net上使用它)。仅对于一个并发用户,但是:它允许多个层次结构,因此它从任务管理器到信息管理器之间不丢失任何步骤。加上它在Github上是开源的,而且是免费的(我想这很明显)。

出于好奇,请在此处进行说明。


1

我将ToDoList用于个人项目;它轻巧,免费,并具有许多功能。不确定它对团队项目的可扩展性如何,但是这对我自己工作非常有用。我不确定使用Visual Studio的内置任务列表能够生存这么长时间,这很糟糕。


在我的小型个人项目中,ReSharper TODO列表对我有用。
没人

1

我们结合使用JIRA和Google文档和电子表格。我研究了其他工具,因为我们的JIRA安装比污垢更旧,并且不像更新,更高级的拖放界面那样易于使用。

我研究了Manymoon,Zoho Projects,Insightly,Redmine和Assembla。我们将尝试使用Assembla免费的Stand Up工具。这是一个非常简单的3字段报告界面,向每个团队成员询问3个问题:上周您做了什么?你这星期要做什么?您遇到的障碍是什么?

最后,我认为我将继续使用JIRA,Google Docs和Assembla Stand Up工具,因为两者的结合为我提供了所需的一切。


1

我最喜欢Trac,因为它重量轻,易于使用且易于配置。集成的Wiki和优雅的存储库浏览器是一大优势。

在工作中,我们使用JIRA,它也很不错,但管理起来并不容易。我真的很想念Wiki(与Confluence集成不是很好)和出色的存储库浏览器(我们只有ViewVC)。


Trac是设置和配置的噩梦。

1

在过去的几年中,我一直在使用Trac。我也使用过Bugzilla和JIRA。我的私人和私人咨询项目只涉及Trac,因为我已经习惯了它,并且使项目进入我的个人开发环境只需很少的工作,因为工作已经结束。我已经将所需的一切都与trac联系起来,包括SVN或Git和Hudson(或者现在是Jenkins)。

在某些客户项目上,通常别无选择,只能使用它们,而不幸的是,这些东西通常什么也没有,也很少。当他们最近有一个错误跟踪器时,我感到很惊讶。不过,就我个人而言,我期待OSS社区提供比Trac更好的产品。它可以解决问题,但如今看来像是拼凑而成。


Trac是设置和管理的噩梦。

0

对于小型的单人项目,我没有看到使用正式的错误跟踪的意义。通常,我只是保留一个(非常简短的)精神清单,并在发现错误时进行修复。当然,这不适用于大型/多人项目,但重点是它不需要。


3
部分原因在于问题:心理清单往往不足。我的许多缺陷都在脑海中记录下来,然后随着新功能和增强功能的到位而逐渐消失。
bedwyr 2010年

@bedwyr如果您坚持在实施新功能之前修复所有已知缺陷的规则,则这不是问题。
凯文·莱蒂

@Kevin,在处理项目的最新迭代时,可以在以前的版本中发现缺陷。您是否会立即停止对高优先级功能的开发,以修复先前版本中的低优先级,极端情况的缺陷?如果没有,您如何跟踪它们?就我而言,精神上的清单是不够的。
bedwyr 2011年

@bedwyr好点,我想这是一个偏爱的问题。实际上,我将立即修复该缺陷,因为我们正在谈论的是一个小型的单人项目。如果我在大型企业中工作,那就另当别论了。
Kevin Laity

0

如果您使用ReSharper,则它带有一个TODO tracker,向您显示解决方案中所有TODOs,NOTEs和BUGs 的列表。它还会以您选择的任何颜色在代码中突出显示它们。我发现这对我自己的项目真的很有用。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.