随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要。每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非所有的软件组织都知道如何有效地管理自己软件中的缺陷。在软件缺陷管理(Software Defect Management)中,软件缺陷的分类和管理非常重要,因此软件缺陷管理工具的开发和使用将在现代软件开发中发挥重要作用。本系列文章将使用UML2.0对Bug管理系统进行全程建模,该系统名为缺陷管理系统(Bug Management System, BMS),并按照软件工程的标准,提供一套完整的解决方案。
1.1 需求分析
一个完备的bug管理流程通常包括如下几个步骤,如图1-1所示:
图1-1 bug管理流程图
图1-1是bug管理的最基本流程,而实际的bug管理要更加复杂,不同的步骤由不同的角色负责,如提交bug、验证修改后的软件是测试人员的工作,分析和定位bug以及修改相应的软件是分析设计人员以及开发人员的工作,在整个过程中项目经理还需要对bug信息进行统计和监控。在BMS的需求分析过程中,我们发现bug管理流程的某些步骤可以通过一个bug管理系统来完成,一方面可以提高bug的处理速度,另一方面便于对bug信息的跟踪与统计。通过对bug管理流程和实际使用过程的需求分析,BMS系统基本需求如下:
(1) 系统预设管理员帐号为Admin,初始密码为Admin。BMS系统管理员在登录系统后可修改密码,系统管理员的主要工作包括增加相关人员初始信息,包括帐号、初始密码和项目角色,项目角色包括测试人员、开发组长、开发人员和项目经理;另外,系统管理员还可以删除人员信息。
(2) 其他用户在登录后方可使用该系统,除了帐号和项目角色外用户可以修改各项个人信息,包括真实姓名、联系电话和电子邮箱等。
(3) 测试人员可以利用BMS提交自己发现的bug信息,提交的信息包括bug类型、bug严重程度、bug发生的位置(如所处功能模块、测试界面的URL或名称等)、测试环境描述、使用的测试工具和版本信息、测试用例信息(包括测试数据、期望结果和实际结果等信息)、附加描述信息、附件(屏幕截图或录像等)等。测试人员将尽量填写完整这些信息以便最大程度帮助开发人员重现bug以便调试,在系统数据库中需要记录bug的状态。
(4) 测试人员将bug提交给开发组长,开发组长在查看bug信息之后可将bug分发给相关开发人员,系统可以记录开发组长的bug查看和分发情况。
(5) 开发人员可以登录系统查看bug详情,系统可以记录开发人员是否已查看bug详情。在对bug进行修复后,更新bug修复信息(修复内容、修复时间、修复人等),将更新的bug信息发送给测试人员,系统将修改bug的状态,然后通知测试人员以获取最新版本进行验证。
(6) 测试人员如验证无误,可关闭该bug;否则可重新返回开发人员修复。无论验证是否通过,测试人员需更新bug测试信息(测试结果、测试时间、测试人等)。
(7) 项目经理可以随时查看bug统计报告,对bug信息进行分类汇总与实时跟踪。
1.2 开发技术
本系统采用三层B/S结构进行开发,包括客户端浏览器层、Web服务器层和数据库服务器层,系统整体架构如图1-2所示:
图1-2 BMS整体架构
在实际部署和使用过程中,如果数据量较小,可以将Web服务器和数据库服务器合二为一。B/S结构具备部署和升级简单等优点,系统安装、修改和维护全在服务器端解决,用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块;同时B/S结构还提供了一种异种机、异种网联机、联网解决方案,开发团队与测试团队可以基于不同的操作系统平台和网络环境进行协同工作。BMS系统开发技术包括:采用Java EE平台,使用MVC架构,运用JSP + Servlet + JavaBean等技术来实现系统功能,数据库采用MySQL,并使用Navicat 8 for MySQL对MySQL数据库进行可视化管理,服务器中间件使用Tomcat 6.5,开发工具使用MyEclipse 8.0。
2.系统分析
在BMS的系统分析阶段,我们使用了用例图、顺序图、状态图和活动图等UML图形构造系统的分析模型,对系统进行深入的分析,明确系统的开发目标,更好地回答了“做什么”的问题,各种图形相互补充,从不同的角度对系统进行全面的分析。通过使用UML方法,我们构造了系统的分析模型,具体分析工作如下:
2.1 用例模型
在BMS系统中,我们首先使用用户视图即用例图来将系统功能需求图形化,通过找出执行者与用例来明确和细化系统功能。
UML用例建模流程如图2-1所示:
图2-1 UML用例建模流程图
BMS的执行者包括系统管理员、开发组长、开发人员、测试人员和项目经理,每个执行者对应的功能有所差异。系统提供主要功能包括人员信息的管理和bug信息的管理,因此用例主要包括对人员信息和bug信息的增删改查等操作。2.2 BMS用例图
通过对系统进行分析,BMS用例图如图2-2所示:
图2-2 BMS用例图