开源软件Bug跟踪与管理探讨

用AT7456E给监控摄像头加OSD?5步搞定时间水印和Logo叠加 本文详细解析了如何使用AT7456E视频字符叠加芯片为监控系统添加专业级OSD功能,涵盖硬件设计、字符库编程和系统集成等关键步骤。通过5步操作实现时间水印和Logo叠加,提升监控系统的可用性和专业性,特别适合安防和工业视觉应用。 阅读详情
开源软件 Bug 跟踪与管理探讨
2007年11月
 
摘要
本文首先介绍了Bug管理的常规过程,接着分析了应用于开源软件开发过程的Bug跟踪与管理系统的特点,描述了一个典型的Bug生命周期过程,并对完成一个合格的Bug报告做出了解释。文章还简单介绍了比较流行的缺陷跟踪与管理系统Bugzilla等,并给出了个人的想法。
关键词:Bug管理,生命周期,缺陷跟踪与管理系统
Abstract-This paper introduces a normal bug management process, analyzes characteristics of bug tracking and management in development of open source software, describes a classic bug life cycle, and explains how to accomplish an eligible bug report. Also, some popular bug tracking and management systems such as Bugzilla are introduced, following with some personal thoughts.
 
Key Words: Bug management, life cycle, bug tracking and management system
1问题介绍
在软件开发与维护过程中,有效地进行质量控制与保证工作尤为重要。正因如此,软件缺陷跟踪与管理在现代软件过程中成为实施质量控制与保证的重要方面。软件中的缺陷(Defect或Bug)是软件开发过程中的"副产品"。通常,缺陷会导致软件产品在某种程度上不能满足用户的需要 [[1]]。开源软件组织宣称,开源的目的是获得更好的质量、更高的可靠性、更强的灵活性、低成本和对掠夺式卖主禁闭行为的终结 [[2]]。如其所言,开源软件自由和开放的精神迎来了一些拥护者。虽然如此,软件缺陷始终存在,如何实施对开源软件Bug的跟踪与管理呢?它与商业软件缺陷管理又有什么区别呢?开源的人们又在使用哪些他们的Bug跟踪系统呢?带着疑问与不解,我开始了对开源软件Bug跟踪与管理的探讨。
2 Bug跟踪与开源软件Bug管理
2.1缺陷管理一般过程
软件不是完美无缺的,正常情况下,出现惹人厌烦的Bug不可能成为软件工程师们的期待。缺陷跟踪管理是测试工作的一个重要部分,测试的目的是为了尽早发现软件系统中的缺陷,因此,对缺陷进行跟踪管理,确保每个被发现的缺陷都能够及时得到处理是测试工作的一项重要内容 [[3]]。没有人希望自己的产品存在太多的缺陷,但既然存在缺陷,就应该跟踪和管理它。在介绍开源软件缺陷跟踪与管理之前,我们有必要对一般的缺陷管理过程有一个系统的认识。
软件存在的错误(Bug)一般是在测试过程中发现出来的,对于如何处理测试中发现的错误,将直接影响到测试的效果。对于测试中发现的Bug,需要有一个明确的管理流程。首先,测试人员提交新的Bug入库,错误状态为New;然后,高级测试人员验证错误,如果确认是错误,分配给相应的开发人员,设置状态为Open;如果不是错误,则拒绝,设置为Declined状态;之后,开发人员查询状态为Open的Bug,如果不是错误,则置状态为Declined;如果是Bug则修复并置状态为Fixed。对于不能解决的Bug,要留下文字说明及保持Bug为Open状态,但对于不能解决和延期解决的Bug,不能由开发人员自己决定,一般要通过某种会议(评审会)通过才能认可。最后,测试人员查询状态为Fixed的Bug,然后验证Bug是否已解决,如解决置Bug的状态为Closed,如没有解决置状态为Reopen [[4]]。这个过程中,我们可以发现它对测试人员的要求较高,如对于那些可能不是错误的问题就不应该被当作Bug处理。
2.2开源软件Bug管理
相对于常规的Bug管理流程,开源软件的缺陷跟踪与管理理所当然不能超越它。但是,正如我们所提到的,开源软件的开发模式的特殊性对其Bug跟踪与管理过程也提出了新的更严格的过程要求。在此,首先有必要对缺陷跟踪系统(Bug Tracker)有一个比较正确的认识。缺陷包括产品错误,需求和设计变更,新特性或扩展功能(New Feature, Enhancement)等,它存在于整个软件开发生命周期之中 [[5]]。那么,一个Bug Tracker 究竟要保存哪些信息呢?Bug跟踪系统在软件开发过程中也常常用来记载新的功能需求、任务日志、补丁包等,只要是具有明确的开始和结束状态的东西,它们以及在这个过程中的转变以及产生的信息都应当存储到系统中。相比于商业软件开发过程,在开源软件开发过程中,一个Bug的典型生命周期是这样的:问题报告者(可能对项目一无所知)总结出现的问题,给出恰当的初始描述,将这些信息加以归档,然后提交到系统;其他用户或测试者读到Bug信息,可能给出进一步的注释,在此过程中可能会通过适当的方式要求归档者澄清一些问题;问题在其他用户体验过程中再次出现,多次的重现表明这个问题确实存在,这个过程其实是一个Bug生命期的重要阶段,因为一个不真实的Bug可能在这个阶段被关闭或删除;问题或缺陷得到诊断,并且解决它需要付出的代价也有了估计,这个过程可能由开发成员完成,但也可能是热情的用户;问题解决时间有了初步规划,可能在某一个但不一定是下一个版本中,问题会被解决;最后,问题得到解决,相关的更改应该被记录下来后,应该关闭这个问题。
但是,上面的过程可能会中途停止。那么,为什么一个Bug会中途夭折呢?其实可以想到,Bug报告者可能对项目或软件产品不熟悉,这样他可能提交一个错误的问题报告。这样,这个Bug可能很快被关掉。另一个变化因素是,同样的问题在系统中已经有了记载,甚至可能被解决了。在这种情况下,这个冗余的Bug会被删除。当然,开发者也许自以为是地认为,某个Bug根本不存在,或者开发者简单地改动一些地方后就认为Bug不再存在,于是他可能把实际上没有解决的问题给关掉了 [[6]]
2.3Bug报告
技术支持被认为是一件可怕的工作,因为有拙劣的bug报告需要处理 [[7]]。我们可以看到,当出现问题或缺陷后,系统可能得到许多用户和测试者的报告,那么,如何有效地实施Bug Tracker呢?
一个开源项目启动后,Bug跟踪系统也就开始运行,它一般运行于C/S或B/S架构的服务器上。在客户端,它提供一种或多种用户接口,如Web表单、邮件等,有些缺陷跟踪系统还提供一些提交工具,简化了用户操作。我们先关注针对客户端的接口,比如,一个测试者想要报告一个Bug,他首先进入Bug报告界面,但更多的时候,系统总是提示测试者要注意的事项。实际上,在报告Bug前最重要的当然是发现Bug并试图找出它的原因了。正如linux新手可能会被告知:尽量关注当前出现的问题并且试图找出原因 [[8]]。一个友好的Bug报告者不能是只知道抱怨,在报告中胡乱地描述着:弹出讨厌的窗口。这样的报告会产生歧义,那么,如何提交一个合格的Bug报告呢?Elisabeth Hendrickson在他的一本著作中写道:当你编写bug报告时,记住你的听众,选择一个好的标题,清楚的记录步骤并解释错误的影响;你的bug report将会因为你花在它上面的格外努力而更好,并且有更多的错误被修复;最终将达到我们期望的结果-使错误在伤害用户之前得到修复 [[9]]。著名的开源软件质量控制与保证平台Mozilla规定了一个良好的Bug报告应该包含以下信息:软件版本序列号、运行环境、错误现场信息、调试与警告信息等 [[10]]。实际中,缺陷跟踪系统有必要提供适当的接口给用户。
3典型Bug Tracker介绍
开源软件领域,存在的Bug Tracker很多,比较有名的有BugZilla、GNATS、Buggit、Mantis、DBTS等。这些缺陷跟踪与管理系统为开源软件管理提供了一个良好的控制手段。软件开发需要Bug Tracker的存在,开源软件的开发更加离不开它们。曾就职于微软公司的开源Bug Tracker BugFree发起者刘振飞先生说过:在(微软)所有的工具中,我最佩服的就是其Bug管理系统Raid(现在叫Product Studio);Raid的价值在于它密切跟踪当前产品的实际Bug状态,使项目组中的成员非常有效的协调他们的工作 [[11]]
同样,开源软件没有合适的Bug管理软件支撑,恐怕也很难开发出优秀的产品。下面我们可以了解这个领域一些主流的系统,Mozilla公司提供的Buzilla是一个产品缺陷的记录及跟踪工具,它能够为你建立一个完善的Bug跟踪体系,包括报告Bug、查询Bug记录并产生报表、处理解决、管理员系统初始化和设置四个部分。它具有如下特点:基于Web方式,安装简单、运行方便快捷、管理安全;有利于缺陷的清楚传达;系统灵活,强大的可配置能力;支持自动发送Email [[12]。相比之下,Mantis则是PHP/MySQL/Web-based缺陷跟踪系统,它具有个人可定制的Email通知功能、支持多项目、多语言等优点[[13]]。另外,在线Bug跟踪与管理系统如TrackStudio、Bugols提供了优秀的用户界面。特别地,Bugols在它的主页上宣言它们的理想是让每个程序员都能轻轻松松地发布和维护自己的程序,它们的使命是通过精湛的技术构建全球最方便、最易用、最人性化的在线Bug管理工具 [[14]]。]
然而,大多缺陷跟踪系统似乎过多地关注如何进行Bug的管理,却忽略了与自动化质量评估工具的有效结合。另一方面,许多研究者尝试运用开源项目的源代码和测试数据的易得性来设计新的项目质量评估工具 [[15]]。也许他们可以在Bug跟踪与管理系统的设计上下更多的工夫。
4结论
本文在系统介绍了Bug跟踪与管理的知识后,特别针对开源软件的跟踪与缺陷管理展开了分析。研究中发现,如何提交一个友好的Bug报告到Bug Tracker对于及时、有效、正确地解决问题非常重要。然而,大多基于Web的Bug Tracker在客户端提供了详细的空白Bug清单供用户填写,虽然这样的做法为系统有效接受和处理Bug带来的方便,却忽略了丰富而繁杂的表单是否超过了Bug提交者所能承受的极限。当然,这些系统采取了一些下拉列表选择项,但是过多的用户必须操作势必不让人满意。另外,这些系统的界面也显得不够漂亮,试想一个非专业人士来报告一个Bug时,不够友好的界面也许会使他放弃报告一个可能致命的Bug。解决的办法是,在必须信息和附加信息之间选择一个平衡点,同时提供一个清洁的界面。另外一个问题是,多数Bug Tracker都会拒绝重复提交的Bug;可是,Bug的类型、报告时间与报告频率都是重要的评估参数 [[16]]。这样,如果系统一味地拒绝提交重复的Bug,恐怕统计一个Bug的出现频率也会是一个难题。
实际中发现,多数Bug Tracker具有过滤Bug报告的功能,以抵制重复提交的报告或已存在的问题报告,有些系统还能够完全接受E-mail提交的报告或者与邮件列表可以协调工作;但是,过滤机制实际上是一个需要技巧与优秀算法的东西。试想一个问题提交者提交了一个报告主题与报告中问题描述不一致的问题报告,结果会怎样呢?可能这会是一个重要的报告,只是报告者一时疏忽才犯了错误,但系统却将它当作一个已有的简单的错误而拒绝了它。问题就出在这,项目的下一个版本可能因为那个Bug而失败,后果也许非常严重。其实,这里想要指出的问题是,如何有效而准确地过滤Bug报告?其实这里牵涉到一些搜索和匹配技术,系统不但要检查Bug主题,还要检查它的内部信息。如何高效实现它呢?这是一让人困惑而又亲近的话题。也许我们可以期待机器学习理论和应用的进步,当系统具有相当智能的时候,也许可以快速地扑捉到可能的Bug,并自动修改可能的错误,使一个Bug报告是完备的、一致的、准确的。那样的话一个Bug Tracker的运行将更加有效,对于开源软件的进步也许会发挥重要作用。
致谢
在研究过程中,我们小组成员进行了很好的沟通和交流,在某些问题上相互交换了意见,形成了良好的团队氛围。同时感谢*老师给予的指导和帮助。
参考资料


[1]      刘寅. <<软件缺陷管理>>.希赛网, 2005.
[ [3]] 关河 . << 也谈缺陷跟踪管理 >>. On http://www.testage.net/TestTech/BugM/200601/120.htm . 2006.
[ [4]] 崔启亮. <<Bug管理的一般流程>>. http://www.51testing.com/html/34/1275.html, 2006.
[ [5]] 蔡琰. <<使用开源软件 Mantis 实施缺陷跟踪的成功实践>>. http://www-128.ibm.com/developerworks/cn/linux/software_engineering/l-mantis/index.html , 2003.
[ [6]] Karl Fogel. Producing Open Source Software : Bug Tracker.O’Reilly,2005.
[ [8]] Found Bug . On http://kernelnewbies.org/FoundBug
[ [9]] Elisabeth Hendrickso著, 译. 《Writing Effective Bug Reports》.On http://www.51testing.com/html/34/67.html , 2005.
[ [10]] ChrisYeh. how to write a good bug report.http://www.mozilla.org/bugs/bug-reporting.html
[ [11]] 刘振飞. Bug管理的经验和实践.On http://bugfree.newsky.cn/zhenfei/Document/BugFree.htm .
[ [12]] 徐异婕. 测试跟踪工具Bugzilla介绍.
[ [13]] 同[ 5].
[ [14]] Bugols. On http://www.bugols.com.
[ [15]] Georgios Gousios,Vassilios Karakoidas, Konstantinos Stroggylos, Panagiotis Louridas, Vasileios Vlachos, and Diomidis Spinellis. Software Quality Assessment of Open Source Software. New Technologies Publications, 2007.
[ [16]] Adriaan de Groot1, Sebastian K¨ugler1, Paul J. Adams2, and Giorgos Gousios3. Call for Quality:Open Source Software Quality Observation. The Second International Conference on Open Source Systems, 2006.
 注:引用本文请注明相关观点来源
Allegro模块复用:从原理图到PCB的完整流程关键细节 本文详细介绍了Allegro模块复用从原理图到PCB的完整流程关键细节,包括DSN和MDD文件的创建、模块调用的实战技巧以及双向同步版本控制方法。通过标准化处理和高级复用技巧,能显著提升PCB设计效率,减少重复工作时间。适用于智能硬件和工业控制等领域的工程师。 阅读详情

相关推荐

3、开源软件的竞争、进化 Mozilla 项目的发展历程

本文详细探讨开源软件在科技领域中的重要影响,并以Mozilla项目为例,分析了其从启动、开发模式转变、代码库更新到严格开发方法和开源项目构建等各个阶段的发展历程。文章强调了质量保证社区的重要性,以及在开源项目中实现商业社区平衡的关键策略。同时,总结了Mozilla项目为其他开源项目提供的宝贵经验。

e4f5g6h的博客 109

Bug Life Cycle & Guidelines (缺陷生命周期指导手册)

Introduction:引言 Bug can be defined as the abnormal behavīor of the software. No software exists without a bug. The elimination of bugs from the software depends upon the efficiency of testing don

arjick的专栏 1779

全国地层岩性数据(矢量数据)

本数据可用于地质灾害易发性分析、地质环境承载力评估等科学研究,数据中 LITHOLOGY 段为该类型数据的属性字段。

如何解决BUG

1、定位问题。因为我所有的开源项目都有详细的SLF4J日志输出,当然很多其他开源项目也一样,所有的异常以及自己记录的日志都会统一输出,这为定位问题提供了可能。开发中养成记录详细日志的习惯对于定位问题有非常大的帮助,如果日志不详细或者出现把异常吞掉的情况,那么定位问题就会变得非常困难,APDPlat旗下的10大开源项目都有非常详细的日志。 2、查找原因。如果是自己的代码的问题,一般很快就能搞定...

264

推荐 30 款最好的免费项目管理软件

本文向你推荐30款免费的项目管理软件,其中有些是桌面应用,还有一些基于Web的平台,其中不乏优秀开源软件。TeamLabTeamLab 是一个免费开源的商业协作和项目管理的平台。TeamLab 主要功能包括:项目管理、里程碑管理、任务、报表、事件、博客、论坛、书签、Wiki、即时消息等等。XPlanner+XPlanner是专门为XP(极限编程)团队设计的项目管理工具

Maybe Love You 3412

[4] 开源软件Bug跟踪管理探讨『转载』

摘要 本文首先介绍了Bug管理的常规过程,接着分析了应用于开源软件开发过程的Bug跟踪管理系统的特点,描述了一个典型的Bug生命周期过程,并对完成一个合格的Bug报告做出了解释。文章还简单介绍了比较流行的缺陷跟踪管理系统Bugzilla等,并给出了个人的想法。 关键词:Bug管理,生命周期,缺陷跟踪管理系统 Abstract-This paper introduces a normal...

weixin_30509393的博客 146

使用开源软件 Mantis 实施缺陷跟踪的成功实践

在您的项目中,是否有遇到过这样的问题:测试人员报的缺陷被遗忘掉;延期项目终于发布,却遭遇用户频频抱怨,管理人员将矛头指向测试人员;书写不规范的错误报告,使得开发人员不得不一次次找到测试人员来重现;地域分散的开发团队,通过email和文档交流,缺陷状态混乱,相关人员无法及时获得有关的变更信息…… 那么,让测试组织使用数据库来部署产品缺陷的记录和跟踪吧!对于中小软件开发组织,或许不太可能使用动则几千

从菜鸟到菜菜鸟 2956

2024年开发者最爱用的Bug跟踪工具

选择合适的Bug管理工具是任何软件开发项目成功的关键。通过这篇文章,我们探讨了多种流行的Bug管理工具,每种工具都有其独特的功能和优势。无论是面向大型企业的Jira、适合开源项目的Bugzilla,还是支持敏捷开发的Tapd,重要的是找到最符合您团队需求、预算和工作流程的工具。希望本文能帮助您做出明智的选择,以提升开发效率,确保项目顺利进行。常见问答(FAQS):1、什么是Bug管理工具Bug管理工具是用于跟踪管理软件开发过程中出现的缺陷的系统,它帮助团队识别、记录、跟踪和解决问题。

柚橙论 1134

Bug管理的经验和实践

微软的开发流程和bug管理经验原文地址:http://www.cnblogs.com/Mainz/archive/2008/04/06/1139134.html—发表在《程序员》杂志2005年第1期57~61页的原文—孟岩:刘振飞,你好。我知道你以前是方正出版印刷系统的核心开发人员,后来来到微软的Office开

fredlau 痞子刘的博客 1731

国产化替代是个伪命题?被误解多年的开源软件,如今怎么样了?

开源是世界级创新的土壤,但要在“黑土地”上种出自己的庄稼,必须把根扎进芯片架构和操作系统底层。

Aaron_Zentao的博客 1004

mantis bug tracker

http://www.mantisbt.org/bugs/my_view_page.php Bug或需求管理工具

cxzhq2002的杂记 581

常用的五大bug管理工具的优缺点和下载地址

常用的五大bug管理工具的优缺点和下载地址 1、 QC(Quality Center) 是原Mercury Interactive公司(现已被HP收购)生产的企业级基于WEB测试管理工具,需要安装配置IIS和数据库,系统资源消耗比较大;功能很强大,结合有BUG管理,需求管理及用例管理等功能;和其它的测试工具,比如Loardrunner测试工具的接口做得比较好,数据可以在

wangxiong_zh的专栏 1668

如何利用缺陷的管理提高软件开发质量四——缺陷分析简介

质量管理     为了保证最后交付给客户产品的质量,在整个开发过程中,我们每个阶段都会做一些评审和测试,如图7.1,有需求评审、设计评审、代码评审、单元测试(UT)、集成测试(IT)、系统测试(ST)、验收测试(AT),都希望在整个开发生命周期过程中,尽早把缺陷找出,并排除,不要遗漏给客户。   所以有过程管理的概念,规定了一些评审、测试的规程要求。但是单靠这些过程,我们如何衡量执行

u011250455的专栏 784

软件测试面试问题

Interview Questions for QA Tester (Software Tester) These questions and answers are totally based on the interview I attended during my 6 years of working experience as a QA Tester. In some section

Yixiaoerguodehuoyan的博客 4419

[3] BUG MANAGEMENT

针对不同测试工具或者不同项目,都有特定的缺陷管理方法。今天重新看了一下缺陷管理方面的资料,总结一下。 Classification of bugs: 1. Bug Status New: Recorded by tester. Submitted: Submitted by tester to tester leader. Opened/Reopened: Review...

weixin_30289831的博客 161

使用开源软件 Mantis 实施缺陷跟踪的成功实践(转载)

来自:developerWorks中国 作者:蔡琰(cindy_cai@sina.com) [2004/04/26] 缺陷管理贯穿于整个软件开发生命周期中, 是不可缺少的环节,但在国内一些中小型开发商中没有得到足够得重视。本文结合实际应用,系统地介绍了缺陷跟踪开源软件 Buggit 和 Mantis, 以期抛砖引玉,引起重视。在您的项目中,是否有遇到过这样的问题:测试人员报

1908

Bug追踪管理简史

随着“用户体验第一”的口号被中国互联网老大们不断的挂在嘴巴上面,解决Bug这件小事早已从只有工程师关注,上升到产品、客服,运营,领导等,每个互联网从业人员都随时随地、无时无刻都要关心的问题。 因此,各种专业的Bug追踪管理工具也开始出现在你们的视线里。凡事从0开始看,我们先不谈哪个工具更好,只是简单的了解一下Bug追踪管理这件事情的一个发展历史,还蛮有趣的~

al_pan的博客 603
下一篇: 修改Bootp实验
WolfFlower
博客等级 码龄19年 5粉丝 7原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值