bug追踪系统设计与实现解析.docx
《bug追踪系统设计与实现解析.docx》由会员分享,可在线阅读,更多相关《bug追踪系统设计与实现解析.docx(36页珍藏版)》请在冰豆网上搜索。
bug追踪系统设计与实现解析
摘要
随着社会的快速发展,计算机应用逐渐深入到了人们的生活和工作中,逐渐地人们已经离不开计算机,伴随着计算机的快速发展,软件测试成为了计算机软件行业发展的重中之重。
现在计算机软件已经深入到了社会的各个层次,还全面渗透到各行各业。
现在所有的职业都需要拥有计算机操作技能,并且有些公司需要员工熟练掌握一定的软件应用(Excel,Powerpoint等),随着计算机技术的飞速发展,计算机成为了除人力以外的另外一种生产力,将社会发展成了信息化社会,推动了人类社会的发展。
软件Bug追踪系统主要是在Myeclipse上用JSP编写的。
用了SQLServer2000作为后台数据的管理,本文主要介绍怎么利用JSP和框架来开发软件Bug追踪系统的设计方法。
软件Bug追踪系统主要实现了登录首页管理、项目信息管理、用户信息管理、修改项目BUG、用户个人信息管理、帮助信息等.统计缺陷率,修复率,缺陷原因发生率来反映程序员在哪方面的能力还欠缺,从而指导进行哪些方面的培训工作,进一步提高整个项目组的软件开发能力。
关键词:
软件;bug;管理系统;计算机;JSP
Abstract
Withtherapiddevelopmentofsociety,computerapplicationgraduallydeepintothepeople'slifeandwork,peoplehavegraduallyleavethecomputer,alongwiththerapiddevelopmentofcomputer,softwaretestinghasbecomethecomputersoftwareindustrydevelopmentthetoppriority.
Nowcomputersoftwarereachesdeepintothesocietyatalllevels,haspenetratedintoallwalksoflife.Nowallprofessionalneedstohavecomputerskills,andsomecompaniesrequireemployeesmastercertainsoftwareapplications(Excel,Powerpoint,etc.),withtherapiddevelopmentofcomputertechnology,computerhasbecometheanotherproductivity,otherthanthehumanwillintotheinformationsociety,socialdevelopmentpromotedthedevelopmentofhumansociety.
SoftwareBugtrackingsystemismainlywritteninJSPonMyeclipse.WithSQLServer2000asbackgrounddatamanagement,thispapermainlyintroduceshowtouseJSPandframeworktodevelopthesoftwaredesignmethodofaBugtrackingsystem.SoftwareBugtrackingsystemmainlyrealizetheloginpageinformationmanagement,userinformationmanagement,projectmanagement,Bugmodificationproject,theuserpersonalinformationmanagement,andhelpinformation.Statisticaldefectrate,repairrate,incidenceofdefectsreasonstoreflectwhereprogrammersabilitystilllack,soastoguideonwhataspectsofthetrainingwork,improvethewholeteamofsoftwaredevelopmentcapabilities.
Keywords:
software;Bug;Managementsystem;Thecomputer;TheJSP
1.绪论
随着时代的发展,信息的作用和能力大幅度提高,传递速度也加快,软件规模急剧增大,软件设计的复杂程度不断提高,项目团队的日益扩大及人工管理的不足,迫切地需要有相应的辅助工具来支持,以提高开发的效率和改善软件的质量。
因此,软件Bug管理系统应运而生,它的主要作用就是为了提高软件产品的可靠程度和质量,让软件在运行过程中不出现不可拯救的Error,在软件测试过程中,软件Bug追踪系统起了很重要的作用,为软件开发部门提供了一个管理软件Bug的应用管理工具。
本文主要叙述了该软件的功能介绍和实现,它主要能够实现登录首页管理、项目信息管理、用户信息管理、修改项目BUG、用户个人信息管理、统计缺陷率、修复率、系统公告等。
本设计主要是为了软件测试过程中软件bug管理方便而设计的,主要是为了提高软件开发过程中测试和修改软件错误的管理效率。
它包括了系统可行性研究,系统模块设计,模块的具体流程设计,一些需要进一步讨论或者研究的问题,需要的资料与硬件,数据表的定义等。
1.1系统及需求分析
1.1.1系统需求
目前,随着要开发的软件规模越来越大,软件质量受到极大的关注。
大多数中型软件公司的开发过程都遵循CMM标准,来保证软件过程的质量。
但紧紧通过保证软件过程的质量来保证最终产品的质量,这还是不够的。
为了保证所提交的软件产品能够满足客户的需求,以及在使用中的可靠性,就必须对所开发的软件产品进行系统而全面的测试。
遵循CMM标准开发的测试过程CASE测试过程中缺陷管理工具不少,但是对缺陷的状态跟踪和缺陷处理流程支持力度还不够强大,并且分布异地测试支持,统计分析功能以及与具体企业开发流程相结合的bug处理流程都相对欠缺。
在大规模的软件测试过程中,测试进度状态以及缺陷的处理规范程度都成为首要问题。
基于此需求,本课题通过对软件开发过程中软件测试过程进行研究,分析设计一个中小规模软件测试过程bug管理工具,来帮助测试人员,程序员和项目管理人员跟踪当前缺陷处理状态,对缺陷的处理过程进行规范化,以及相应的统计分析功能,分布异地测试支持。
统计缺陷率,修复率,缺陷原因发生率来反映程序员在哪方面的能力还欠缺,从而指导进行哪些方面的培训工作,进一步提高整个项目组的软件开发能力。
1.1.2可行性分析
由于本系统管理的对象单一,都是软件测试过程bug管理人员,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。
因此,比较适合于采用数据库管理。
且各软件测试过程bug管理部门用于管理的微机都是酷睿以上的机器,在存储量、速度方面都能满足数据库运行的要求。
在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,因此完全可以实现。
软件测试过程bug管理中总是面对大量的信息如用户个人信息,软件信息等。
因此需要信息进行及时管理,及时了解各个环节中信息的变更,力求提高管理效率。
本系统力求使系统功能简洁明了,但功能齐全且易于操作。
系统具有效率高、成本低、质量高、功能强等特点,建立一个软件测试过程bug管理系统的数据库比较容易,经济费用开支不大。
1.2系统功能简介
本系统的主要任务是设计开发一个基于J2EE平台的软件Bug管理系统。
其主要内容包括:
掌握基于WEB开发所需的各项技术,包括HTML、动态网站编程技术JSP、数据库SQLSERVER2000知识、struts等。
主要实现企业软件bug管理信息的增加、删除、修改等操作,以及相应的统计分析功能,分布异地测试支持。
统计缺陷率,修复率,缺陷原因发生率来反映程序员在哪方面的能力还欠缺,从而指导进行哪些方面的培训工作,进一步提高整个项目组的软件开发能力。
界面力求美观漂亮,操作友好、稳定。
系统建设目标的技术可行性
开发语言:
JSPJava
系统软件:
Windows7
数据库:
SQLSever2000
从整个系统的功能上看,系统主要是实现了软件数据对存在数据库进行添加、删除、查找、编辑等,系统实现的很简单,所以系统不会存在很大的数据应用问题。
从系统的管理角度,系统分为了三个角色分别是管理员(admin),开发人员和测试人员,管理员可以进行公告发布、人员管理、软件开发分配和bug处理信息的查询。
开发人员可以进行软件Bug的更改和信息管理,测试人员进行软件Bug提交和信息更改。
1.2.1系统用户管理模块
系统用户管理模块主要是用户的添加、删除、设置用户的状态(用户权限)和管理密码修改。
1.2.2系统公告管理模块
系统公告管理模块的主要功能是实现公告的发布、修改、删除等操作。
1.2.3软件信息管理模块
软件信息管理模块的主要功能:
1.2.3.1信息管理
1.2.3.2发布软件信息
1.2.3.3查询软件信息
1.2.4用户信息管理模块
用户信息管理模块的主要功能是实现对注册用户信息的管理工作
1.2.5Bug信息管理模块
主要实现了Bug信息管理和修复统计
1.3系统开发的目标
主要目标是为了缩减在软件开发中浪费的时间,调高开发软件的效率,方便软件公司对软件的错误查看以及开发人员更改错误代码。
2.系统分析
本系统采用Jsp、Java技术开发,数据库采用微软公司的sqlserver2000,搭配了Struts1.0框架。
2.1JSP和JAVA运行环境
2.1.1相关软件介绍
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。
JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。
用JSP开发的Web应用是跨平台的,即能在Linux下运行,也能在其他操作系统上运行。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
2.1.2JSP环境的配置方案
在做本系统时,本人使用的是J2SDK+Tomcat的配置,因为对于初学者,这是一个比较容易实现的方案。
具体步骤如下:
[1]安装J2SDK
第一步:
执行j2sdk-1_4_2_03-windows-i586-p.exe,按照向导安装到想要安装的目录,如D:
\J2SDK1.4.2。
第二步:
设定J2SDK1.4.2_03
从【开始】→【设置】→【控制面板】→【系统】→【高级】→【环境变量】→【系统变量】,然后到【新建】。
JAVA_HOME=C:
\j2sdk1.4.2_03
PATH=%JAVA_HOME%\bin
CLASSPATH=C:
\j2sdk1.4.2_03\lib\tools.jar;C:
\j2sdk1.4.2_03\
lib\dt.jar;
注意
1.CLASSPATH的设定中,分号(;)用来分开两路径,切勿任意空格;
2.CLASSPATH的设定中,分号的最后还有一个点“.”。
补充
不论Windows2000或WindowsXP皆可依上述方法设定。
第三步:
测试J2SDK。
撰写一个HelloWorld.java程序,放置在C:
\HelloWorld.java中。
HelloWorld.java
publicclassHelloWorld{
publicstaticvoidmain(String[]args){
System.out.println("HelloWorld");
}
}
打开命令提示符,在D:
\下输入javacHelloWorld.java,然后再输入javaHelloWorld,执行HelloWorld程序,假若顺利成功,则会显示“HelloWorld”。
成功安装J2SDK1.4.2_03之后,紧接下来安装Tomcat5.0.16。
[2]安装Tomcat5.0.16
本网站使用的Tomcat版本为5.0.16,它是由JavaSoft和Apache开发团队共同提出合作计划(ApacheJakartaProject)下的产品。
Tomcat能支持Servlet2.4和JSP2.0并且是免费使用。
第一步:
执行jakarta-tomcat-5.0.16.exe,按照向导将Tomcat装到想要安装的目录,如:
D:
\Tomcat5.0。
第二步:
配置Tomcat的环境变量,仍然是在系统环境变量中设置
Tomcat_Home=D:
\Tomcat5.0
Classpath=D:
\Tomcat\webapps\ROOT\WEB-INF\classes
第五步:
测试Tomcat。
打开浏览器,如IE,输入http:
//localhost:
8080,假若Tomcat安装成功,则会看到Tomcat的欢迎界面。
2.2业务流程分析
实体间关系E-R图如下:
管理员实体图:
软件实体图:
用户信息实体图:
功能模块图如下:
修改数据:
管理员对软件信息进行修改
删除数据:
管理员对某些软件信息进行删除
查看信息:
管理员查看软件的基本情况
添加数据:
管理员在数据库中添加软件的信息
查看信息:
查看自己或者其他用户的信息
查询信息:
根据具体情况查询所需要的信息
3系统设计
3.1简要分析
3.1.1系统架构
本系统采用B/S(Browser/Server)结构,前台部分采用SUN公司的JSP结合Java程序设计语言,应用Eclipse作为开发工具,后台数据库服务器选用Sqlserver2000数据库。
数据访问方式使用JDBC接口访问数据库。
1.B/S简介
B/S(Browser/Server)结构即浏览器和服务器结构。
它是随着Internet技术的兴起发展起来的软件结构。
在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓的B/S结构。
2.B/S结构
B/S结构:
(Browser/Server,浏览器/服务器模式):
是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
3.B/S结构使用
客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Sqlserver2000、Sybase、Informix或mysql等数据库。
浏览器通过WebServer同数据库进行数据交互。
B/S结构的使用越来越多,特别是由需求推动了AJAX技术的发展,它的程序也能在客户端电脑上进行部分处理,从而大大的减轻了服务器的负担;并增加了交互性,能进行局部实时刷新。
4.B/S结构的优点
B/S结构最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。
只要有一台能上网的电脑就能使用,客户端零维护。
系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。
甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
5.B/S架构软件的优势与劣势
维护和升级方式简单。
目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。
对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。
无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。
所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。
今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。
因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。
成本降低,选择更多。
大家都知道Windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上Windows并不是处于绝对的统治地位。
现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。
所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用Windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。
比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用Windows操作系统,但用户的电脑本身安装的大部分是Windows操作系统。
应用服务器运行数据负荷较重。
由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。
但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。
因此,许多单位都备有数据库存储服务器,以防万一。
系统框架视图如下图3-1所示。
图3-1系统框架图
3.1.2软件结构设计
本系统在执行时,先根据不同的操作人员的需要来进行相应的模块,然后可以输入数据或者进行其它的查询或浏览等操作;总体来说,本系统属于一个事务型管理系统。
系统功能图
通过对系统的调研与分析,系统主要应完成的功能有:
软件信息管理、用户信息管理、系统信息管理、数据信息查询打印等功能。
系统功能如图3-2所示。
图3-2系统功能图
3.2数据库设计
3.2.1sqlserver2000数据库简介
数据库采用了Microsoft推出的SQLSever2000数据库,这是微软的一个桌面数据库,能够快速方便的和Microsoft的其他套件综合使用。
由于SQLSever2000具有显著的简易性和有效性,大量的桌面数据库系统都采用SQLSever2000作为后台数据库。
使用SQLSever2000的好处还在于,如果你的系统扩展到Client/Server模式的时候,可以使用Microsoft的数据库服务器软件ODBC,此时,程序只需要简单的修改一下链接(ODBC的数据源)就可以,这样,为程序的平滑扩展提供了非常有力的条件。
3.2.2主要表的物理结构
管理员表:
ID登陆名登陆密码
表:
软件详细信息表
用户信息表:
4.系统的实现
4.1系统登陆界面
本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码保存在admin表中,本系统根据不同的用户而设置了不同的权限,可以用用户名和密码来登陆本系统。
4.2系统主界面
本模块是本系统的应用界面,在本界面上集成了本系统的所有功能,共有8个功能菜单,从而实现了本系统从软件管理、用户管理、系统管理、查询、信息统计等系统的具体功能,同时,在系统管理模块中可以完成对本系统的安全性管理。
4.3用户管理模块
本模块是本系统的用户信息模块,实现对系统用户信息的增加、删除、修改、查询功能。
4.4软件管理模块
本模块实现软件信息管理,包括增加软件信息管,修改软件信息管,删除软件信息管等操作功能。
4.5bug信息管理模块
实现软件bug信息管理功能
4.6信息查询模块
综合查询各类信息。
可以模糊查询。
5、程序调试
5.1程序调试分析
在设计系统的过程中,存在一些错误是必然的。
对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。
但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。
这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。
5.2程序的测试
5.2.1测试的重要性及目的
1.测试的重要性
1.1软件质量引发的悲剧
1982年,软件BUG导致横跨西伯利亚的输气管爆炸,是最大的一次非核子爆炸。
1985年至1987年,放射线治疗仪Therac-25的操作系统BUG,导致至少5位病人丧命,
1990年1月15日,AT&T#4ESS长途电话交换器的软件bug。
使纽约6万人在9个小时内,无法拨通长途电话。
1996年6月4日,Ariane5火箭的飞行计算机中的软件BUG。
使其升空40秒后爆炸。
2000年11月,巴拿马国家癌症中心的放射线医疗仪的软件出现BUG,导致8位病人因此死亡,医生被控谋杀。
1.2软件测试的重要性
在软件业较发达的国家。
软件测试不仅成为软件开发的一个有机组成部分,而且在软件开发的系统工程中占据着相当大的比重。
以美国的软件开发和生产的平均资金投入为例,通常是:
“需求分析”和“规划确定”各占百分之三,“设计”占百分之五,设计占百分之五,编程占百分之七,测试占百分之十五,投产和维护占百分之六七十。
测试在。
软件开发中的地位不言而喻。
软件测试对于整个开发软件过程是相当重要的,因为如果一个软件不过关可能会导致很验证的后果。
所以软件测试一般分为以下几个步骤:
(1)测试需求分析阶段
(2)测试计划阶段
(3)测试方案设计阶段
(4)测试用例实现阶段
(5)测试执行阶段
(6)评估与关闭阶段
2.测试的目的
基于不同的立场,存在着两种完全不同的测试目的。
从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。
而从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求,确立人们对软件质量的信心。
因此,他们会选择那些导致程序失效概率小的测试用例,回避那些易于暴露程序错误的测试用例。
同时,也不会着意去检测、排除程序中可能包含的副作用。
显然,这样的测试对完善和提高软件质量毫无价值