姜 文,刘立康
(西安电子科技大学 通信工程学院,陕西 西安710071)
BugFree在软件维护管理中的应用
姜 文,刘立康
(西安电子科技大学 通信工程学院,陕西 西安710071)
软件产品交付客户使用以后,需要软件维护组持续为该产品提供有力的技术支持。软件维护组的内部技术管理十分重要,有助于提高维护工作效率。维护组可以选择BugFree工具管理日常维护工作,结合维护工作实践,介绍了缺陷管理工具BugFree,叙述了BugFree系统中问题单的处理流程和问题单的各种状态。最后介绍了两个典型维护工作案例,包括非软件代码缺陷导致的故障问题和软件源代码缺陷导致的故障问题。长期的工作实践表明使用BugFree工具可以有效地管理维护组的维护工作,提高维护工作质量。
软件维护;BugFree;问题单;运维工程师
随着计算机技术在各行各业普及,应用软件的种类大量增加,各类应用软件维护[1-7]工作量也日渐增大,越来越多的软件开发工程师逐渐转移到应用软件维护运维工作。软件维护作为应用软件生命周期的最后一个环节,是软件生命周期中持续时间最长的阶段,也是软件生命周期中的关键阶段。在软件产品交付给客户方使用后,需要不断解决客户在使用过程中遇到的各种问题,持续适应用户对软件产品改进的要求,高质量完成软件维护的工作,从而延续软件的使用寿命。
在软件维护过程中,软件各类故障问题的管理,将直接影响着软件维护工作的质量与效率。本文介绍了缺陷管理工具BugFree[8-15],叙述了BugFree工具在软件维护工作中的应用。最后介绍了一些典型维护工作案例。
BugFree工具是借鉴微软的软件研发流程和软件缺陷管理理念,将PHP与MySQL结合起来开发的软件缺陷管理系统。是众多软件缺陷管理系统中相对简单实用并且开源免费的一款缺陷管理系统。BugFree适用于中小型软件企业的各部门、各种技术开发小组或者团队。
1.1 BugFree软件的部署
在使用 BugFree之前,需要完成对该软件的部署。BugFree 3.0.2具体部署过程如下:
1)安装XAMPP-win32-1.7.7,XAMPP是集成Apache、PHP、MYSQL环境,安装完XAMPP之后才能安装BugFree软件。
2)安装 BugFree 3.0.2,将 BugFree的安装包解压到XAMPP的 htdocs目录下,然后在浏览器中输入 http:// localhost/bugfree/install对BugFree进行安装。
3)分别启动Apache与MYSQL服务。
4)完成配置BugFree工具,并使用系统管理员账号登入BugFree系统。
1.2 BugFree的账号管理
完成BugFree软件部署后,需要维护经理指定一名运维工程师作为系统管理员。系统管理员使用BugFree软件默认的管理员账号admin,建立以软件产品名为名称的产品项目Project,给维护组的所有成员添加访问权限。访问权限添加成功之后,维护组所有成员能够使用自己的账号登陆该软件产品的BugFree系统页面。
使用BugFree系统可以管理维护组的日常工作。软件产品在维护过程中出现的各种故障问题,可以在该系统中进行问题提单,对问题单进行跟踪处理。
2.1 软件维护项目组中的角色
维护组有两种角色维护经理和维护组成员运维工程师。
对于维护经理:
1)浏览BugFree系统中软件故障问题单,指派给运维工程师处理。
2)在BugFree系统中查询软件故障问题单的处理情况,掌握运维工程师的工作进度。
3)根据已经记录在BugFree系统中的软件产品代码缺陷来制定补丁计划。
4)根据已经记录到BugFree系统中出现问题较多的产品模块安排对该模块的源代码进行代码排查,进行自主改进。
5)根据已经记录到BugFree系统中出现的非软件代码问题,安排资料工程师对软件产品文档添加新的 FAQ(Frequently Asked Questions),定期安排售后工程师与客户方人员进行产品培训。
6)根据维护组每个成员解决问题的数量以及效率作为部分绩效评定的根据。
对于维护组成员运维工程师:
1)在BugFree系统中提交软件产品故障问题单。
2)在BugFree系统中查询维护经理指派给自己的故障问题单,开始维护工作。
3)工作任务完成后在BugFree系统中关闭问题单。
4)查询在BugFree系统的案例,提高解决问题的能力和效率。这一点对于新员工尤为重要。
2.2 问题单的状态
问题单的状态分类见表1:
表1 问题单状态分类表
2.3 问题单的处理流程
在BugFree系统中问题单的处理流程图如图1所示:
图1 BugFree系统中问题单的处理流程
2.3.1 在BugFree系统中提单
发现软件产品故障问题后,维护经理将该问题分配给运维工程师,在维护组的实验室环境中模拟问题环境重现故障,当经过反复重现后,可以确认该问题是软件产品需要解决的故障问题。运维工程师将确认的结果汇报给维护经理,并使用自己的账号登陆BugFree系统新建问题单,根据维护组的提单要求,依次填写Bug标题、Bug类型、严重程度等,对于客户局点反馈回来的缺陷还需要写明发现问题的局点。仔细描述 Bug的复现步骤,并将相关日志文件等附件上传BugFree系统。问题单填写完毕之后,再根据提单要求检查无误之后,保存提交的问题单。此时问题单处于New状态。
2.3.2 问题单走到Open状态
维护经理将问题单指派给运维工程师处理,通常指派给提单的运维工程师继续处理该问题,也可以因为工作需要,将该问题单转给维护组中其他的运维工程师处理。此时该问题单走到Open状态。运维工程师将故障问题在项目组的实验室环境中复现出来之后,需要根据出问题的模块对缺陷进行定位,进一步分析确认该故障问题发生的原因。在这一阶段需要在BugFree系统中对该问题单添加分析结果、日志以及一些执行定位手段的文档,表明该问题单正处于运维工程师分析问题根本原因的阶段。
2.3.3 问题单走到Fixed或Deferred状态
运维工程师对故障问题进行仔细的分析与定位之后,最终完全可以确认该缺陷是否是软件产品源代码陷导致的,如果不是则将问题单走到Fixed状态,如果是,则将问题单走到Deferred状态。
1)问题单走到Fixed状态
运维工程师经过分析和定位后,发现该故障问题不是由软件源代码缺陷导致的问题,而是由于客户方人员在使用过程中对软件产品管理不善、误操作导致的。此时,运维工程师需要给出相应的解决方法,经验证之后确认解决方法可行。将解决方案的每一个步骤以操作文档形式详细记录下来,并将该文档以附件形式上传至BugFree系统,并将该问题单走到Fixed状态。
2)问题单走到Deferred状态
运维工程师经过分析和定位后,发现该故障问题是软件产品源代码缺陷导致的问题。反复确认之后,向维护经理反馈这一情况,将该故障问题加入补丁计划。运维工程师根据维护经理制定的补丁计划,对该软件代码缺陷进行代码编写和修改后,进行功能调试和测试。运维工程师在BugFree系统中将修改前后的源代码与包含局点信息、软件版本、故障原因、定位过程以及解决方案撰写成规定格式的文档,以附件形式上传到 BugFree系统,并在“解决方案”这一项中填写合入的补丁版本的版本号。该问题单走到Deferred状态。
2.3.4 问题单走到Close状态
对于非软件代码导致的故障问题,在运维工程师将解决方案文档发给该问题的提出者,问题提出者在问题解决之后,向运维工程师反馈故障问题已经解决。此时,运维工程师将问题单走到Close状态,关闭问题单流程。
对于软件源代码导致的故障问题,运维工程师根据补丁计划中的开发时间完成在最新版本的软件产品源代码的编码、功能调试与功能验证测试之后;将源代码文件合入代码配置库;经过补丁版本包编译之后,运维工程师取补丁版本包对软件版本修改的缺陷进行功能验证;验证确认无误之后,补丁版本包转测试,由测试工程师完成对此次补丁版本的合入的所有问题以及产品补丁的基本功能进行测试;经过多轮测试之后,确认补丁版本可以发布,则由维护经理提交补丁版本发布流程,并知会出现软件产品缺陷的客户方局点安排升级新的补丁版本。维护组协助售后工程师在客户局点安装使用新的补丁版本。此时,运维工程师将问题单走到Close状态,关闭问题单流程。
以下是软件维护组工作中的两个实际维护案例。
3.1 非软件代码问题导致的缺陷
故障问题描述:客户局点M由于软件系统管理员工作交接不彻底,导致软件系统管理员账号密码丢失,新管理员多次输入错误管理员密码,导致管理员账号被锁定,无法登陆系统,导致系统无法正常使用。严重程度:高。
故障问题的处理过程如下:
1)运维工程师在项目组的实验环境上重现出这一现象,并在BugFree系统中提单,问题单处于New状态。
2)维护组查询到该问题单,运维经理指派运维工程师处理,问题单走到Open状态。
3)运维工程师经过分析后,删除原有的密码相关的配置文件,将软件系统的管理员账号恢复默认密码。在项目组的实验室环境反复验证之后,确认此方式可行,运维工程师将解决方案的每一个步骤写成操作文档,以邮件形式发给M局点,并将操作文档以附件形式上传到维护组的BugFree系统。问题单走到Fixed状态。
4)售后工程师协助客户局点处理该问题,确认问题已经解决。运维工程师关闭该问题单。
5)编写相关文档,将该故障问题加入案例库。
之后,又有一个客户局点也发生了类似的问题,另一运维工程师从案例库中找到该案例,高效率解决了该问题。运维经理经过了解发现这类问题客户局点和售后工程师不熟悉,在定期举行的产品培训中重点培训了这个案例,并将这个案例加入产品文档的FAQ。
3.2 软件源代码导致的缺陷
故障问题描述:软件产品V3版本,测试工程师进行软件测试过程中发现:某一类报表下载之后提示保存失败,不能保存。严重程度:中。
故障问题的处理过程如下:
1)运维工程师在项目组的实验环境上重现出这一现象,并在BugFree系统中提单。问题单处于New状态。
2)运维项目组查询到该问题单,运维经理分配给某运维工程师处理,问题单走到Open状态。。
3)运维工程师对目前版本源代码的进行调试,发现当查询结果中的一项“释放原因的包含小区号”在查询结果页面上显示乱码,导致报表不能正常从软件系统下载,显示乱码的原因是“释放原因的包含小区号”在其对应的16进制数的前 14位由“FF”与“00”组成,后14位由“FF”组成,在解码过程中不能解码成ASCII表中对应的任何数字和字母,因此显示乱码。出现“某一类报表下载之后提示保存失败,不能保存”这一问题的原因是由于软件产品自身的源代码缺陷导致的,需要修改源代码。
4)维护经理制定补丁包计划,将该问题加入补丁包计划。问题单走到Deferred状态。
5)补丁包制作完成后,测试经理组织测试工程师进行统一测试。
6)补丁版本发布后,售后工程师协助客户局点处理该问题,在客户局点安装使用软件产品的补丁版本。确认问题解决后,运维工程师关闭该问题单。
7)编写相关文档,将该故障问题加入案例库。
此次补丁版本V3.26共收编了15个来自现各局点和内部测试发现软件产品缺陷,由于所有收编问题均在BugFree系统中进行问题单提单处理。因此,运维经理在制定V3.26版本的补丁计划时,只需要在BugFree系统中搜索“解决方案”中包含补丁版本版本号V3.26与处于Deferred状态的问题单,大大提高了补丁计划的制定效率。
另外,BugFree系统中的典型案例作为所有项目组成员,尤其是新员工学习软件产品维护的学习材料,很大程度上提高了故障问题的解决效率。
软件系统维护作为软件工程的最后一个阶段,在软件的生命周期中占有非常重要的一席之地。长期的工作实践表明BugFree系统在软件的维护工作中能够很好管理日常维护工作,通过问题单的跟踪每个故障问题的处理过程,随时了解问题单的处理进度,提高了应用软件维护组的工作效率。从而更好为客户服务,延长维护阶段软件产品的使用寿命。
[1]Shari Lawrence Pfleeger,Joanne Atlee M.软件工程[M].4版.杨卫东,译.北京:人民邮电出版社,2010.
[2]Penny Grubb,Armstrong A Takang,软件维护:概念与实践[M].2版.韩柯,孟海军,译,北京:电子工业出版社,2004.
[3]Rajesh Shah,Oracle on demand best practices:critical patch
The application of BugFree in the management of the software maintenance
JIANG Wen,LIU Li-kang
(School of Telecommunication Engineering,Xidian University,Xi’an 710071,China)
After the delivery of the software,the useful technical assistance is needed to be supported by the group of software maintenance.Internal technical management is very important in the group of software maintenance,it is contribute to improve work efficient.The group of software maintenance chooses BugFree to manage the daily maintenance work,with the maintenance work practice,introduced the defect management tool BugFree,described the process of problem Report disposed and different kinds of states of problem Report.At last,two typical maintenance work cases are introduced,including the defects of non source code defect and source code defect.Long work practice shows BugFree can effectively manage the maintenance software,improve the quality of maintenance.
software maintenance;BugFree;problem report;operation and maintenance engineer
TP311.53
A
1674-6236(2016)23-0015-04
2016-01-30稿件编号:201601291
国家部委基础科研计划(A1120110007)
姜 文(1986—),女,陕西西安人,硕士研究生,工程师。研究方向:图像处理与分析,数据库应用和软件工程。