基于asp.net 软件缺陷跟踪系统的设计与实现

博主介绍:专注于Java .net  php phython  小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作

☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

  • 系统分析

本章讲述了本软件缺陷跟踪系统的前期分析方法和分析结论。

3.1 可靠性分析

在软件研发企业或研发团队中,开发人员和测试人员所应用的软件缺陷管理的主要方法流程是:

1.测试人员发现软件存在的缺陷,填写缺陷报告;

2.开发人员按照缺陷报告修改存在的缺陷,或根据任务需要将缺陷置为拒绝修改或延期状态;

3.缺陷修改完毕后,由测试人员验证是否正确修改,若否,则重复工作流程1至3;

4.确认缺陷修改完毕后,关闭此缺陷报告

综上,软件缺陷跟踪系统是否可靠,在于该系统能否使软件研发团队正常并有序的执行工作任务,并保证系统在被使用或运行过程中,不产生任何由系统本身因素所导致的工作异常和错误。

3.2可行性分析

3.2.1新系统目标可行性分析

本软件缺陷跟踪系统在保证基本缺陷管理功能的基础之上,新增了缺陷统计功能,此功能可使研发团队的中高层人员宏观掌握软件开发过程情况。经调研发现,存在众多软件企业需要此功能来满足其需求。并且,经研究表明具有缺陷统计功能的软件缺陷跟踪系统更能有效的提高研发团队整体的工作效率和行业综合竞争力。

3.2.2技术可行性分析

本系统基于ASP.NET,采用微软最新的Microsoft Visual Studio 2010 Professional作为开发平台,运用最新的.NET Framework 4.0技术、IIS web服务器和SQL Server2008数据库,足以满足系统的所有开发和调试需求,在技术上确保了系统的开发能够顺利并高效的实施。

3.2.3经济可行性分析

软件研发企业或研发团队采用本系统作为缺陷管理系统后,只需分配相应的系统管理人员以针对系统参与人员进行简单的管理即可,此外不需要任何额外开支。

3.2.4安全管理可行性分析

使系统具备完善的账户和权限等安全管理机制,能够使企业的安全负责人和高层管理人员高枕无忧。

3.3系统需求分析

软件缺陷跟踪系统意在为软件研发企业或研发团队提供优质、便利和高效的软件缺陷管理综合解决方案。满足团队中开发、测试乃至管理层人员对软件缺陷管理的功能需求。

3.3.1 系统业务逻辑功能任务流程分析

1.缺陷管理任务流程

图3.1 缺陷管理任务流程图

2.测试项目管理任务流程

图3.2 测试项目管理任务流程图

3.工作计划管理任务流程

图3.3工作计划管理任务流程图

3.3.2系统功能框架

软件缺陷跟踪系统包含业务逻辑和系统管理两大功能分区,业务逻辑分区包含缺陷管理功能、测试项目管理功能、工作计划管理功能三个业务逻辑功能;系统管理分区包含用户管理功能。

图3.4系统功能模块图

3.3.3 系统功能描述

  • 缺陷管理

1.新建Bug

填写Bug标题、缺陷类别、所属项目和版本、测试平台、安全和优先级别、缺陷描述等,并完成后提交至数据库存储,系统自动确认提交人为登录用户。

2.Bug高级检索

在表单中填入缺陷类别、所属项目和版本、安全和优先级别等检索条件进行Bug的组合检索

3.修改Bug状态

可将Bug状态置为新缺陷、待验证、拒绝修改、延期、关闭、重新打开、挂起

4.审阅Bug

具备相应权限(可由系统管理员设定权限)参与者可对已修改的Bug进行审阅将其关闭

  • 测试项目管理

1.添加测试项目

填写项目名称、启动时间和项目描述,提交后存储至数据库

2.修改测试项目

修改项目的描述、启动时间等信息,更新后将修改后的信息存储至数据库

3.删除测试项目

将存在的测试项目删除,并从数据库中清除条目

4.缺陷统计

可按缺陷类别、安全级别、优先级别等方式查看缺陷统计图表

  • 工作计划管理

1.撰写工作计划

从日历控件上选择日期,撰写该日期下的工作计划

2.修改工作计划

从日历控件上选择要修改计划的日期,撰写新的工作计划后保存修改

3.查看工作计划

从日历控件上选择要查看工作计划的日期,若曾撰写过当日的计划,即可显示对应信息

  • 用户管理

1.账户初始化

分配用户账户和密码,并给予相应权限,信息存储至数据库

2.删除用户账户

对已存在的用户进行删除操作,同时从数据库中清除对应条目

3.重置密码

对已存在的用户密码进行重置,并将更新信息存储值数据库

4.用户权限管理

对已存在的用户类别进行权限的受理,包括使用缺陷管理、工作计划、项目管理、用户管理、关闭Bug等权限

5.查看系统日志

查看系统记录的有关登录失败、访问信息等系统日志

  • 系统设计

本章讲述本系统功能的逻辑、层次关系,系统整体架构和系统数据库的具体设计。

4.1系统设计用例

本软件缺陷跟踪系统的参与对象为五个角色,分别是测试工程师、开发工程师、测试部经理、开发部经理和系统管理员,不同角色分配有不同的系统访问权限(权限可修改),默认权限时的系统用例如下:

(1)缺陷管理子系统:测试工程师和开发工程师主要运用该系统的缺陷管理子系统提交和修改Bug报告,Bug报告可由测试部经理审阅后关闭,其用例图如下:

4.1 缺陷管理子系统用例图

运用缺陷管理子系统,首先由测试工程师记录并存储Bug,而后开发工程师根据检索条件检索到相应Bug,修正Bug后(可拒绝修改)可为此Bug重置状态。

1、新建Bug的用例规格说明如下:

4.1 新建Bug的用例规格说明

用例名称

新建Bug

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

存储Bug报告

主事件流

用户填入Bug报告所需信息并提交

系统将被提交的Bug报告存储,将其状态置为“新缺陷”

备选事件流

2a.重复提交

   1.系统提示此Bug曾经已被提交

非功能性需求

存储及重复检测机制完善可靠

2Bug高级检索的用例规格说明如下:

4.2 Bug高级检索的用例规格说明

用例名称

Bug高级检索

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

显示搜索结果

主事件流

用书输入检索条件

系统按条件检索并得出检索结果

用户点选所需结果条目

系统显示相应条目信息

备选事件流

2a.检索结果为空

   1.提示无搜索结果,建议重新输入检索条件

非功能性需求

存储机制完善可靠

3、修改Bug状态的用例规格说明如下:

4.3 修改Bug状态的用例规格说明

用例名称

修改Bug状态

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

已打开待修改的Bug报告

后置条件

修改并存储新数据

主事件流

用户选择Bug状态并提交修改

系统受理修改并存储相应信息

备选事件流

非功能性需求

存储机制完善可靠

(二)工作计划管理子系统:测试工程师和开发工程或更高层人员可通过工作计划管理子系统管理个人的工作计划,其用例图如下:

4.2工作计划管理子系统用例图

运用工作计划管理子系统功能,用户可以随时撰写个人未来的工作计划、查看计划、和修改工作计划。用户不可访问他人的工作计划,从而保证用户的个人隐私。

撰写计划的用例规格说明如下:

1、撰写计划的用例规格说明如下:

4.4 撰写计划的用例规格说明

用例名称

撰写计划

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统,所选日期无工作计划

后置条件

存储新的或已修改的计划内容

主事件流

选择欲添加工作计划的日期

系统确定所选定的日期有无计划

用户撰写计划并提交

系统保存该日期的计划

备选事件流

3b.所选日期在今日之前

     1.系统不提供添加功能

非功能性需求

存储机制完善可靠

2、修改计划的用例规格说明如下:

4.5修改计划的用例规格说明

用例名称

修改计划

参与者

测试工程师、开发工程师

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统,所选日期已有工作计划

后置条件

存储新的或已修改的计划内容

主事件流

选择欲添加工作计划的日期

系统确定所选定的日期有无计划

用户撰写新计划并提交修改

系统保存该日期的新计划

备选事件流

3b.所选日期在今日之前

     1.系统不提供修改计划功能

非功能性需求

存储机制完善可靠

(三)用户管理子系统:系统管理员可通过用户管理子系统管理用户账户和权限,并可以查看系统日志。其用例图如下:

4.3 用户管理子系统用例图

运用用户管理子系统,系统管理员能够分配用户账户、删除用户、重置用户密码和管理用户权限,并可以查看系统记录的访问日志。

1、用户账户初始化用例规格说明如下:

4.6用户账户初始化用例规格说明

用例名称

用户账户初始化

参与者

系统管理员

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储修改或添加方案数据信息

主事件流

用户输入新用户的登录名和密码,分配角色并提交

系统受理添加方案并存储信息

备选事件流

2a.用户已存在

    1.系统提示用户已存在,返回添加新用户页面

非功能性需求

冲突检测机制完善可靠

2、删除用户账户用例规格说明如下:

4.7删除用户账户用例规格说明

用例名称

删除用户账户

参与者

系统管理员

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储修改方案数据信息

主事件流

用户选择欲删除的用户并提交删除指令

系统受理删除

备选事件流

非功能性需求

数据存储机制完善可靠

(四)测试项目管理子系统:用户可以通过测试项目管理子系统进行待测软件项目的管理和查看缺陷统计报表。其用例图如下:

4.4 测试项目管理子系统用例图

运用测试项目管理子系统,测试部经理和开发部经理可以添加、修改和删除测试项目,并能够查看缺陷统计报表。

1、添加测试项目的用例规格说明如下:

4.8添加测试项目的用例规格说明

用例名称

添加测试项目

参与者

测试部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储添加方案数据信息

主事件流

用户输入新项目的名称和启动日期等信息,并提交添加指令

系统受理指令,操作成功

备选事件流

2a.项目已存在

    1.系统提示项目已存在,返回添加页面

非功能性需求

数据存储机制和冲突检测机制完善可靠

2、修改测试项目的用例规格说明如下:

4.9修改测试项目的用例规格说明

用例名称

修改测试项目

参与者

测试部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储修改方案数据信息

主事件流

用户选择欲修改的测试项目

系统跳转至所选测试项目内容

用户修改项目内容后提交修改指令(测试项目名称为只读)

系统受理修改

备选事件流

非功能性需求

数据存储机制完善可靠

3、删除测试项目的用例规格说明如下:

4.10 删除测试项目的用例规格说明

用例名称

删除测试项目

参与者

测试部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

系统存储删除方案数据信息

主事件流

用户选择欲删除的测试项目

系统跳转至所选测试项目内容

用户执行删除操作

系统受理删除

备选事件流

非功能性需求

数据存储和读取机制完善可靠

4、查看缺陷统计报表的用例规格说明如下:

4.11 查看缺陷统计报表的用例规格说明

用例名称

查看缺陷统计报表

参与者

测试部经理开发部经理

假设

用户存在且权限已得到分配

前置条件

用户身份识别成功并登录系统

后置条件

主事件流

用户选择查看方式

系统受理并显示统计报表

备选事件流

非功能性需求

数据存储和读取机制完善可靠

4.2系统数据库设计

4.2.1 数据库关系模型

本软件缺陷跟踪系统数据库(Tracking)包含13个表,本别为User、Department、Plan、Role、Bug、BugClass、BugSecurity、Project、Status、OS、Log、Report、Priority。数据库关系模型如下图所示:

图4.5 数据库关系模型

4.2.2核心数据表

1.User表:

图4.6 User数据表

User数据表包含五列,列名及相应存储对象如下:

表4.12 User表数据存储说明

列名

存储对象

LoginName

用户登录名

UserID

用户身份识别编号

PassWord

用户登录密码

UserName

用户真实姓名

DepartmentName

用户所在部门名称

RoleName

用户角色名称

2.Bug表

图4.7 Bug数据表

Bug数据表包含五列,列名及相应存储对象如下:

表4.13 Bug表数据存储说明

列名

存储对象

BugId

缺陷识别码

BugTitle

缺陷标题名称

BugContent

缺陷详细内容

LoginName

用户登录名

BugStatusName

缺陷状态

ProjectName

缺陷所述测试项目名称

OS

测试平台操作系统

BugClassName

缺陷类别

Priority

缺陷优先级别

SecurityName

缺陷严重级别

BugDate

缺陷添加日期

Version

被测软件的版本名称

3.Plan表

图4.8 Plan数据表

Plan数据表包含四列,列名及相应存储对象如下:

表4.14 Plan表数据存储说明

列名

存储对象

PlanId

工作计划识别码

LoginName

用户登录名

PlanDate

工作计划添加日期

PlanContent

工作计划详细内容

4.Project表

图4.9 Project数据表

Project数据表包含五列,列名及相应存储对象如下:

表4.15 Project表数据存储说明

列名

存储对象

ProjectName

待测软件项目名称

ProjectId

待测软件项目识别码

ProjectDate

待测软件项目启动时间

Discribe

待测软件项目描述

5.Log表

图4.10 Log数据表

Log数据表包含四列,列名及相应存储对象如下:

表4.16 Log表数据存储说明

列名

存储对象

LoginName

行为或事件发起人

Action

行为或事件

Date

记录时间

ID

事件ID

4.3系统体系结构设计

本软件缺陷跟踪系统运用五层体系结构方式实现,如下图:

图4.11软件缺陷跟踪系统体系结构图

其中,各层所实现功能的描述如下:

  • 数据访问层(DtatAccessLayer):实现对数据库中数据的访问功能。
  • 数据访问接口层(DataAccessUI):实现获取数据和构造SQL语句的功能。
  • 业务逻辑层(BusinessLogicLayer):实现业务的具体逻辑功能。
  • 业务逻辑接口层(BusinessLogicUI):实现业务逻辑层到页面显示层的过渡连接。
  • 页面显示层(WebLayer):将业务功能在Web浏览器端显示

  • 系统实现

本章展示了本软件缺陷跟踪系统的具体实现方法、核心功能的源程序和运行效果。

5.1 系统基本功能的实现

5.1.1 登录模块的实现

软件缺陷跟踪系统登录页面运行效果如下图所示:

图5.1 软件缺陷跟踪系统登录页面运行效果图

系统登录是用户使用本软件缺陷跟踪系统的第一步操作,只有通过输入正确的用户登录名和密码才能正常进入系统并使用相应功能。登录时,若用户名输入文本框或密码输入文本框为空,则系统会给出相应提示;若用户名或密码错误,则系统提示登录失败信息。在初始启动系统时,若非法用户或黑客试图跳过登录身份验证,直接输入某功能页面的访问地址,则系统会自动跳转至登陆页,直至身份验证成功后方可进入。同时系统记录用户登录名添加至Session。登录事件记入系统日志。

登录机制核心源代码如下:

Session.Add("login_name", username);

User user = new User();

user.LoadData(username);

if (user.Exist)

  {

     if (user.Password == password)

     {

         Session.Add("password", password);

         String sql = "INSERT INTO [Log] ( [ID],[LoginName], [Action], [Date]) VALUES ('" + Convert.ToUInt64(DateTime.Now.ToString("yyyyMMddHHmmss")) + "','"+ Session["login_name"].ToString() + "','试图登录系统:登陆成功!','" + DateTime.Now +"')";

         SqlDataSource1.InsertCommand = sql;

         SqlDataSource1.Insert();

         Response.Redirect("Front.aspx");

}

     else

     {

         Label3.Text = "用户名或密码不正确,请重新输入或与管理员联系!";

         TextBox3.Text = "";

String sql = "INSERT INTO [Log] ( [ID],[LoginName], [Action], [Date]) VALUES ('" + Convert.ToUInt64(DateTime.Now.ToString("yyyyMMddHHmmss")) + "','"+ Session["login_name"].ToString() + "','试图登录系统:登陆失败;原因:密码错误!','" + DateTime.Now + "')";

         SqlDataSource1.InsertCommand = sql;

         SqlDataSource1.Insert();

}

   }

   else

   {

Label3.Text = "用户名或密码不正确,请重新输入或与管理员联系!";

TextBox3.Text = "";

   }

5.1.2系统欢迎页面的实现

软件缺陷跟踪系统欢迎页面运行效果如下图所示:

图5.2 软件缺陷跟踪系统欢迎页面运行效果图

用户身份验证通过成功登录后,将进入系统欢迎页面,即首页。同时功能导航栏出现,向用户提供符合其权限的系统功能。功能导航栏如下图所示:

图5.3 软件缺陷跟踪系统功能导航栏

运用用户登录时系统所记录的Session,在此欢迎界面将显示登录用户的用户名,其图5-2所示。欢迎页面中,用户可通过直接点击页面中的功能提示和使用导航栏按钮进入相应系统功能页面。

5.1.3 缺陷跟踪功能的实现

软件缺陷跟踪系统的缺陷跟踪模块是该系统的核心功能模块,用于对缺陷报告的完全管理,包括新增缺陷报告、修改缺陷状态和检索缺陷等。

1.新增缺陷报告。运行效果如下图所示:

图5.4新增缺陷页面运行效果图

在新增缺陷报告页面中,用户登录时使用的登录名被自动确认为此缺陷报告的“发布人”。此外,用户可根据报告的详细情况,选择所属项目、缺陷类别、优先级别、测试平台的操作系统、严重级别,输入测试软件的版本、报告标题和详细缺陷描述,(备注为可选输入项)完成填选后点击“发布”按钮即可将此报告发布并存储至数据库。同时生成唯一的BugID,其ID编号为发布时的时间点,格式为“yyyyMMddHHmmssXX”,并自动显示在报告发布成功的提示页面中,以方便此后检索时使用。

图5.5缺陷报告提交成功提示信息页

缺陷报告提交功能核心源代码如下:

String sql = "INSERT INTO [Bug] ( [BugId], [BugTitle], [BugContent], [LoginName], [BugStatusName], [ProjectName], [OS], [BugClassName], [Priority], [SecurityName], [BugDate], [Version],[Remarks]) VALUES ('"+Convert.ToUInt64(DateTime.Now.ToString("yyyyMMddHHmmss")) +"','"+ TextBox1.Text + "','" + TextBox3.Text + "','" + Label1.Text + "','" + Label2.Text + "','" + DropDownList1.Text + "','" + DropDownList4.Text + "','" + DropDownList3.Text + "','" + DropDownList5.Text + "','" + DropDownList6.Text + "','" + DateTime.Now + "','" +TextBox4.Text + "','"+TextBox2.Text+"')";

SqlDataSource7.InsertCommand = sql;

   SqlDataSource7.Insert();

String sql2 = "INSERT INTO [Log] ( [ID],[LoginName], [Action], [Date]) VALUES ('" + Convert.ToUInt64(DateTime.Now.ToString("yyyyMMddHHmmss")) + "','"+ Session["login_name"].ToString() + "','缺陷报告提交成功!','" + DateTime.Now + "')";

    SqlDataSource8.InsertCommand = sql2;

SqlDataSource8.Insert();

    Response.Redirect("BugFinish.aspx");

2.快速检索缺陷报告。运行效果如下图所示:

图5.6快速检索缺陷报告页面运行效果图

大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_251836457

你的鼓励 是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值