【Jsp精品源码栏目提醒】:网学会员,鉴于大家对Jsp精品源码十分关注,论文会员在此为大家搜集整理了“软件Bug跟踪管理系统【毕业论文,绝对精品】 - 毕业设计”一文,供大家参考学习!
摘要 软件中的缺陷(Defect 或 Bug)是软件开发过程中的quot副产品quot。
通常,缺陷会导致软件产品在某种程度上不能满足用户的需要或在使用过程中出现突发的异常。
在软件开发过程中如何合理,有效的进行 BUG 的跟踪管理是每个软件开发公司开发过程中必须考虑的问题。
本文介绍了本项目开发的背景和意义,及项目开发的设计过程与实现过程。
本项目开发采用 B/S 架构模式使用 MVC 的开发模式,采用 jspservletspringhibernate 技术实现,使用 mysql 数据库进行数据的存储。
该系统具有一定的实用价值,但性能和功能方面有待改善。
关键词 缺陷;项目开发;项目设计;B/S;MVC;My
sql。
Abstract Software defects Defect or bug is a quotbyproductquot of the softwaredevelopment process. Typically defects in software products can not meet the needsof users in a way or occur a sudden abnormal during use. How to effective track andmanage the BUG must be considered in the development process of every softwaredevelopment company. This article describes the background and significance of theproject development and design process of project development and implementationprocess. This project developed using the B / S structure mode using the MVCdevelopment model using
jsp servlet spring hibernate technology using the
mysql database for data storage. The system has some practical value but theperformance and functionality needs to be improved.Key Word Defects project development project design the B/S the MVCMysql 1 引言1.1 选题背景 随着社会的蓬勃发展,软件行业的激烈竞争也日益明显,人们对软件的质量要求也越来越严格。
软件测试作为保证软件质量的一种手段,也日益被软件开发商所重视,软件测试也是软件开发过程中不可缺少的组成部分,而软件测试过程中的 bug 管理是
软件测试的重要工作,是重中之中。
为了保证 Bug 能够得到及时的发现和解决在解决 bug 的过程细节能够得到完整的记录和存档并随时了解当前项目中的 bug 的处理状况和整体情况。
因此,对 bug 进行跟踪管理,确保每个被发现的缺陷都能够及时得到处理是测试工作的一项重要内容。
在软件开发与维护过程中,有效地进行质量控制与保证工作尤为重要。
正因如此,软件缺陷跟踪与管理在现代软件过程中成为实施质量控制与保证的重要方面。
软件中的缺陷是软件开发过程中的quot副产品quot。
通常,缺陷会导致软件产品在某种程度上不能满足用户的需要。
Bug 跟踪管理系统用于帮助公司和团队跟踪
工作中的问题,管理和记录这些问题的处理过程,并为用户提供事务分配的平台。
1.2 系统的意义 Bug 跟踪管理系统对于一个团队的 Bug 管理非常有效,可以确保每个出现的问题都可以得到记录和跟踪,为团队提供有效的交互平台,提高团队效率和增强团队工作氛围。
总之,BUG 管理系统旨在提供一套系统建立测试人员,开发人员与管理人员之间的一种桥梁,以有效的提高软件的管理与沟通效率。
1.3 系统的基本功能 管理员: 帐号管理:包括添加帐号,删除,更新帐号基本信息。
项目管理:包括添加项目,分配人员,发布项目,关闭项目,及更新项目 信息。
(不需要删除) 项目经理: 项目经理登录后系统列出该项目经理所有的项目,其选择某 个项目后可以执行:待分配的 BUG,BUG 统计,无法解决的 BUG 开发人员: 开发人员登录后显示所有最新未解决的 BUG,开发人员可以 选择其中的 BUG 执行”反溃”操作。
测试人员: 测试人员登录后可以看到所有属于他发起的 BUG,并可选择 其中的 BUG 执行回归测试等操作。
测试人员同时可以执行“添加 BUG”来产生一个新的 BUG 2 相关技术简介 2.1 Servlet 技术介绍 Java Servlet 是
JSP 技术的基础,
JSP 本身就是预先被编译成 Servlet,然后再运行的,而且大型的 Web 应用程序的开发需要 Java Servlet 和
JSP 配合才能完成,Servlet 这个名称大概源于 Applet,现在国内的翻译方式很多,本文为了避免误会,本文直接采用 Servlet 这个名称而不做任何翻译,读者如果愿意,可以称之为“小服务程序”。
Servlet 其实和传统的 CGI 程序和 ISAPI、NSAPI等 Web 程序开发工具的作用是相同的,在使用 Java Servlet 以后,用户不必再使用效率低下的 CGI 方式,也不必使用只能在某个固定 Web 服务器平台运行的API 方式来动态生成 Web 页面。
许多 Web 服务器都支持 Servlet,即使不直接支持 Servlet 的 Web 服务器也可以通过附加的应用服务器和模块来支持 Servlet。
得益于 Java 的跨平台的特性,Servlet 也是平台无关的,实际上,只要符合 JavaServlet 规范,Servlet 是完全平台无关且是 Web 服务器无关的。
由于 JavaServlet 内部是以线程方式提供服务,不必对于每个请求都启动一个进程,并且利用多线程机制可以同时为多个请求服务,因此 Java Servlet 效率非常高。
但
Java Servlet 也不是没有缺点,和传统的 CGI、ISAPI、NSAPI 方式相同,JavaServlet 是利用输出
HTML 语句来实现动态网页的,如果用 Java Servlet 来开发整个网站,动态部分和静态页面的整合过程简直就是一场噩梦。
这就是为什么SUN 还要推出 Java Server Pages 的原因。
2.2 Hibernate 技术介绍 Hibernate 是一个开放
源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端
程序使用,也可以在 Servlet/
JSP 的 Web 应用中使用,完成数据持久化的重任。
Hibernate 的核心接口一共有 6 个,分别为:Session、SessionFactory、Transaction、Query、Criteria 和 Configuration。
这 6 个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
Session 接口 Session 接口负责执行被持久化对象的 CRUD 操作CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。
。
但需要注意的是Session 对象是非线程安全的。
同时,Hibernate 的 session 不同于
JSP 应用中的 HttpSession。
这里当使用 session 这个术语时,其实指的是 Hibernate 中的session,而以后会将 HttpSession 对象称为用户 session。
SessionFactory 接口负责初始化 Hibernate。
它充当数据存储源的代理,并负责创建 Session 对象。
这里用到了工厂模式。
需要注意的是 SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个 SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个 SessionFactory。
Configuration 类 Configuration 类负责配置并启动 Hibernate,创建SessionFactory 对象。
在 Hibernate 的启动的过程中,Configuration 类的实例首先定位映射
文档位置、读取配置,然后创建 SessionFactory 对象。
Transaction 接口负责事务相关的操作。
它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
Query 和 Criteria 接口负责执行各种数据库查询。
它可以使用 HQL 语言或SQL 语句两种表达方式。
之前在没有使用 Hibernate 以前使用纯 jdbc 来操作数据库,完成相同的操作,jdbc 的代码量非常多,而 hibernate 几行代码就解决了。
比如我们要保证一个对象使用 jdbc 操作时我们要写一句 insert into …这样的 SQL 语句,而使用 hibernate 我们只要调用 session 的 save 等方法。
我们还可以使用 hibernate 的事务控制接口,手动开启和关闭事务,这样我们可以掌握事务的流程,保证数据有效和完整。
Hibernate 还有其它方面的功能,它是个非常好用的框架。
但它的
学习难度比较大,学习过程中很多细节要考虑。
2.3 Spring 技术介绍 Spring 是一个开源框架,它由 Rod Johnson 创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring 使用基本的 JavaBean 来完成以前只可能由 EJB完成的事情。
然而,Spring 的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。
Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
Spring 通过一种称作控制反转(IoC)的技术促进了松耦合。
当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
是容器在对象初始化时不等对象请求就主动将依赖传递给它。
Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。
这次 BUG跟踪管理系统中使用 IoC 比较多,在我们平时开发过程,在哪块代码在要用到某个对象时我们会直接 new 出一个对象然后操作这个对象,这样子做的话代码的耦合很强。
如果使用了 Spring 管理这个对象,我们可以使用注解注入和构造注入等方式注入这个对象。
这样耦合度降低了。
Spring 还提供了注解事务,省去了 hibernate 手动开启和关闭事务,使程序更加简洁。
降低了事务控制难度。
配合
jsp servlet 完成了 BUG 跟踪
管理系统,
jsp 主要作视图层,做数据展示, ,在 DAO 层使用servlet 作控制层,控制程序流程(使用 spring 注入 dao 对象)Hibernate 提供的功能完成数据库访问。
2.4 MVC 简介 模型-视图-控制器(MVC)是 80 年代 Smalltalk-80 出现的一种软件设计模式,现在已经被广泛的使用,其模型如图 1 所示:1、模型Model: 模型是应用程序的主体部分。
模型表示业务数据,或者业务逻辑.2、视图View: 视图是应用程序中用户界面相关的部分,是用户看到并与之交互的界面。
3、控制器controller: 控制器工作就是根据用户的输入,控制用户界面数据显示和更新 model 对象状态。
3 系统
设计3.1 系统可行性研究3.1.1 经济可行性 经济可行性研究是对组织的经济现状和投资能力进行分析,对系统建设运行和维护费用进行估算,对系统建成后可能取得的社会和
经济效益进行估计。
由于BUG 跟踪管理系统是作为
毕业设计由我们学生自己开发的,在经济上的投入比较少,系统开发所有的技术及框架都是开源的,主要是时间投入比较大。
因此在经济上是可行的。
3.1.2 技术可行性 技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。
BUG 跟踪管理系统采用 MyEclipse 开发工具,调试相对简单,当前的
计算机硬件配置也完全能满足开发的需求,因此在硬件上是绝对可行的。
软件方面:由于目前 B/S 模式相对发展成熟,java EE 开发平台已是现在的主流。
系统采用的 Spring 和 Hibernate 都是开源
免费框架,极大的简化了应用的开发难度,加上 jspservlet 等技术完全可满足 bug 跟踪管理
系统开发需求。
3.2 需求分析3.2.1 系统简介 BUG 是指在软件测试领域中,描述软件缺陷或问题的实体。
BUG 管理系统至在提供一套系统建立测试人员,开发人员与管理人员 之前的一种桥梁,以有效的提高软件的管理与沟通效率。
3.2.2 系统角色及主要职能 系统管理员: 系统帐号管理,项目管理,分配相关人员。
项目经理: BUG
查询及分配,统计 BUG,汇总报表等 开发人员: 主要是解决分配给他的 BUG,更新 BUG 状态。
测试人员: 提交新的 BUG,及对开发人员修改的 BUG 进行回归测试。
3.2.3 关键业务实体说明 a系统帐户表: 帐号,密码,姓名,角色(管理员,测试人员,开发人员),账号状态,人员状态。
b项目:即一个具体的软件项目 项目信息主要由基本信息,人员信息,及相关
文档三部分组成: 基本信息主要包括:编号,名称,描述,项目经理管理员指定,帐户表外键,开发单位,发布单位,开始日期发布时间,结束日期关闭时间,状态3 种,项目附件 1,项目附件 2 项目附件 3 项目人员信息主要包括:编号,系统帐号(外键),项目编号 项目的状态主要有 新建:刚建立尝未发布的项目,除管理员外其他人不可见。
已发布:项目已经发布,正在进行 BUG 跟踪。
管理员执行发布操作之后,项目相关人员可见。
已关闭:已关闭的项目不能做任何的修改,包括添加 BUG 等。
关闭后不能再进行 BUG 处理 BUG:用于描述软件系统的缺陷 BUG 的主要信息主要由基本信息,相关文件及 BUG 跟踪记录组成: 基本信息包括:编号,
问题简述,问题详细描述,测试过程描述,建立人测试人员帐号,建立时间自动,解决人被指派开发人员帐号,由项目经理指派,用户帐户,分配时间指派时间,关闭时间测试人员关闭或项目经理异常关闭时的时间,计划修正日期指派时指定,严重级别严重,一般,可选,状态如下。
相关文件:测试人员添加的一些例如截屏,附件数据等。
一个 BUG 可能会有多个相关文件,主要包括:文件编号,文件路径,对应的 BUG外键 BUG 跟踪记录:该数据与 BUG 是多对一的关系,即一个 BUG 可能有多个跟踪记录,例如:项目经理分在分配时会填写分配记录,开发人员修正后会填写修改记录,测试人员回归测试时会填写测试记录,如此反复。
它包括:编号,BUG 编号,填写人,填写时间,内容,附件 1,附件 2,附件 3(即充许最多可以挂三个附件) BUG 的状态主要有: 未发布:BUG 由测试人员建立后最初的状态。
已发布:测试人员已将 BUG 提交,提交后项目经理可见,可分配 已分配:项目经理指派给具体的人员之后,测试人员回归测试不通过并且回复之后,是等待开发人员反馈的状态。
正常关闭:测试人员测试通过后,回复之后 无法解决:开发人员无法修正 BUG,回复之后,等待项目经理再次分配的 异常关闭:项目经理关闭无法解决的 BUG,并且添加回复后。
等待测试:开发人员修正 bug,回复之后,是等待测试人员回归测试的状态。
为了可以完成信息的通知,所以需要有张信息记录表 信息表主要包括编号,标题,信息内容,发送者,接受者,发送时间,状态(0 已读 1 未读),在这里发送者和接受者必须在同一个项目中,才能互相发信息。
发送时间取发送成功的时间。
3.3 功能模块设计 通过需求分析,我们要明确系统具体要有什么样的功能去满足用户。
换句话说,就是已经明确了系统要做什么。
经过分析后,系统的功能图设计如下:3.4 系统功能详细设计 BUG 跟踪管理系统一共分为四个角色,每个角色登录到系统都会有不同的功能操作界面,每个角色能操作的功能也不同很好的做到了权限控制。
3.4.1 管理员功能模块 模块介绍:管理员可以现新建一个项目,在新建项目时为这个项目分配项目经理,开发人员及测试人员,新建项目后可以查看并提交项目。
对已提交的项目如果需要关闭可以关闭项目,对已关闭的项目同样可以开启。
管理员还可以进行帐号管理,如添加帐号,更新帐号密码,注销帐号等。
3.4.2 测试人员功能模块 模块介绍:测试人员登录系统后可为自己所负责的项目上做测试,发现 BUG后新建 BUG提交 BUG(系统自动做记录),对开发人员反馈的 BUG 进行回归测试,不成功就退回给开发人员并做记录,回归测试成功就正常关闭 BUG 并做记录。
对于关闭的 BUG 可查看其跟踪记录(只能查看自己有涉及的项目 BUG 跟踪记录)。
对跟踪记录信息还可以导出到 Excel 表格中。
3.4.3 项目经理功能模块 模块介绍:项目经理登录系统后可以选择查看他自己负责的项目下已提交的BUG,分配 BUG 给这个项目下的开发人员并做记录。
对开发人员反馈过来的无法解决 BUG 对其进行重新分配并做记录或非正常关闭 BUG 并做记录。
查看他自己负责的项目下已关闭了的 BUG 的跟踪记录,并可导出到 Excel 表格。
3.4.4 开发人员功能模块 模块介绍:开发人员登录系统后,查看待解决的 BUG,如果 BUG 解决了,点击已修正反馈给测试人员并做记录,如果不能解决点击无法解决反馈给项目经理并做记录,由项目经理决定是否重新分配给其他开发人员还是非正常关闭 BUG。
查看他自己涉及的 BUG 的跟踪记录,并可导出到 Excel 表格。
4 数据库设计4.1 数据关系模型:用户用户账户,密码,姓名,角色项目项目编号,名称,项目描述,项目经理帐号,开发单位,发布单位,发布 时间,关闭时间,状态,项目附件 1,项目附件 2,项目附件 3项目人员信息编号,用户帐号,项目编号BUG 信息编号,问题简述,问题详细描述,测试过程描述,建立人,建立时间, 解决人,分配时间,关闭时间,计划修正日期,严重级别,状态BUG 跟踪记录编号,BUG 编号,填写人,填写时间,内容,附件 1,附件 2,附 件 3BUG 文件记录编号,文件名,bug 编号4.2 数据字典 用户表 主键/ 长度 允许空 字段名称 含义 数据类型 外键 useraccount 用户帐号 主键 varchar 20 否 pass
word 密码 varchar 80 是 userName 用户名 varchar 10 是 role 角色 int 2 是 项目表 主键/外 长度 允许空 字段名称 含义 数据类型 键 projectId 项目编号 主键 int 11 否 projectName 名称 varchar 20 是projecDescription 项目描述 varchar 100 是 项目经理 20 是 projectManager 帐号 varchardevelopmentUnit 开发单位 40 是 varchar 40 是 publishUnit 发布单位 varchar publishTime 发布时间 datetime 0 是 closeTime 关闭时间 datetime 0 是 state 状态 int 11 是 项目附件 100 是 accessory1 1 varchar 项目附件 100 是 Accessory2 2 varchar 项目附件 100 是 Accessory3 3 varchar 项目人员信息表 主键/ 长度 允许空 字段名称 含义 数据类型 外键 id 编号 主键 int 11 否 userAccount 用户帐号 varchar 20 是 projectId 项目编号 int 11 是 BUG 信息表 主键/外 长度 允许空 字段名称 含义 数据类型 键 bugId 编号 主键 int 11 否problemDescription 问题简述 .