技术报告
第一章 系统概述
包括用户管理、权限管理、软件项目管理、软件模块管理、测试用例管理、测试任务分配、bug管理等功能。实现公司不同部门间团队协作,管理人员也能够更加有效的把控系统开发的进度。
本实验综合应用JavaWeb编程中的Servlet,JSP,JavaBean,JDBC,数据可视化技术,结合后台数据库管理,设计并实现基于MVC架构的web应用系统,以提高对web应用系统的分析设计能力和解决实际工程问题的能力。
本系统采用的开发环境主要是基于数据库系统mysql 5.0和IntelliJ IDEA 2018。利用mysql创建各个部门成员的信息,以及软件任务、测试用例、bug、项目等,利用IDEA创建软件测试管理系统解决方案,开发一套测试系统,可以让不同角色参与到软件开发流程中来,管理员也可以对项目和用户信息进行维护。
2 系统框架
2.1网络架构
B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只要安装一个浏览器,如Netscape Navigator或Internet Explorer,服务器安装SQL Server、Oracle、MYSQL等数据库。浏览器通过Web Server 同数据库进行数据交互。
图2-1-1:B/S架构
2.2系统架构
图2-2-1:管理员功能
图2-2-2:项目经理功能
图2-2-3:产品经理功能
图2-2-4:开发者功能
图2-2-5:测试者功能
2.3模块功能说明
由于项目经理的功能包括了产品经理、开发者、测试者的功能。而管理员功能仅比项目经理多了员工信息管理,所以在这里仅仅描述项目经理的功能模块,以及管理员的员工信息管理模块,以及所有角色都有的通用模块。
- 通用模块
用户登录 | |
---|---|
用例描述 | 用户选择角色并登录 |
参与者 | 所有用户 |
前置条件 | 无 |
后置条件 | session中传入用户个人信息 |
基本流程 | 1. 用户输入账号密码进行登录验证 2. 登录成功进入管理系统 3. 退出登录 |
候选流程 | 账号密码错误时,返回错误信息 |
用户修改密码 | |
---|---|
用例描述 | 用户修改密码 |
参与者 | 所有用户 |
前置条件 | ①用户已登录 ②正确输入原来密码 ③新密码两次输入相同 |
后置条件 | 个人信息的密码属性被修改 |
基本流程 | ①用户正确输入原密码 ②用户两次输入新密码 |
候选流程 | 原密码错误和两次输入新密码不同均会报错 |
数据可视化 | |
---|---|
用例描述 | 统计项目、任务、测试用例、bug信息并可视化 |
参与者 | 所有用户 |
前置条件 | ①用户已登录,在首页 |
后置条件 | session中传入统计信息 |
基本流程 | ①用户首先点击数据刷新 ②在自己需要统计的模块下,刷新统计图 |
候选流程 | 无 |
- 管理员模块
管理员工信息 | |
---|---|
用例描述 | 对员工的信息进行增删改查 |
参与者 | 管理员 |
前置条件 | ①管理员已登录 ②增加的员工信息ID不能重复 |
后置条件 | 员工信息更新 |
基本流程 | ①管理员通过指定操作编辑员工信息 |
候选流程 | 员工信息ID重复会提示操作失败 |
- 项目经理模块
管理项目中的任务模块 | |
---|---|
用例描述 | 读项目中的任务进行增删改查 |
参与者 | 项目经理、产品经理 |
前置条件 | 参与者: ①用户已登录 ②新增的任务编号不能重复,员工指派遵循外键规则 项目经理: ①只能对自己管辖的项目下的任务进行删改 ②为产品经理新建的任务,指派开发者和测试者 产品经理: ①只能对自己创建的任务进行删改 ②能够创建任务的基本信息,但是指派开发者和测试者的要交由项目经理处理 |
后置条件 | 任务信息更新 |
基本流程 | ①管理员和产品经理根据指定操作编辑任务模块 |
候选流程 | 任务操作不符合规范会报错 |
测试用例管理 | |
---|---|
用例描述 | 对测试用例进行增删改查 |
参与者 | 项目经理、测试者 |
前置条件 | 参与者: ①用户已登录 ②新增的测试用例编号不能重复,测试用例指派遵循外键规则 项目经理: ①对所有测试用例的增删改查 测试者: ①增加和查询测试用例 ②对于指派给自己的测试用例,拥有部分修改权利 ③对于自己创建的测试用例,有删除和修改的权利 |
后置条件 | 测试用例更新 |
基本流程 | ①项目经理和测试者通过指定操作编辑测试用例 |
候选流程 | 测试用例编辑不符合规范会提示错误信息 |
bug管理 | |
---|---|
用例描述 | 对bug进行增删改查处理 |
参与者 | 项目经理、测试者、开发者 |
前置条件 | 参与者: ①用户已登录 ②新增的bug编号不能重复,bug指派遵循外键规则 项目经理: ①对所有bug的增删改查 测试者: ①增加和查询bug ②删改自己创建的bug 开发者: ①对于指派给自己的bug拥有修改的权利 |
后置条件 | bug信息更新 |
基本流程 | ①项目经理、测试者、开发者通过指定操作编辑bug信息 |
候选流程 | bug编辑不符合规范会给出错误信息 |
第三章 系统需求分析
3.1 功能描述
(1)登录模块。选择登录类型,输入用户名和密码后,按“登录”按钮,若输入错误则弹出警告框,若输入正确,五个角色进入各自的首页。
(2)修改密码模块。输入用户名和密码后,要确保原账号正确,以及两次输入的密码一致,失败则提示操作失败,否则更新数据库。
(3)管理员执行对员工、项目的增删改查,如果编号已存在或者待删除的类在项目、任务、测试、bug中存在依赖关系,则提示操作失败,否则更新数据库信息。
(4)项目经理执行权限范围内任务、测试用例、bug的增删改查,如果新建的事物编号已存在或者待删除事物存在依赖关系,则提示操作失败,否则更新数据库信息。
(5)产品经理、开发者、测试者的模块功能已经包含在项目经理内,对其权限内的操作同项目经理。
(6)数据可视化功能。用户可以通过数据刷新,使得在首页,对自己需要的模块呈现数据可视化。
(7)Excel导出。对于查询的结果,支持Excel导出功能。
3.2 业务流程及处理要求
(1)用户登录模块。输入的用户名和密码均不能为空,若输入错误则弹出警告框,输入正确方可进入相关页面
(2)修改密码模块。如果原密码输入错误,则提示密码输入错误,两次密码不一致则提示两次密码不一致。
(3)项目经理、产品经理、测试者、开发者,对于自己权限内的任务,会在返回的表单旁有“铅笔”和“叉叉”标记,查询返回的table旁有这个标记的,则表明自己有权限对其进行编辑操作。此外对于自己指定权限内的任务,会有新建操作。如果新建的事物编号重复或者删除的事物中存在关联,则提示操作失败。
(4)用户进入首页后,可以点击数据刷新按钮,之后再通过刷新图表,显示图案的柱状统计图。
(5)用户的查询结果,可以选择导出到excel,下载到本地。
3.3 输入信息
1.用户登录:用户类型、用户账号、用户密码。
2.修改密码:用户账号,用户原密码,用户新密码,用户新密码确认。
3.用户信息管理:用户账号、用户姓名、用户密码、用户类型、用户性别、用户邮箱。
4.任务信息管理:任务编号、归属项目编号、任务名称、产品经理编号、开发者编号、测试者编号、完成状态、开始日期、截止日期。
5.测试用例信息管理:测试用例编号、测试用例名称、类型、创建人(测试者)编号、执行人(测试者)编号、结果、状态、执行时间。
6.Bug信息管理:Bug编号、Bug名称、类型、测试者编号、开发者编号、方案、执行时间。
7.项目信息管理:项目编号、项目名称、开始日期、截止日期、完成状态。
8.以上所有信息均支持多条件复合查询,复合条件即以上信息管理所提到的字段。
3.4 输出信息
1.用户登录:如果账户密码正确,则跳转至对应类型用户的index.jsp(首页)界面,否则提示账号或者密码输入错误。
2.修改密码:根据原始密码输入错误或者两次输入密码是否一致给出错误信息,若都正确则更新密码。
3.用户信息管理:如果用户账号不重复且输入的部门是存在的,则数据库中更新信息,否则提示失败。
4.任务信息管理:如果输入的任务编号不重复,且对应的产品经理编号、开发者编号、测试者编号、归属项目编号存在,日期格式符合规范,则更新数据库中的任务信息,并跳转回tasks.jsp,否则提示操作失败。
5.测试用例信息管理:如果测试用例编号不重复,且对应的测试者编号存在,则更新测试用例数据库信息,否则提示操作失败。
6.bug信息管理:如果bug编号不重复,且对应的测试者和开发者存在,则更新bug信息,否则提示操作失败。
7.项目信息管理:如果项目编号不重复,则更新信息,否则提示操作失败。
8.在执行符合查询时,查询结果会以对应的table格式返回。
第四章 数据库设计
4.1 数据库表概念结构设计
1.Person
标识符 | 意义 | 类型 | 值域 |
---|---|---|---|
编号 | 用户编号 | varchar | 长度<=255 |
姓名 | 用户名 | varchar | 长度<=255 |
密码 | 用户密码 | varchar | 长度<=255 |
性别 | 性别 | varchar | 长度<=255 |
邮箱 | 邮箱 | varchar | 长度<=255 |
部门 | 部门 | varchar | 长度<=255 |
- 任务
标识符 | 意义 | 类型 | 值域 |
---|---|---|---|
任务编号 | 任务编号 | varchar | 长度<=255 |
任务名称 | 任务名称 | varchar | 长度<=255 |
完成状态 | 任务完成状态 | varchar | 长度<=255 |
开始日期 | 任务开始日期 | date | / |
截止日期 | 任务截止日期 | date | / |
产品经理编号 | 创建该任务的产品经理 | varchar | 长度<=255 |
开发者编号 | 开发该任务的开发者 | varchar | 长度<=255 |
测试者编号 | 测试该任务的测试者 | varchar | 长度<=255 |
项目编号 | 任务归属项目编号 | varchar | 长度<=255 |
- 项目
标识符 | 意义 | 类型 | 值域 |
---|---|---|---|
项目编号 | 项目编号 | varchar | 长度<=255 |
项目名称 | 项目名称 | varchar | 长度<=255 |
开始日期 | 开始日期 | date | / |
截止日期 | 截止日期 | date | / |
完成状态 | 完成状态 | varchar | 长度<=255 |
- 项目员工关系
标识符 | 意义 | 类型 | 值域 |
---|---|---|---|
项目编号 | 项目编号 | varchar | 长度<=255 |
员工编号 | 员工编号 | varchar | 长度<=255 |
- 测试用例
标识符 | 意义 | 类型 | 值域 |
---|---|---|---|
测试用例编号 | 测试用例编号 | varchar | 长度<=255 |
测试用例名称 | 测试用例名称 | varchar | 长度<=255 |
类型 | 测试用例的类型 | varchar | 长度<=255 |
结果 | 测试结果 | varchar | 长度<=255 |
状态 | 测试状态 | varchar | 长度<=255 |
- Bug
标识符 | 意义 | 类型 | 值域 |
---|---|---|---|
bug编号 | bug的编号 | varchar | 长度<=255 |
bug名称 | bug名字 | varchar | 长度<=255 |
类型 | bug类型 | varchar | 长度<=255 |
方案 | bug的解决方案 | varchar | 长度<=255 |
执行时间 | bug执行时间 | date | 长度<=255 |
4.2数据库表概念关系模型
图4-2-1:总ER图
4.3 实体属性
图4-3-1:管理员、项目经理、产品经理、开发者、测试者的实体属性
图4-3-2:项目、任务实体属性
图4-3-3:测试用例实体
图4-3-4:Bug实体
第五章 系统实现功能
- 用户登录
图5-1:登录流程
- 修改密码
图5-2:修改密码流程
- 数据统计
图5-3:数据统计流程
- 员工增删改查
图5-4:员工增删改查路程图
- 项目增删改查
图5-5:项目的增删改查
- 任务的增删改查
图5-6:任务的增删改查
- 测试用例流程
图5-7:测试用例增删改查
- Bug增删改查
图5-8:Bug的增删改查
第六章 系统使用
6.1 用户账号密码管理
打开浏览器,在地址栏输入http://localhost:8888/sign-in.jsp,进入登录页面,根据自己的权限,进入指定的首页。
图6-1:登录页面
修改密码,确保原始密码正确,两次新密码一致。
图2-2:修改密码
6.2 项目经理功能描述
图6-3:以项目经理模式进入页面
点击数据刷新,并刷新图表,显示统计图
图6-4:数据统计图呈现
复合条件查询,空白表示支持所有条件,有小铅笔标签表示可以修改,左上角的加号表示可以添加,导出表示可以将查询结果以excel形式导出
图6-5:查询所有项目经理
图6-6:添加项目
图6-7:查询进行中的项目,此时发现XM004
图6-8:选中XM004旁边的小铅笔,进行项目编辑,发现项目编号是不能被修改的
图6-9:将XM004的完成状态修改为筹划中
由于添加了一个筹划中的项目,此时再次去首页查看项目状态,发现产生实时变化。
图6-10:数据刷新2.0
图6-11:查询所有开发部的工作人员
图6-12:点击导出,导出查询结果
图6-13:查询所有XM001项目成员
图6-14:尝试删除员工关系
查询所有任务,发现当前项目经理,只有对自己所管辖的项目拥有编辑的权利,增删改与员工关系相同,不重复描述。
图6-16:查询所有任务
图6-17:复合查询产品经理CPJL001和测试者CSZ003所负责的任务
图6-18:项目经理新建任务
图6-19:项目经理修改任务
图6-20:查询测试用例
图6-21:新建测试用例
图6-22:项目经理修改测试用例
图6-23:查询Bug
图6-24:项目经理添加Bug
图6-25:项目经理修改Bug
6.3 管理员功能补充描述
图6-26:管理员查看所有员工信息
图6-27:管理员添加新成员
图6-28:管理员修改员工属性
由于产品经理、开发者、测试者的功能都包含在项目经理当中,故不截图赘述