我希望你能够解释为什么和在什么情况下使用每个系统,以及区分Bug跟问题追踪应用程序的特点。
我希望你能够解释为什么和在什么情况下使用每个系统,以及区分Bug跟问题追踪应用程序的特点。
问题跟踪系统通常更多地与客户和客户问题集成。一个问题可能是“帮我安装这个”或“如何将fubar放入flim flam中”。甚至可能是类似于“我需要你的软件的评估密钥”。
缺陷跟踪系统帮助您跟踪程序中的错误或缺失问题。
在查看Web系统时,通常会有重点差异,即帮助客户或跟踪您的软件问题。
以下例子可以更清楚地说明两者的区别。
假设今天出现了一个影响了5位客户的生产问题,但是这个问题只是由一个软件缺陷引起的。
在你的问题跟踪系统中,你打开了5个工单,并开始跟踪每个客户报告的情况、与他们的沟通、软件补丁的应用时间等。你可以为每个客户单独跟踪这种类型的信息。
在你的缺陷跟踪系统中,你仅仅记录了1个关于这个软件缺陷的条目,并开始跟踪如何重现该问题、代码更改等方面的内容。
只要客户满意解决了问题,其问题就可以关闭,这可能涉及到修复软件,也可能不需要。而当缺陷被修复并重新测试后,它就可以被关闭了。
两个系统,一个面向外部,一个面向内部,分别跟踪两种不同类型的事物,每种事物都有自己的生命周期。
像Trac这样的Bug跟踪系统旨在为程序中的每个固有问题创建一个工单,因此通过修改程序来关闭工单。
像IssueTrackerProduct这样的客户支持工单系统旨在为每个遇到情况的客户创建一个工单,因此通过解决该客户的情况(可能通过修改程序)来关闭工单。
有关每种系统的示例,请参见维基百科的问题跟踪系统比较。
一个bug是问题的子类。所有的bug都是问题,但并非所有的问题都是bug。
通常情况下,bug是代码库中的缺陷。这与未完成/尚未实现的功能不同,或者更难以确定的问题,比如开发人员提交一张票来处理技术债务的一部分或者对UI的关注。从语义上讲,所有这些都是“问题”。
当不属于那些其他类别时,通用问题往往是最终用户报告的某些事物的代表。在大多数系统中,这个报告的问题本身被处理为一个bug报告。我敢说这是个错误。
棘手的部分是,有时多个问题可能与其他问题相关。它可能涉及到同一个bug、多个bug,或者实际上是一个功能请求。也就是说,问题之间可能存在多对多的关系。
为什么这种区别很重要?嗯,内部有一个自然树——解决一个问题可以间接地完成(或有助于完成)一百万个其他问题。这也会影响问题的解决方式。缺陷本身可以通过修复代码来解决,或者使其变得无关紧要。如果是用户投诉,则可以通过发送一个解决方法来解决,然后在原始缺陷解决时进行跟进。
更好地表示和处理这些细微差别的功能确实是在问题跟踪系统中寻找的关键。
在某个阶段,你所说的是流程和方法论,而不仅仅是实际的票务系统,实际名称应该开始变得无关紧要。主流和企业定向的解决方案往往在像ITIL这样的流行系统上运行,但只要团队中的每个人都对客户服务需求有很好的理解,你就可以使用临时方案。我个人认为这是瀑布(ITIL)与敏捷(DevOps)的情况。
这只是语义学上的区别。Bug指的是问题,Issue则指需要解决的事项。除此之外,它们在很多方面都是相似的。
这是一个模糊的界限。问题跟踪系统可能被认为是两者中更通用的。因为所有的Bug跟踪系统都是问题跟踪系统,但不一定反之。
来自我们的朋友维基百科
缺陷跟踪系统是一种软件应用程序,旨在帮助质量保证和程序员跟踪报告的软件缺陷。它可以被视为一种问题跟踪系统。
代码中发现了一个bug。
问题可能出现在任何地方,包括流程、硬件和人员等方面。
关于定义的具体含义取决于您采用的开发流程。
我认为bug是指可以通过编程修复的问题,而问题则更多地与可用性有关。
例如,登录表单。登录表单中的一个bug可能是在登录完成后表单重定向不正确。而问题则可能是整个登录过程太慢,或者没有选项来发送忘记密码的电子邮件。