BugFree官方网址:http://www.bugfree.org.cn/
BugFree论坛:http://www.bugfree.org.cn/forum
BugFree简介
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中。如下图所示。
服务器安装
全新安装
1. 在Windows或Linux服务器上安装Apache,PHP,Mysql软件包,例如xampp, easyphp等。
2. 下载BugFree安装包,解压并上传到服务器的bugfree虚拟目录下。
3. 如果是在Linux 环境下,需要修改下列目录和文件的权限。
a) chmod 777 Data/TplCompile/
b) chmod 777 BugFile/
c) chmod 777 Include/Config.inc.php
4. 在浏览器运行http://servername/bugfree/install.php,选择安装语言,选择全新安装,下一步。
5. 按照提示输入数据库连接信息等信息,注意以下几点。
a) 如果需要在一个数据库系统安装2套以上的BugFree,可以指定不同的“BugFree 数据表的前缀名称”。
b) 如果需要将用户登陆帐号和第三方数据库集成(例如:使用Dizcuz的用户信息登陆BugFree),选中“2、设置用户验证表所在的数据库”,按提示设置数据库信息。
c) “上传附件存放目录,此目录必须可读可写”中指定的目录名必须和步骤3- b 的目录名一致。
6. 点击[Install]按钮安装BugFree。安装完毕后,删除install.php文件。
7. 浏览http://servername/bugfree,使用步骤5指定的管理员用户名和密码登陆BugFree。
8. 进入后台管理,添加项目、用户帐号和分组(参见后台管理)。
从BugFree1.1升级
1. 下载BugFree安装包,解压并上传到服务器的bugfree虚拟目录下。
2. 如果是在Linux 环境下,需要修改下列目录和文件的权限。
a) chmod 777 Data/TplCompile/
b) chmod 777 Include/Config.inc.php
3. 在浏览器运行http://servername/bugfree/install.php,选择语言,选择从BugFree 1.x升级,下一步。
4. 输入与BugFree 1.1 相同的数据库连接和邮件功能设置。
5. 点击[Install]按钮安装BugFree。安装完毕后,删除install.php文件。
6. 将1.1版的BugFile目录下的文件拷贝到2.0版的BugFile目录下(Linux环境下使用 cp -p 保留原文件和文件夹的属性)。
BugFree 界面
主界面
访问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和TestResult的界面布局基本保持一致,只是具体填写字段有所不同。以创建Bug为例,在主界面模式切换标签选择Bug模式,点击[创建 Bug]打开创建Bug页面。如下图,黄色表示控件为必填项。
Bug管理
Bug的3种状态
状态
说明
Active(活动)
Bug的初始状态。任何新创建的Bug状态都是Active。可以通过编辑修改Bug的内容,并指派给合适的人员解决。
Resolved(已解决)
解决Bug之后的状态。
Closed(已关闭)
已修复Bug在验证无误之后关闭,该Bug处理完毕。如果没真正解决或者重新复现,可以重新激活,Bug状态重新变为Active。
Bug 生命周期
新创建的Bug处于Active状态,可以通过编辑指派给合适的解决者。解决者解决Bug之后,Bug状态变为Resolved并自动指派给创建者。创建者验证Bug。如果未修复,再重新激活,Bug状态重新变为Active;如果已经修复则可以关闭,Bug状态变为Closed,Bug生命周期结束。已经Closed的Bug如果重新复现,也可以直接激活。具体流程如下图所示。
Bug的7中解决方案
3种无效的Bug
By Design
设计需求就是这么设计的
Duplicate
这个问题别人已经发现
Not Repro
无法复现的问题
4中有效的Bug
Fixed
问题被修复
External
外部原因(比如浏览器、操作系统、其他第三方软件)造成的问题
Postponed
发现的太晚了,下一个版本讨论是否解决
Won’t Fix
是个问题,但是不值得修复
Test Case管理
测试用例(Test Case)是在测试执行之前设计的一套详细的测试计划,包括测试环境、测试步骤、测试数据和预期结果。在导航栏点击Test Case,即切换到Test Case模式,点击[创建Case]创建测试用例。可以通过页面上方的[复制]按钮快速创建类似的测试用例。
Test Result管理
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统计图表。如下图:
BugFree使用技巧
发送邮件通知
在安装过程或者通过编辑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。
在Bug和Case中使用UBB代码
BugFree2.0 提供了对基本UBB代码的支持,可以在编写复现步骤和注释时添加链接、设置字体、嵌入图像等,也可以直接引用bug,case和result。
例如,编辑状态下输入文字:
字体[b]加粗[/b], [i]斜体[/i], [u]下划线[/u]
引用bug#[bug]100[/bug], case#[case]11[/case], result#[result]6[/result]
嵌入图像
保存后的显示效果:
更改上传附件的大小
BugFree默认附件大小为100K,可以编辑Include/Config.inc.php文件下列设置更改上传文件大小。
$_CFG['File']['MaxFileSize'] = 1024 * 100; // 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管理帐户设置
如果是管理员登陆,主页面上方导航栏会显示一个[后台管理]的链接。全新安装BugFree之后,会自动创建一个默认的管理员帐号admin。你可以通过编辑BugFree目录下的Include/Config.inc.php文件,增加其他管理员帐号。
例如,假设要将user1设置为BugFree管理员。编辑Include/Config.inc.php文件,将user1添加到下面的行。
/* 2. Define admin user list. Like this: array('admin','test1') */
$_CFG['AdminUser'] = array('admin',’user1’);
注意:如果user1不存在,首先需要登录默认管理员帐号创建该用户。
项目管理
点击[添加项目]的链接,创建新的项目。项目默认显示顺序是按照创建的先后次序排列的。如果需要将某个项目排在最前面,编辑该项目,将显示顺序设置为0-255之间的最大值。
Bug模块管理和Case模块管理
创建了项目之后,通过[Bug模块管理]和[Case模块管理]链接,可以分别为Bug和Test Case创建树形模块结构。一个项目可以包含多个模块,一个模块下面可以包含多个子模块。原则上,对子模块的层级没有限制。与项目的显示顺序类似,可以编辑模块的显示数据值更改同级模块的排列顺序。
如果指定模块负责人,在创建该模块下的Bug或Test Case时,会自动指派给该负责人。
如果删除一个模块之后,该模块下面的Bug或Test Case将自动移动到父模块中。
终止和激活项目
[终止该项目]后,并不真正从数据库删除记录,只是不在查询结果显示。[激活该项目]将恢复该项目所有的记录。
用户管理
添加新用户,输入用户名、真实姓名、密码和邮件地址。用户名和密码用于登录BugFree;真实姓名则显示在指派人列表中用于选择。当有Bug或Test Case指派给该用户时,该用户设定的邮件地址会收到邮件通知。建议用户名与邮箱前缀一致,真实姓名则使用易读的中文名字。
删除一个用户之后,包含该用户的记录将不再显示该用户的真实姓名,而以用户名代替。
注意:已经删除的用户无法重新激活,请谨慎使用。
分组管理
创建完成项目和用户之后,需要进行分组管理,指定哪些用户可以访问哪些项目。新用户只有在指派至少一个项目之后才可以登录BugFree系统。
可以将多个用户同时指派给多个项目。例如,将用户user1, user2, user3同时指派给project1, project2。
用户日志
用户日志用例记录用户的登录信息,包括登录的用户名,登录机器的IP地址和登录时间。