BugFree 2.0.2使用帮助
BugFree官方网址:http://www.bugfree.org.cn
BugFree论坛:http://www.bugfree.org.cn/forum
目录
BugFree是借鉴微软内部Bug管理工具Product Studio,基于Browser/Server架构,免费且开发源代码的缺陷管理系统。BugFree用PHP语言和MySQL数据库实现。服务器端在Linux和Windows平台上都可以运行;客户端无需安装任何软件,通过IE,FireFox等浏览器就可以自由使用。
BugFree 2.0 在BugFree 1.1的基础上,集成了Test Case和Test Result的管理功能。具体使用流程是:首先创建Test Case(测试用例),运行Test Case产生Test Result(测试结果),运行结果为Fail的Case,直接创建Bug。Test Case标题、步骤和Test Result运行环境等信息直接复制到新建的Bug中。如下图所示。

在安装BugFree之前,需要首先安装Apache, PHP, Mysql支持软件包,例如XAMPP或EASYPHP等。
下面以XAMPP为例进行说明。请先访问http://www.apachefriends.org/zh_cn/xampp.html 下载并安装最新的XAMPP版本。
1.
下载BugFree2.0.2安装包,解压后复制到XAMPP系统的htdocs子目录下
如果是Linux系统,安装路径一般为/opt/lampp/htdocs/bugfree;
Window系统的安装路径一般为C:\xampp\htdocs\bugfree
2. 进入bugfree的安装目录,复制文件Include/Config.inc.Sample.php 为新文件Include/Config.inc.php,编辑新创建的文件,修改数据库链接设置:
|
/* 3. Define the username and password of the BugFree database. */ $_CFG['DB']['User'] = 'root'; // 数据库登录用户名 $_CFG['DB']['Password'] = ''; // 数据库登录用户密码 $_CFG['DB']['Host'] = 'localhost'; // 数据库服务器地址 $_CFG['DB']['Database'] = 'bugfree2'; // 指定BugFree数据库名称 $_CFG['DB']['TablePrefix'] = 'bf_'; // 数据库表前缀,默认为bf_。除非有冲突,不建议修改或为空 $_CFG['DBCharset'] = 'UTF8'; // 数据库编码设置,保留默认值 |
3. 如果是Linux 系统,修改下列目录和文件的权限,如果是Windows系统,跳过这一步
a) chmod 777 Data/TplCompile/
b) chmod 777 BugFile/
c) chmod 777 Include/Config.inc.php
4. 在浏览器访问http://servername/bugfree。如果设置的数据库不存在,按照提示创建数据库,再点击继续安装
5. 点击“安装全新的 BugFree2”。
6. 安装成功后,显示首次登录的默认管理员帐号和密码,按照提示首先使用默认管理员用户名和密码登陆BugFree
升级之前,为防止数据丢失,建议在浏览器退出BugFree 2.0,并备份BugFree 2.0的数据库和虚拟目录
1. 下载BugFree2.0.2安装包,解压后复制到BugFree 2.0 RTM的安装目录下,覆盖原有文件
2. 在浏览器访问http://servername/bugfree
3. 点击“从现有的BugFree2 升级”,完成到2.0.2的升级
升级之前,为防止数据丢失,建议在浏览器退出BugFree 1.1,并备份BugFree 1.1的数据库和虚拟目录
1. 下载BugFree 2.0.2安装包,解压后复制到BugFree 1.1的安装目录下,覆盖原有文件
2. 进入bugfree的安装目录,复制文件Include/Config.inc.Sample.php 为新文件Include/Config.inc.php,编辑新创建的文件,并复制Include/ConfigBug.inc.php的相应设置
3. 点击“从BugFree1 升级”,完成BugFree 1.1 到2.0.2的升级
注意:如果BugFree1.1升级到2.0之后显示乱码,请修改Include/Config.inc.php的$_CFG['DBCharset']值为空,再恢复原有的BugFree1.1数据库,重新进行升级
|
$_CFG['DBCharset'] = '' |
访问http://servername/bugfree,输入用户名和密码登录成功后,显示BugFree主界面:

1. 项目选择框:可以快速切换当前项目,项目模块框(2)和查询结果框(6)显示相应的模块结构和记录。
2. 项目模块框:显示当前项目的模块结构。点击某一模块,查询结果框(6)会显示当前模块的所有记录。
3. 个性显示框:
a) 指派给我:显示最近10条指派给我的记录。
b) 由我创建:显示最近10条由我创建的记录。
c) 我的查询:保存查询框(5)的查询条件。
4. 模式切换标签:切换Bug, Test Case和Test Result模式。默认登陆为Bug模式。
5. 查询框:设置查询条件。
6. 查询结果框:显示当前查询的结果。
a) 自定义显示:设置查询结果的显示字段。
b) 全部导出:将当前查询结果记录导出到网页。
c) 统计报表:显示当前查询结果的统计信息。
7. 导航栏:显示当前登录用户名等信息。
为了保持用户体验的一致性,新建Bug, Test Case和Test Result的界面布局基本保持一致,只是具体填写字段有所不同。
以新建Bug为例,在主界面模式切换标签选择Bug,点击[新建 Bug]打开新建Bug页面。如下图,黄色标注字段为必填项。

|
状态 |
说明 |
|
Active(活动) |
Bug的初始状态。任何新建的Bug状态都是Active。可以通过编辑修改Bug的内容,并指派给合适的人员解决。 |
|
Resolved(已解决) |
解决Bug之后的状态。 |
|
Closed(已关闭) |
已修复Bug在验证无误之后关闭,该Bug处理完毕。如果没有真正解决或者重新复现,可以重新激活,Bug状态重新变为Active。 |
新建的Bug处于Active状态,可以通过编辑指派给合适的解决者。解决Bug之后,Bug状态变为Resolved,并自动指派给创建者。创建者验证Bug。如果未修复,再重新激活,Bug状态重新变为Active;如果已经修复则可以关闭,Bug状态变为Closed,Bug生命周期结束。已经Closed的Bug如果重新复现,也可以直接激活。具体流程如下图所示。

|
3种无效的Bug |
By Design |
设计需求就是这么设计的 |
|
Duplicate |
这个问题别人已经发现 |
|
|
Not Repro |
无法复现的问题 |
|
|
4中有效的Bug |
Fixed |
问题被修复 |
|
External |
外部原因(比如浏览器、操作系统、其他第三方软件)造成的问题 |
|
|
Postponed |
发现的太晚了,下一个版本讨论是否解决 |
|
|
Won’t Fix |
是个问题,但是不值得修复 |
Bug 标题:为包含关键词的简单问题摘要,要有利于其他人员进行搜索或通过标题快速了解问题
项目名/模块路径:指定问题出现在哪个项目的哪个模块。Bug处理过程中,需要随时根据需要修改项目或模块,方便跟踪。如果后台管理指定了模块负责人,选择模块时,会自动指派给负责人
指派给:Bug的当前处理人。如果不知道Bug的处理人,可以指派给Active,项目或模块负责人再重新分发、指派给具体人员。如果设定了邮件通知,被指派者会收到邮件通知。此外,状态为Closed的Bug,默认会指派给Closed,表示Bug生命周期的结束
抄送给:需要通知相关人员时填写,例如测试主管或者开发主管等。可以同时指派多个,人员之间用逗号分隔。如果设定了邮件通知,当Bug有任何更新时,被指派者会收到邮件通知
严重程度:Bug的严重程度。由Bug的创建者视情况来指定,其中1为最严重的问题,4为最小的问题。一般来讲,1级为系统崩溃或者数据丢失的问题;2级为主要功能的问题;3级为次要功能的问题;4级为细微的问题。
优先级:Bug处理的优先级。由Bug的处理人员按照当前业务需求、开发计划和资源状态指定,其中1的优先级最高,4的优先级最低。一般来讲,1级为需要立即解决的问题;2级为需要在指定时间内解决的问题;3级为项目开发计划内解决的问题;4级为资源充沛时解决的问题。
其余选项字段(Bug类型、如何发现、操作系统、浏览器):可以通过编辑Lang/ZH_CN_UTF-8/_COMMON.php来自定义
创建Build:Bug是在哪个版本(Build或者Tag)被发现的
解决Build:Bug是在哪个版本(Build或者Tag)被解决的
解决方案:参考Bug的7中解决方案。如果解决方案为Duplicated,需要指定重复Bug的Bug编号。
处理状态:Bug处理过程的附属子状态,例如Local Fix表示已在本地修复;Checked In表示修复代码已经提交;Can’t Regress表示修复的问题暂无法验证等。
机器配置:测试运行的硬件环境,例如Dell G280 2G/200G
关键词:主要用于自定义标记,方便查询。关键词之间用逗号或者空格分隔。例如,对本地解决的Bug可以首先标记localfix,等真正提交新版本时,查询所有关键词包含localfix的bug,统一进行解决
相关 Bug:与当前Bug相关的Bug。例如,相同代码产生的不同问题,可以在相关Bug注明
相关 Case:与当前Bug相关的Case。例如,测试遗漏的Bug可以在补充了Case之后,在Bug的相关Case注明
上传附件:上传Bug的屏幕截图,Log日志或者Call
Stack等,方便处理人员
复现步骤:[步骤]要描述清晰,简明扼要,步骤数尽可能少;[结果]说明Bug产生的错误结果;[期望]说明正确的结果。可以在[备注]提供一些辅助性的信息,例如,这个bug在上个版本是否也能复现,方便处理人员
测试用例(Test Case)是在测试执行之前设计的一套详细的测试计划,包括测试环境、测试步骤、测试数据和预期结果。在导航栏点击Test Case,即切换到Test Case模式,点击[新建Case],创建测试用例。可以通过页面上方的[复制]按钮快速创建类似的测试用例。
Test Result只能通过运行已有测试用例来创建。打开一个已有的测试用例,点击页面上方[运行]按钮,进入创建Test Result页面。Case标题、模块路径和步骤等信息自动复制到新的Test Result中。同时,Test Result相关 Case自动指向该测试用例。记录执行结果(Pass或Fail)和运行环境信息(运行Build、操作系统、浏览器等信息),保存测试用例。针对执行结果为Fail的Test Result,点击页面上方的[新建 Bug]按钮,创建新Bug。Result标题、模块路径、运行环境和步骤等信息自动复制到新的Bug中。同时Test Result相关Bug指向新建Bug。
BugFree默认显示2个查询组,每组有3个查询字段(总共6个查询字段)。假设要查询项目Project 1, Project 2和Project 3从2008年1月1日起所有未关闭的Bug,可以设置如下的查询条件:

点击[保存查询]按钮,可以将当前的查询条件保存到右下角个性查询框“我的查询”标签页。这样,在下次登录的时候,就可以直接通过点击已保存的查询显示相应的搜索结果。
注意:BugFree默认支持6个查询字段,可以通过修改Include/Config.inc.php下面的值更改查询字段的数量。
|
$_CFG['QueryFieldNumber'] = 6; // The fields number to query in QueryBugForm.php |
在搜索结果列点击某一字段的值,可以快速进行筛选,筛选列高亮显示。例如,要查看所有解决方案为By Design的Bug,如下图,点击任一解决方案为By Design的Bug。

注意:筛选会忽略当前设置的查询条件。
在查询结果框右上角,点击[自定义显示]链接,可以显示或隐藏查询结果的字段和显示顺序。

点击搜索结果标题某一字段的标题栏,可以按该字段对搜索结果进行排序。再次点击则切换升序或降序。例如,需要查看最近更新的Bug,首先添加“最后修改日期”自定义字段,再在查询结果标题栏点击该字段。

在查询结果框右上角,点击[统计报表]链接打开新窗口。统计报表可以显示Bug, Test Case或Test Result当前查询结果的统计信息。
在统计报表页面的左侧选择统计项,点击[查看统计]按钮,右侧显示Flash统计图表。如下图:

在安装过程或者通过编辑Include/Config.inc.php文件可以启用邮件通知功能。例如,修改如下SMTP服务器信息。
|
/* 9. SMTP param setting. */ $_CFG['Mail']['SendParam']['Host'] = 'localhost'; // The server to connect. Default is localhost $_CFG['Mail']['SendParam']['SMTPAuth'] = false; // Whether or not to use SMTP authentication. Default is FALSE $_CFG['Mail']['SendParam']['Username'] = ''; // The username to use for SMTP authentication. $_CFG['Mail']['SendParam']['Password'] = ''; // The password to use for SMTP authentication. |
BugFree可以实时和定时发送邮件通知。在新建Bug或Test Case并保存后,指派给和抄送给将收到实时邮件通知。可以在“抄送给”编辑框输入多个用户帐号或者邮件地址,地址之间用逗号分隔。如下图,BugFree自动按照输入的字母对用户名进行筛选。

BugFree还可以发送定期邮件通知。
1. 如果需要定期对所有未关闭Bug的当前指派者发送邮件提醒,在Linux环境下定期执行bugfree/Shell/NoticeBug.sh;Windows环境下则定期执行bugfree/Shell/NoticeBug.bat。
2. 如果需要发送每周Bug统计报告和累计Bug统计报告,步骤如下。
a) 通过编辑Include/Config.inc.php文件修改需要通知的用户。假设需要给user1和user2发送定期邮件通知,修改如下
|
/* Define report user list. Like this: array('admin', 'someone@example.com');*/ $_CFG['MailReportUser'] = array('user1', ‘user2’); |
b) Linux环境下,通过crontab定期执行bugfree/Shell/StatBug.sh;Windows环境下则则可以通过定时任务程序定期执行bugfree/Shell/StatBug.bat。
BugFree2.0 提供了对基本UBB代码的支持,可以在编写复现步骤和注释时添加链接、设置字体、嵌入图像等,也可以直接引用bug,case和result。
例如,编辑状态下输入文字:
|
链接[url]www.bugfree.org.cn[/url] 字体[b]加粗[/b], [i]斜体[/i], [u]下划线[/u] 引用bug#[bug]100[/bug], case#[case]11[/case], result#[result]6[/result] 嵌入图像[img]http://www.bugfree.org.cn/buglifecycle.png[/img] |
保存后的显示效果:

BugFree默认附件大小为1000K,可以编辑Include/Config.inc.php文件下列设置更改上传文件大小。
|
$_CFG['File']['MaxFileSize'] = 1024 * 1000; // The max file size(Byte). |
以下快捷键需要浏览器支持。
|
页面 |
快捷键 |
说明 |
|
主页面 |
Ctrl + G |
弹出一个对话框。输入ID后,直接打开相应编号的Bug,Case或Result |
|
Bug, Case和Result 通用快捷键 |
Alt + P |
显示查询结果的上一个记录 |
|
Alt + N |
显示查询结果的下一个记录 |
|
|
Alt + E |
编辑当前记录 |
|
|
Alt + S |
保存记录 |
|
|
Bug页面 |
Alt + R |
解决Bug |
|
Alt + C |
关闭Bug |
|
|
Alt + A |
激活Bug |
|
|
Case页面 |
Alt + C |
复制Case |
|
Alt + R |
运行Case |
|
|
Result页面 |
Alt + B |
创建Bug |
如果是管理员登陆,主页面上方导航栏会显示一个[后台管理]的链接。全新安装BugFree之后,会自动创建一个默认的管理员帐号admin。你可以通过编辑BugFree目录下的Include/Config.inc.php文件,增加其他管理员帐号。
例如,假设要将user1设置为BugFree管理员。编辑Include/Config.inc.php文件,将user1添加到下面的行。
|
/* 2. Define admin user list. Like this:
array('admin','test1') */ |
注意:如果user1不存在,首先需要登录默认管理员帐号创建该用户。
点击[添加项目]的链接,创建新的项目。项目默认显示顺序是按照创建的先后次序排列的。如果需要将某个项目排在最前面,编辑该项目,将显示顺序设置为0-255之间的数值。
创建了项目之后,通过[Bug模块]和[Case模块]链接,可以分别为Bug和Test Case创建树形模块结构。一个项目可以包含多个模块,一个模块下面可以包含多个子模块。原则上,对子模块的层级没有限制。与项目的显示顺序类似,可以编辑模块的显示数据值更改同级模块的排列顺序。
如果指定模块负责人,在创建该模块下的Bug或Test Case时,会自动指派给该负责人。
如果删除一个模块之后,该模块下面的Bug或Test Case将自动移动到父模块中。
点击[禁用]后,可以隐藏某个项目,但并不真正从数据库删除记录,该项目将对所有人员不可见。
再次点击[激活],将恢复该项目所有的记录。
添加新用户,输入用户名、真实姓名、密码和邮件地址。用户名和密码用于登录BugFree;真实姓名则显示在指派人列表中用于选择。当有Bug或Test Case指派给该用户时,该用户设定的邮件地址会收到邮件通知。建议用户名与邮箱前缀一致,真实姓名则使用易读的中文名字。
点击[禁用]后,该用户将无法登录BugFree,并从所在分组删除。包含该用户的记录将不再显示该用户的真实姓名,而以用户名代替。
再次点击[激活],将恢复该用户,但需要重新指派分组权限。
创建完成项目和用户之后,需要进行分组管理,指定哪些用户可以访问哪些项目。新用户只有在指派至少一个项目之后才可以登录BugFree系统。
可以将多个用户同时指派给多个项目。例如,将用户user1, user2, user3同时指派给project1, project2。
用户日志用例记录用户的登录信息,包括登录的用户名,登录机器的IP地址和登录时间。
具体使用说明请参考API接口文档:bugfree_api.html
API应用示例下载:api-example.tar.gz