我正在尝试决定是否需要为自己的项目重新评估缺陷跟踪过程。在过去的几年中,我实际上只是使用TODO
代码中的标记来跟踪缺陷,并在特定的视图中跟踪它们(我使用的是Eclipse,它具有不错的标记系统)。
不幸的是,我开始怀疑这个系统是否不可持续。我发现的缺陷通常与我正在处理的代码片段有关。无法立即理解的错误往往会被遗忘或忽略。我为我的妻子写了一个申请表,该申请表有近9个月的严重缺陷,但我一直忘了修复它。
您使用什么机制来跟踪个人项目中的缺陷?您是否有特定的系统或确定优先级和管理它们的过程?
我正在尝试决定是否需要为自己的项目重新评估缺陷跟踪过程。在过去的几年中,我实际上只是使用TODO
代码中的标记来跟踪缺陷,并在特定的视图中跟踪它们(我使用的是Eclipse,它具有不错的标记系统)。
不幸的是,我开始怀疑这个系统是否不可持续。我发现的缺陷通常与我正在处理的代码片段有关。无法立即理解的错误往往会被遗忘或忽略。我为我的妻子写了一个申请表,该申请表有近9个月的严重缺陷,但我一直忘了修复它。
您使用什么机制来跟踪个人项目中的缺陷?您是否有特定的系统或确定优先级和管理它们的过程?
Answers:
Fogbugz(免费的个人许可证),如果它是一个冗长的项目或简单的待办事项列表(使用Google任务)
我通常使用基于Web的修订控制系统(Github,Bitbucket,Redmine,Google Code等)来存储我的源代码并跟踪错误。如果您认为特定代码中存在错误,则可以使用修订号/变更列表/变更集来创建问题,并指定您怀疑的文件和行范围。
我以前在每个项目中都使用电子表格/文本文件(由于您列出的原因,代码中的ToDo注释无法很好地扩展;它们在代码中是本地的,如果没有问题,则往往会漏掉裂缝)。
最近,我在家庭网络上设置了Redmine服务器。对于一个“团队”来说,这有点重量级,但是我正在自己的时间上从事许多项目,并且倾向于只在更复杂的地方使用Issue Tracker + Repository选项,也许还有奇怪的Wiki页面。
我的一个朋友出于相同的目的使用Pivotal Tracker发誓,但是我的现任雇主内部使用Redmine,因此我认为这可以给我一些实践。不算太差。
对于开源项目,我只使用GitHub的问题跟踪。
我使用ToDo List程序,这是来自codeproject的开源代码
http://www.codeproject.com/KB/applications/todolist2.aspx
非常好,具有很多功能。
我前段时间正在寻找答案,此后,我设计出了一个非常简洁的系统,该系统可以满足我的这些关键目标:
目标的重要性顺序:
(3和4不太重要,对于没有提供它们的系统,我可以接受,但确实可以提供)。
步骤1:在Bitbucket中获取项目
我使用bitbucket进行问题跟踪和git版本控制(例如,对于XCode中的iOS项目)。我查看了FogBUGz(已经在JoelOnSoftware上阅读了很多年),GitHub和其他内容,但是bitbucket似乎为小型团队提供了最好的免费功能。
步骤2:在项目中使用Bitbucket问题跟踪
接下来,我在同一bitbucket项目中设置了问题跟踪。因此,我的项目现在具有git存储库和问题跟踪。
第3步:简化问题跟踪!
为此,我使用了Bitbucket卡,它是Bitbucket问题的一个很好的,简单的看板式前端。您只需要登录您的Bitbucket帐户并设置所需的列即可。我有四列:待办事项,下一步,错误和已解决。(我正在考虑将Bug与Backlog合并,但暂时不要在意)
(此图片来自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的工作流程非常简单,可以添加新任务,只需键入它,然后选择设置种类和优先级,然后单击“添加”按钮即可。
(此图片来自Taskrd博客)
现在可以争论的是,通过使用Bitbucket卡甚至Bitbuckets自己的发行系统来建立Taskrd都不值得。毕竟,使用Taskrd,我必须在浏览器上单击一个选项卡,然后在包含Bitbucket卡的页面上单击“重新加载”,以刷新并获取我在Taskrd应用程序中添加的新问题。但实际上,我发现自己通常处于模式或其他模式:要么我正在使用Bitbucket卡来组织下一步要做的事情,要么浏览错误列表,或者我正忙于编码并输入任务/ bug出现在我身上-都处于快速启动模式。对于第二种工作方式,Taskrd很棒:我只是将其保持在单独的显示器上,然后在工作时快速输入问题。
这样就涵盖了目标#1。
我的最后一个目标是轻松/便宜地设置。价格便宜:所有这些都是免费的。Bitbucket拥有最多五个用户的免费私人存储库,其他应用程序是免费的。基于上述内容,安装似乎很简单,但实际上最复杂的部分是设置git推送到bitbucket存储库,该存储库在任何地方都相同。我不需要安装任何东西,并且将两个应用程序都连接到我的Bitbucket存储库非常简单。以我喜欢的方式设置纸牌列需要花费一些时间,但并不难。
读一读,我可能对Bitbucket有点不满意-但我真的不是故意的。只是我一直在使用此过程数周(经过多年尝试不同的配置来跟踪我在做什么的经历),而且我真的在挖掘它,所以我想花点时间将其布置给其他人。
如果您熟悉在Eclipse中使用TODO标记,那么简单的步骤就是使用Mylyn。最基本的说,这是一个简单的待办事项清单。但是,它还将上下文与任务相关联-单击任务以将其激活,做一些事情,然后在下次激活它时,Eclipse将打开相关的类,并向您显示相关的方法。更强大的是,如果您最终转而使用其他错误跟踪系统,Mylyn可以从这些系统中提取任务并将其呈现在IDE中。
如今,大多数Eclipse下载都将Mylyn作为标准捆绑在一起。只需搜索“任务列表”视图并开始添加任务即可。
Kinda感到惊讶的是,还没有人说过这一点,但是有一些分布式错误跟踪解决方案可以作为您的分布式源代码管理的一部分,也就是说,错误数据库与您的修订控件中的代码一起存在。众所周知的实现包括“臭虫无处不在”,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进行讨论。
对于我的个人项目,我使用Omnifocus。
更新:2010年10月25日如果我发现无法或不希望立即修复的错误,我会迅速将其添加到Omnifocus收件箱中。然后,当我进行审查时,我将收集我认为需要修复该错误并将其添加到项目中的所有信息。它在任务列表中的位置表明它的相对重要性。
在大多数方面,我都会以与需求/功能相同的方式对待错误。
对于个人项目,TODO注释和包含TODO和错误等的文本文件通常对我来说就足够了。
我们结合使用JIRA和Google文档和电子表格。我研究了其他工具,因为我们的JIRA安装比污垢更旧,并且不像更新,更高级的拖放界面那样易于使用。
我研究了Manymoon,Zoho Projects,Insightly,Redmine和Assembla。我们将尝试使用Assembla免费的Stand Up工具。这是一个非常简单的3字段报告界面,向每个团队成员询问3个问题:上周您做了什么?你这星期要做什么?您遇到的障碍是什么?
最后,我认为我将继续使用JIRA,Google Docs和Assembla Stand Up工具,因为两者的结合为我提供了所需的一切。
对于小型的单人项目,我没有看到使用正式的错误跟踪的意义。通常,我只是保留一个(非常简短的)精神清单,并在发现错误时进行修复。当然,这不适用于大型/多人项目,但重点是它不需要。