目录(?)[+]
本文档已按照最新版本的BugFree 3进行了更新,部分内容可能不适用于老版本的BugFree。建议访问BugFree下载页面,下载并升级至最新版本的BugFree。
Q1: 访问出现形如 “The requested URL /site/login was not found on this server.”的错误
A1: 出现此问题的原因应是你安装环境apache的mod_rewrite模块没被打开。 两种解决办法: 1. 开启apache的mod_rewrite模块 2. 将protected/main.php里''showScriptName'' => false改为true
Q2: 无法发送邮件
A2: 修改../protected/config/main.php中的邮件设置 'host' => 'your mail host', 'smtp_auth' => true, //如果邮件服务器必须登录才能使用,则此处必须设置为true,并给出有效的邮件用户名和密码 'username' => 'your mail username', 'password' => 'your mail password'
Q3: mysql_real_escape_string(): Access denied for user 'xxxxxxx'@'localhost' (using password: NO)
A3: mysql用户中创建一个nobody@localhost匿名用户、密码为空就可以了。只创建用户不用分配任何权限。
Q4: 更改默认的80端口后图片要怎样才能正常显示
A4: 1)通过附件上传的图片,更改端口后改对应main.php文件中picPreviewApp的设置
2)通过富文本编辑器上传的图片,
首先需要在../protected/extensions/kindeditor4/assets/php/upload_json.php文件中修改$save_url的设置。
然后删除../assets下的缓存文件,改动即可生效。
如是改端口前上传的,改端口后需要对数据库的图片地址信息做更替。 可在数据库中执行下面的sql语句更新:
update yourprefix_bug_info set repeat_step = replace(repeat_step,'src="http://oldaddress/BugFile/kindeditor_pic/image','src="http://newaddress/BugFile/kindeditor_pic/image'); update yourprefix_bug_action set action_note = replace(action_note,'src="http://oldaddress/BugFile/kindeditor_pic/image','src="http://newaddress/BugFile/kindeditor_pic/image'); update yourprefix_case_info set case_step = replace(case_step,'src="http://oldaddress/BugFile/kindeditor_pic/image','src="http://newaddress/BugFile/kindeditor_pic/image'); update yourprefix_case_action set action_note = replace(action_note,'src="http://oldaddress/BugFile/kindeditor_pic/image','src="http://newaddress/BugFile/kindeditor_pic/image'); update yourprefix_result_info set result_step = replace(result_step,'src="http://oldaddress/BugFile/kindeditor_pic/image','src="http://newaddress/BugFile/kindeditor_pic/image'); update yourprefix_result_action set action_note = replace(action_note,'src="http://oldaddress/BugFile/kindeditor_pic/image','src="http://newaddress/BugFile/kindeditor_pic/image');
改完端口后通过富文本上传图片一切正常
Q11: 升级时mysql报如下错误"Field 'created_by' doesn't have a default value"
A11: mysql的sql_mode被设置为严格模式,参考下面文章修改http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html
Q12: IE浏览器(IE8、IE9、IE10均测试过)从BUG上下载附件,只要是用中文的都乱码
A12: 修改../protected/service/TestFileService.php,将$contentDispositionStr = 'filename=' . $fileName;替换为$contentDispositionStr = 'filename=' . urlencode($fileName);
Q13: 如何隐藏case、result
A13:将../protected/config/main.php中的'showCaseResultTab' => true改为'showCaseResultTab' => false
BugFree基于PHP和MySQL开发,是免费且开放源代码的缺陷管理系统。服务器端在Linux和Windows平台上都可以运行;客户端无需安装任何软件,通过IE,FireFox等浏览器就可以自由使用。
BugFree 2 在BugFree 1.1的基础上,集成了Test Case和Test Result的管理功能。具体使用流程是:首先创建Test Case(测试用例),运行Test Case产生Test Result(测试结果),运行结果为Failed的Case,可以直接创建Bug。Test Case标题、步骤和Test Result运行环境等信息直接复制到新建的Bug中。如下图所示。
安装BugFree 3前需要部署配置PHP, Apache Http Server, MySQL环境。可以使用XAMPP, EASYPHP等集成环境快速部署。
下面以XAMPP为例进行说明。请先访问http://www.apachefriends.org/zh_cn/xampp.html下载并安装最新的XAMPP版本。
#Linuxmv bugfree /opt/lampp/htdocs/
#Windows 一般情况下htdocs在C:\xampp\htdocs\bugfreemove bugfree C:\xampp\htdocs\bugfree
#Linuxcd bugfreemkdir BugFilechmod 777 BugFile
#Windowscd bugfreemd BugFile
注意:升级之前,为防止数据丢失,建议从浏览器退出BugFree,并备份相应的数据库和虚拟目录。
注意:建议先升级到BugFree 2.1.3,测试无误后升级到BugFree 3.0。
#Linuxmv -f bugfree /opt/lampp/htdocs/
#Windows 一般情况下htdocs在C:\xampp\htdocs\bugfreemove bugfree C:\xampp\htdocs\bugfree
我们将会从主界面和创建界面来进行讲解。
访问http://<servername>/bugfree,输入用户名和密码登录成功后,显示BugFree主界面:
l 产品选择框①:可以快速切换当前产品,产品模块框②和查询结果框⑥显示相应的模块结构和记录。
l 产品模块框②:显示当前产品的模块结构。点击某一模块,查询结果框⑥会显示所选模块的所有记录。
l 个性显示框③:
l 模式切换标签④:切换Bug, Test Case和Test Result模式。默认登陆为Bug模式。
l 查询框⑤:设置查询条件。
l 查询结果框⑥:显示当前查询的结果。
l 导航栏⑦:显示当前登录用户名等信息。
l 导航栏⑧:新建及从模板新建。
为了保持用户体验的一致性,新建Bug, Test Case和Test Result的界面布局基本保持一致,只是具体填写字段有所不同。
以新建Bug为例,在主界面模式切换标签选择Bug,点击[新建 Bug]打开新建Bug页面。如下图,黄色标注字段为必填项。
我们将会从Bug的3种状态、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如果重新复现,也可以直接激活。具体流程如下图所示。
类型 |
解决方案 |
详细说明 |
三种无效的Bug |
By Design |
设计需求就是这么设计的 |
Duplicate |
这个问题别人已经发现 |
|
Not Repro |
无法复现的问题 |
|
四种有效的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的七种解决方案。如果解决方案为Duplicated,需要指定重复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 Case 状态和Test Case 字段说明来进行讲解。
Case状态 | 详细说明 |
---|---|
Active | 标示有效的测试用例。所有新建Case都默认为该状态 |
Blocked | 当前Case因为其他原因,无法正常运行。通过编辑Case进行修改 |
Investigating | 待研究确认的测试用例。通过编辑Case进行修改 |
Reviewed | 通过测试用例评审的用例。通过编辑Case进行修改 |
Case 标题:测试点的简单描述(30字以内)或测试的目的。
模块路径:指定测试用例对应的模块路径。
指派给:执行Test Case的人员。如果不知道具体的用例执行人员,可以指派给Active 。
抄送给:需要通知相关人员时填写。可以同时指派多个,人员之间用逗号分隔。
优先级:Case执行的优先级。1:冒烟测试及每次测试都需执行的用例,严重程度最高;2:覆盖产品所有主要功能;3:次要功能;4:细节功能(资源有限时,可以不执行)。其余选项字段(Case类型、测试方法、测试计划等):可以通过编辑产品的自定义功能去定制
Test Result只能通过运行已有测试用例来创建。打开一个已有的测试用例,点击页面上方[运行]按钮,进入创建Test Result页面。Case标题、模块路径和步骤等信息自动复制到新的Test Result中。同时,Test Result相关 Case自动指向该测试用例。记录执行结果(Passed或Failed)和运行环境信息(运行Build、操作系统、浏览器等信息),保存测试用例。针对执行结果为Fail的Test Result,点击页面上方的[新建 Bug]按钮,创建新Bug。Result标题、模块路径、运行环境和步骤等信息自动复制到新的Bug中。同时Test Result相关Bug指向新建Bug。
Case状态 | 详细说明 |
---|---|
Passed | 运行成功的Test Case |
Failed | 运行失败的Test Case |
我们将会从设置查询条件、快速筛选、自定义显示字段和查询结果排序来说明。
BugFree默认显示1个查询条件,可以根据需要进行添加。
查询技巧:
1. 点击[保存查询]按钮,可以将当前的查询条件保存到左下角个性查询框“我的查询”标签页。点击已保存的查询,可以对查询条件进行编辑和修改。
2. 日期类型字段支持相对日期的查询。例如,创建日期 = -1将查询所有昨天创建的Bug。
3. 通过“包含”操作,可以指定多个查询值。例如,创建者包含user1,user2,搜索结果将显示两个创建者的Bug。
注意:BugFree默认支持8个查询字段,可以通过修改proteched/config/main.php下面的值更改查询字段的数量。
'queryFieldNumber' => 8; // The fields number to query
在搜索结果列点击某一字段的值,可以快速进行筛选,筛选列高亮显示。例如,要查看所有解决方案为By Design的Bug,如下图,点击任一解决方案为By Design的Bug。
注意:筛选会忽略当前设置的查询条件。
在查询结果框左上角,点击[自定义显示]链接,可以显示或隐藏查询结果的字段和显示顺序。
点击搜索结果标题某一字段的标题栏,可以按该字段对搜索结果进行排序。再次点击则切换升序或降序。例如,需要查看最近更新的Bug,首先添加“最后修改日期”自定义字段,再在查询结果标题栏点击该字段。查询结果支持多字段排序
我们将会从使用Ldap域账号、使用标记、发送邮件通知、更改上传附件的大小和使用快捷键来进行讲解。
如果希望使用域控去控制bugfree的登录,请先在protected/config/main.php里设置好ldap信息
'ldap'=>array(
'host' => 'yourldaphost',
'port' => 'yourport',
'base' => 'yourbase',
'user' => 'username', //for system use,must be valid
'pass' => 'password' //for system use,must be valid
)
然后根据ldap结构去更改service/LdapService.php的search()方法
标记是BugFree3.0新添加的功能。在得到查询结果后,点击结果列左侧的小旗标,即可对感兴趣的条目作上标记。以后只要点击左边我的标记链接,即可将自己设定的标记条目给查找出来
1. 根据安装环境修改../protected/shell/notice_sample文件,linux修改.sh文件, windows修改.bat文件
2. 创建定时任务访问修改后的文件
step1. 将模块拆分为独立的产品(后台管理->产品管理->模块,选中要操作的模块,点击“分拆为产品”按钮)
step2. 后台管理->产品管理,找到刚拆分出来的产品,点击“合并”链接,弹出产品下拉列表,选择要合并到的产品
注:只有两个产品的自定义字段一样时才能进行合并操作。如不能合并,请根据提示进行产品自定义字段的修改。
在安装过程或者通过编辑protected/config/main.php文件可以启用邮件通知功能。例如,修改如下SMTP服务器信息。
BugFree可以实时和定时发送邮件通知。在新建Bug或Test Case并保存后,指派给和抄送给将收到实时邮件通知。可以在“抄送给”编辑框输入多个用户帐号或者邮件地址,地址之间用逗号分隔。
BugFree默认附件大小为2M,可以编辑protected/config/main.php文件下列设置更改上传文件大小。
'maxFileSize' = 2 * 1024 * 1024; // The max file size(Byte). |
以下快捷键需要浏览器支持。
页面 | 快捷键 | 说明 |
---|---|---|
主页面 | Ctrl + G | 弹出一个对话框。输入ID后,直接打开相应编号的Bug,Case或Result |
Bug, Case和Result通用快捷键 | Alt + P | 显示查询结果的上一个记录 |
Alt + N | 显示查询结果的下一个记录 | |
Alt + E | 编辑当前记录 | |
Alt + S | 保存记录 | |
Alt + T | 保存模板 | |
Bug页面 | Alt + R | 解决Bug |
Alt + C | 关闭Bug | |
Alt + A | 激活Bug | |
Case页面 | Alt + C | 复制Case |
Alt + R | 运行Case | |
Result页面 | Alt + B | 创建Bug |
在查询结果框右上角,点击[统计报表]链接打开新窗口。统计报表可以显示Bug, Test Case或Test Result当前查询结果的统计信息。
在统计报表页面的左侧选择统计项,点击[查看统计]按钮,右侧显示Flash统计图表。如下图:
我们将会从BugFree管理员角色、用户管理、用户组管理、项目管理和用户日志来说明。
BugFree的管理员包括系统管理员、产品管理员和用户组管理员三种角色。可以同时指派任意用户为任意角色。这三种管理员登陆BugFree之后,主页面上方导航栏会显示一个[后台管理]的链接。
全新安装BugFree之后,会自动创建一个默认的系统管理员帐号admin。密码为123456。通过此账号登录后,进入后台管理页面,在系统设置Tab页,通过编辑SYSTEM_ADMIN,增加其他系统管理员帐号。
产品管理员
产品管理员只能由系统管理员指派,指定哪些用户组可以访问当前项目。该角色负责维护产品的模块结构。
用户组管理员可以由系统管理员或者其他用户组管理员指派,负责维护一个用户组。一般情况下,用户组管理员和产品管理员可以是同一个用户。但是在大型的组织,在人员很多的情况下,可以指派专人对用户组进行维护。技术负责人则担当产品管理员的角色,负责维护产品的模块结构。
系统管理员、产品管理员和用户组管理员三种角色的详细权限如下表所列。
|
系统管理员 |
项目管理员 |
用户组管理员 |
产品管理 |
可以添加产品 可以查看和编辑所有产品 可以修改产品名称和显示顺序 可以指派产品用户组 可以指派产品管理员 可以编辑产品模块 |
不可以添加产品 仅可以查看和编辑自己是产品管理员的产品 不可以修改产品名称和显示顺序 可以指派产品用户组 不可以指派产品管理员 可以编辑产品模块 |
无权限 |
用户管理 |
可以查看所有用户 可以添加用户 可以编辑、禁用或激活所有用户 |
可以查看所有用户 可以添加用户 可以编辑、禁用或激活自己创建的用户或本人 |
可以查看所有用户 可以添加用户 可以编辑、禁用或激活自己创建的用户或本人 |
用户组管理 |
可以查看所有用户组 可以添加用户组 可以编辑或删除所有用户组 |
可以查看所有用户组 可以添加用户组 可以编辑或删除自己添加的用户组 |
可以查看所有用户组 可以添加用户组 可以编辑或删除自己添加的用户组或自己是用户组管理员的组 |
添加新用户,输入用户名、真实姓名、密码和邮件地址。用户名和密码用于登录BugFree;真实姓名则显示在指派人列表中用于选择。当有Bug或Test Case指派给该用户时,该用户设定的邮件地址会收到邮件通知。建议用户名与邮箱前缀一致,真实姓名则使用易读的中文名字。
点击[禁用]后,该用户将无法登录BugFree,并从所在用户组删除。包含该用户的记录将不再显示该用户的真实姓名,而以用户名代替。
再次点击[激活],将恢复该用户,但需要重新指派用户组权限。
创建用户之后,需要将用户添加到用户组,项目管理员通过指派用户组来分配权限。新用户只有在所属用户组指派给一个项目之后才可以登录BugFree系统。
安装BugFree之后,系统会默认创建一个[All Users] 默认组,该用户组包含所有用户,不需要额外添加用户。
点击[添加产品]的链接,创建新的产品。指派需要访问当前产品的用户组之后,改用户组的所有用户才可以访问该产品。产品默认显示顺序是按照创建的先后次序排列的。如果需要将某个产品排在最前面,编辑该产品,将显示顺序设置为0-255之间的数值。
创建了产品之后,通过[模块]链接,可以创建树形模块结构。一个产品可以包含多个模块,一个模块下面可以包含多个子模块。原则上,对子模块的层级没有限制。与产品的显示顺序类似,可以编辑模块的显示数据值更改同级模块的排列顺序。
如果指定模块负责人,在创建该模块下的Bug或Test Case时,会自动指派给该负责人。
如果删除一个模块之后,该模块下面的Bug或Test Case将自动移动到父模块中。
自定义字段管理
点击产品列表的相应[Bug],[Case]或[Result]链接,可以对产品的Bug,Case和Result去设定自定义字段。
在自定义字段的编辑阶段,可以设置自定义字段的使用阶段,是否必填和验证规则。如果是Bug的自定义字段则还需选择是否是从result获得。如果是从result获得,则会同时在bug和result的自定义表中添加相应的自定义字段。当从result去创建bug时,相应的字段值就会从result中自动获取
点击[禁用]后,可以隐藏某个产品,但并不真正从数据库删除记录,该产品将对所有人员不可见。
再次点击[激活],将恢复该产品所有的记录。
管理日志只有系统管理员可以查看。日志详细记录了后台的管理操作记录。
用户日志只有系统管理员可以查看,用于记录用户的登录信息,包括登录的用户名,登录机器的IP地址和登录时间。
具体使用说明请参考API接口文档:http://www.bugfree.org.cn/demo/doc/openapi.html
我们将会从使用Ldap域账号、使用标记、发送邮件通知、更改上传附件的大小和使用快捷键来进行讲解。
如果希望使用域控去控制bugfree的登录,请先在protected/config/main.php里设置好ldap信息
'ldap'=>array(
'host' => 'yourldaphost',
'port' => 'yourport',
'base' => 'yourbase',
'user' => 'username', //for system use,must be valid
'pass' => 'password' //for system use,must be valid
)
然后根据ldap结构去更改service/LdapService.php的search()方法
标记是BugFree3.0新添加的功能。在得到查询结果后,点击结果列左侧的小旗标,即可对感兴趣的条目作上标记。以后只要点击左边我的标记链接,即可将自己设定的标记条目给查找出来
1. 根据安装环境修改../protected/shell/notice_sample文件,linux修改.sh文件, windows修改.bat文件
2. 创建定时任务访问修改后的文件
step1. 将模块拆分为独立的产品(后台管理->产品管理->模块,选中要操作的模块,点击“分拆为产品”按钮)
step2. 后台管理->产品管理,找到刚拆分出来的产品,点击“合并”链接,弹出产品下拉列表,选择要合并到的产品
注:只有两个产品的自定义字段一样时才能进行合并操作。如不能合并,请根据提示进行产品自定义字段的修改。
在安装过程或者通过编辑protected/config/main.php文件可以启用邮件通知功能。例如,修改如下SMTP服务器信息。
BugFree可以实时和定时发送邮件通知。在新建Bug或Test Case并保存后,指派给和抄送给将收到实时邮件通知。可以在“抄送给”编辑框输入多个用户帐号或者邮件地址,地址之间用逗号分隔。
BugFree默认附件大小为2M,可以编辑protected/config/main.php文件下列设置更改上传文件大小。
'maxFileSize' = 2 * 1024 * 1024; // The max file size(Byte). |
以下快捷键需要浏览器支持。
页面 | 快捷键 | 说明 |
---|---|---|
主页面 | Ctrl + G | 弹出一个对话框。输入ID后,直接打开相应编号的Bug,Case或Result |
Bug, Case和Result通用快捷键 | Alt + P | 显示查询结果的上一个记录 |
Alt + N | 显示查询结果的下一个记录 | |
Alt + E | 编辑当前记录 | |
Alt + S | 保存记录 | |
Alt + T | 保存模板 | |
Bug页面 | Alt + R | 解决Bug |
Alt + C | 关闭Bug | |
Alt + A | 激活Bug | |
Case页面 | Alt + C | 复制Case |
Alt + R | 运行Case | |
Result页面 | Alt + B | 创建Bug |