
1.引言 2
1.1编写目的 2
1.2项目背景 2
1.3定义 2
1.4参考资料 2
2.测试计划执行情况 2
2.1测试项目 3
2.2测试机构和人员 11
2.3测试结果 11
3.软件需求测试结论 13
4.评价 14
4.1软件能力 14
4.2缺陷和 14
4.3建议 14
4.4测试结论 14
1.引言
1.1编写目的
为明确软件需求、安排项目规划与进度、组织软件开发与测试,撰写本文档。
本文档供项目经理、设计人员、开发人员参考。
1.2项目背景
随着旅游业的兴起,以酒店等为主的服务型第三产业飞速发展;因此,规划外出计划,提前确定住处对游客就显得尤为重要。
为了解决人们的出行入住问题,同时提高酒店运作效率和规范性,节约酒店的成本;在充分了解调研酒店的运营、管理模式后,我们开发了此酒店预订和管理系统。
本系统分为在线预订子系统和酒店方的预订与管理子系统,在线预订子系统提供顾客在线预订房间等功能,争取在最终版本实现顾客足不出户完成预订;酒店方的预订与管理子系统提供给酒店服务员处理订单、办理入住、结帐退房等一系列管理功能。在真正意义上,实现了计算机高效办公,起到了方便顾客与酒店的双重作用。
我们会根据技术发展、设备升级、业务需求等进行对本系统的扩展、升级与维护。
1.3定义
酒店前台管理系统:是运行在酒店前台电脑的系统。酒店人员可以使用本系统来对用户的订单进行处理,并且可以使用管理宾馆入住、消费、日记月结等基本酒店日常管理功能。
网上客户预定系统:是运行在一般用户电脑上的程序。网上用户可以通过本系统来对本酒店房间的预定信息进行查询,并预定房间。
1.4参考资料
1)用户的需求信息Project for the Course Object Oriented Design with UML--Analysis and Design of a Hotel Reservation and Management System
2)美萍酒店管理系统
3)美萍酒店管理系统的功能使用说明书
2.测试计划执行情况
2.1测试项目
| 描述方面 | 登录系统 | |||||
| 模块名称 | Login | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | userText | a | |||
| password | string | psdText | a | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| System | string | Successful! | ||||
| 描述方面 | 登录系统 | |||||
| 模块名称 | Login | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | userText | a | |||
| password | string | psdText | b | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| System | string | 账号密码错误 | ||||
| 描述方面 | 登录系统 | |||||
| 模块名称 | Login | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | userText | 空 | |||
| password | string | psdText | 空 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| System | string | 账号密码为空 | ||||
| 描述方面 | 房间面板,将不同类型房间放在一个页面 | |||||
| 模块名称 | RoomPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| type | string | RoomSwitch | A,B,C,D | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| RoomPanel | ArrayList | al | ||||
| 描述方面 | 预定界面,需要输入顾客的正确基本信息添加预定订单 | |||||
| 模块名称 | OrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | nameTextField | abc | |||
| sex | string | sexTextField | 男 | |||
| id | string | idTextField | 1234567012345 | |||
| nation | string | nationTextField | China | |||
| startTime | date | startDateLabel | 2015-05-02 12:00:00 | |||
| endTime | date | endDateLabel | 2015-05-03 12:00:00 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| createOrder | String | successfull | ||||
| 描述方面 | 预定界面,需要输入顾客的正确基本信息添加预定订单 | |||||
| 模块名称 | OrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | nameTextField | abcd | |||
| sex | string | sexTextField | 女 | |||
| id | string | idTextField | 1234567012345678 | |||
| nation | string | nationTextField | China | |||
| startTime | date | startDateLabel | 2015-05-02 12:00:00 | |||
| endTime | date | endDateLabel | 2015-05-05 12:00:00 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| createOrder | String | 创建一天 | ||||
| 描述方面 | 预定界面,需要输入顾客的正确基本信息添加预定订单 | |||||
| 模块名称 | OrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | nameTextField | abc | |||
| sex | string | sexTextField | f | |||
| id | string | idTextField | 1234567012345 | |||
| nation | string | nationTextField | China | |||
| startTime | date | startDateLabel | 2015-05-02 12:00:00 | |||
| endTime | date | endDateLabel | 2015-05-03 12:00:00 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 用户信息输入错误 | ||||
| 描述方面 | 预定界面,需要输入顾客的正确基本信息添加预定订单 | |||||
| 模块名称 | OrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | nameTextField | abcd | |||
| sex | string | sexTextField | 男 | |||
| id | string | idTextField | 12345678 | |||
| nation | string | nationTextField | China | |||
| startTime | date | startDateLabel | 2015-05-02 12:00:00 | |||
| endTime | date | endDateLabel | 2015-05-03 12:00:00 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 用户信息输入错误 | ||||
| 描述方面 | 预定界面,需要输入顾客的正确基本信息添加预定订单 | |||||
| 模块名称 | OrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | nameTextField | abcd | |||
| sex | string | sexTextField | 男 | |||
| id | string | idTextField | 1234567012345 | |||
| nation | string | nationTextField | China | |||
| startTime | date | startDateLabel | 2015-05-02 12:00:00 | |||
| endTime | date | endDateLabel | 2015-05-01 12:00:00 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 用户信息输入错误 | ||||
| 描述方面 | 预定界面,需要输入顾客的正确基本信息添加预定订单 | |||||
| 模块名称 | OrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | nameTextField | abcd | |||
| sex | string | sexTextField | 男 | |||
| id | string | idTextField | 1234567012345 | |||
| nation | string | nationTextField | China | |||
| startTime | date | startDateLabel | 2015-05-02 12:00:00 (2015-05-02 12:00:00已被预订) | |||
| endTime | date | endDateLabel | 2015-05-04 12:00:00 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 房间已经被预定 | ||||
| 描述方面 | 预定界面,需要输入顾客的正确基本信息添加预定订单 | |||||
| 模块名称 | OrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| name | string | nameTextField | 空 | |||
| sex | string | sexTextField | 空 | |||
| id | string | idTextField | 空 | |||
| nation | string | nationTextField | 空 | |||
| startTime | date | startDateLabel | 空 | |||
| endTime | date | endDateLabel | 空 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 用户信息输入错误 | ||||
| 描述方面 | 员工界面,显示所有员工并修改正确的员工信息 | |||||
| 模块名称 | EmployeePanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| 员工 | String | table | Abcd | |||
| 级别 | int | table | 0 | |||
| 性别 | String | table | 男 | |||
| 账号 | String | table | a | |||
| 密码 | String | table | a | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| System | String | successful | ||||
| 描述方面 | 员工界面,显示所有员工并修改正确的员工信息 | |||||
| 模块名称 | EmployeePanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| 员工 | String | table | Abcde | |||
| 级别 | int | table | 1 | |||
| 性别 | String | table | 女 | |||
| 账号 | String | table | ab | |||
| 密码 | String | table | a | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| System | String | successful | ||||
| 描述方面 | 员工界面,显示所有员工并修改正确的员工信息 | |||||
| 模块名称 | EmployeePanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| 员工 | String | table | Abcd | |||
| 级别 | int | table | 0 | |||
| 性别 | String | table | Male | |||
| 账号 | String | table | a | |||
| 密码 | String | table | a | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 信息输入错误 | ||||
| 描述方面 | 员工界面,显示所有员工并修改正确的员工信息 | |||||
| 模块名称 | EmployeePanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| 员工 | String | table | Abcd | |||
| 级别 | int | table | 3 | |||
| 性别 | String | table | 男 | |||
| 账号 | String | table | a | |||
| 密码 | String | table | a | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 信息输入错误 | ||||
| 描述方面 | 员工界面,显示所有员工并修改正确的员工信息 | |||||
| 模块名称 | EmployeePanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| 员工 | String | table | Abcdfg | |||
| 级别 | int | table | 0 | |||
| 性别 | String | table | 男 | |||
| 账号 | String | table | a(已经存在) | |||
| 密码 | String | table | a | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 信息输入错误 | ||||
| 描述方面 | 员工界面,显示所有员工并修改正确的员工信息 | |||||
| 模块名称 | EmployeePanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| 员工 | String | table | 空 | |||
| 级别 | int | table | 空 | |||
| 性别 | String | table | 空 | |||
| 账号 | String | table | 空 | |||
| 密码 | String | table | 空 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 信息输入错误 | ||||
| 描述方面 | 处理订单界面,通过true接受处理订单,通过false拒绝处理订单 | |||||
| 模块名称 | HandleOrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| tempOrderLine | TempOrderLine | table | 临时订单 | |||
| bool | true | |||||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| handleOnlineOrder | void | Successful | ||||
| 描述方面 | 处理订单界面,通过true接受处理订单,通过false拒绝处理订单 | |||||
| 模块名称 | HandleOrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| tempOrderLine | TempOrderLine | table | 临时订单 | |||
| bool | false | |||||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| handleOnlineOrder | void | Successful | ||||
| 描述方面 | 处理订单界面,通过true接受处理订单,通过false拒绝处理订单 | |||||
| 模块名称 | HandleOrderPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| chooseDate | date | dateChooseLabel | 格式化日期 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| OL | ArrayList | OrderLine | ||||
| 描述方面 | 修改各类信息,包括房间信息,商品信息以及服务信息(商品信息) | |||||
| 模块名称 | ModifyPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| Name | String | goodsTable | 可乐 | |||
| Price | Float | goodsTable | 5.0 | |||
| Count | int | goodsTable | 99 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| manageGoodsInfo | Goods | good | ||||
| 描述方面 | 修改各类信息,包括房间信息,商品信息以及服务信息(商品信息) | |||||
| 模块名称 | ModifyPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| Name | String | goodsTable | 可乐 | |||
| Price | Float | goodsTable | 5.0 | |||
| Count | int | goodsTable | -1 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| Sytstem | string | 信息修改错误 | ||||
| 描述方面 | 修改各类信息,包括房间信息,商品信息以及服务信息(商品信息) | |||||
| 模块名称 | ModifyPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| Name | String | goodsTable | 可乐 | |||
| Price | Float | goodsTable | -1 | |||
| Count | int | goodsTable | 99 | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| Sytstem | string | 信息修改错误 | ||||
| 描述方面 | 修改各类信息,包括房间信息,商品信息以及服务信息(房间信息) | |||||
| 模块名称 | ModifyPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| roomID | Int | roomTable | 101 | |||
| price | Float | roomTable | 100.0 | |||
| tye | String | roomTable | A,B,C,D | |||
| state | State | roomTable | EMPTY, BOOKED,IVING, SWEEP | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| manageRoomInfo | Room | room | ||||
| 描述方面 | 修改各类信息,包括房间信息,商品信息以及服务信息(房间信息) | |||||
| 模块名称 | ModifyPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| roomID | iny | roomTable | 101 | |||
| price | Float | roomTable | 100.0 | |||
| tye | String | roomTable | E | |||
| state | State | roomTable | Other | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 房间信息输入错误 | ||||
| 描述方面 | 修改各类信息,包括房间信息,商品信息以及服务信息 | |||||
| 模块名称 | ModifyPanel | |||||
| 输入项目 | 名称 | 类型 | 数据来源 | 附注 | ||
| roomID | Int | roomTable | 101 | |||
| price | Float | roomTable | -1 | |||
| tye | String | roomTable | A,B,C,D | |||
| state | State | roomTable | EMPTY, BOOKED,IVING, SWEEP | |||
| 输出项目 | 输出项 | 数据类型 | 输出内容 | |||
| erroLabel | JLabel | 房间信息输入错误 | ||||
| 测试机构名称 | UML课设组 |
| 负责人 | 高一鸣、邹煜杰 |
| 参与测试人员名单 | 郭睿、王贺伟、于晨阳、葛成 |
| 高一鸣 | Login |
| 邹煜杰 | RoomPanel |
| 郭睿 | OrderPanel |
| 王贺伟 | EmployeePanel |
| 于晨阳 | HandleOrderPanel |
| 葛成 | ModifyPanel |
在测试过程中发现以下问题及解决方案:
| 序号 | 出错状况 | 解决方法 |
| 1 | 初始界面默认显示在桌面左上方 | 通过使界面不依赖与任何窗口setLocationRelativeTo(null) setlocation(x,y);设置方位
|
| 2 | 字符判断还有integer相等判断不能通过==符号 | 使用equals() |
| 3 | 工程环境迁移后不能访问数据库 | 重新配置数据库位置以及信息。以及在本地数据库中导入新迁移的数据库 |
| 4 | 界面无法刷新 | 通过removeAll()将所有所有组件移除,重新加载组件并updateUI(); |
| 5 | 程序关闭后仍然在后台运行 | 默认关闭方法“ setDefaultCloseOperation (WindowConstants.DISPOSE_ON_CLOSE); ”改为“setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);” |
| 6 | 错误输入用户信息程序报错 | 传参前检错并进行错误处理,提示错误信息 |
| 7 | 添加多个订单时,由于时间自动获得(精确到秒)作为主键,添加订单错误 | 添加延时程序,延时一秒 |
| 8 | Date类型变量作比较时,相同时间使用getTime()值不相等 | 因为精确到毫秒所以表面上相同时间值却不同,先整除1000再乘以1000 |
| 9 | 通过Date.getMonth()月份总是少一个月 | 得到月份+1 |
| 10 | 界面里加入的组件不能显示 | 调换add()顺序 |
| 11 | 添加预定订单时间选择过去的时间 | 和当前日期Date.getDate()比较 |
| 12 | 添加多个连续日期的时,由于中间一段日期已经被预定而只预定了其他一部分时间 | 先检查是否每一天都未被预定,如果已经有某天被预定,返回预订失败信息 |
| 13 | 员工修改错误 | 添加输入检错,判断格式是否正确(性别只能为f,m,级别0或1,添加前查看账号是否存在)否则提示输入错误 |
| 14 | 房间信息修改错误 | 添加输入检错,判断格式是否正确(类型只能为A,B,C,D)否则提示输入错误 |
| 15 | 修改表格时主键也允许被修改,程序执行报错 | 初始化JTable时复写其内部类public boolean isCellEditable(int row,int column){ if(row == 2 && column == 2){ return true; }else{ return false; } } |
| 16 | 结账时传递打折参数出错 | 检测discount大于0于1 |
| 17 | 结账后界面不能关闭 |
| 18 | RoomID框输入非数字报错 | 加上以下KeyListener监听事件。 public class VoteElectKeyListener implements KeyListener { @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub intkeyChar=e.getKeyChar(); if (keyChar>=KeyEvent.VK_0 &&keyChar<=KeyEvent.VK_9) {
} else { e.consume(); } } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } } |
1)在登录系统中,实现已经注册的用户账号、密码登陆。已注册账号和密码不符会输出“账号密码错误”;账号、密码都是空时会输出“账号密码为空”;
2)在网上用户预定界面,用户需要输入自己或者联系人的正确基本信息添加预定订单。当用户性别填入“f”等不是男或者女时,会提示“用户信息输入错误”;预定开始时间比结束时间晚时,会提示“用户信息输入错误”;当预定已经被提前预定的房间时,会提示“房间已经被预定”;当用户填入信息全部为空时,会提示“用户信息输入错误”;
3)在员工界面,前提是只有酒店经理及管理员可以进入该界面。显示所有员工并增加、删除和修改的员工信息。当员工信息格式不对,或者填入信息为空,或者账号密码已经存在,都会提示“信息输入错误”;
4)在处理订单界面,通过true接受处理订单,通过false拒绝处理订单。
5)只有酒店经理及管理员可以修改各类信息,包括房间信息,商品信息以及服务信息(商品信息)。当把商品和房间数量或者价格改为负数时,会提示“信息修改错误”;所选房间类型超出ABCD四种时,会提示“房间信息输入错误”。
4.评价
4.1软件能力
1)功能完全:本系统提供了一般酒店管理系统所需的基本功能,例如房间预订、消费管理、员工管理等;本系统还提供了一些扩展功能,例如网上预订系统等。
2)灵活性高:本系统实现了两个系统的交互,可及时对订单进行处理,方便了用户和酒店管理。
3)容错性高:本系统对各种输入都进行了有效性判断,可以对用户的输入进行判断,若是不符合规则,系统会进行报错。
4)后期可扩展性:可运行在手机端,方便用户使用。
4.2缺陷和
1)无法对某些输入判断有效性,例如身份证号和姓名是否正确合法;
2)没用用到服务器,只能在局域网内使用。
3)只能在Windows系统上运行。
4)只能在配置好JAVA环境并配置好MYSQL服务进程的电脑上运行。
5)只能使用MYSQL数据库。
4.3建议
1)采用B/S架构,实现网上预订功能;
2)数据库操作层要分成两个子层:实体类及数据库连接和数据库连接实现;
3)数据库连接中声明了各种对数据库的操作;
4)数据层连接实现是对于某一种数据库的操作的具体实现。
4.4测试结论
能兼容大部分数据输入错误,但是对于数据库的损坏并不能很好地恢复。
