【股票交易系统】
——股票信息发布子系统
测试报告
组长:程政淋 3200105708@zju.edu.cn
组员:米博宇 黄亦霄 黄政 王梓霁 管欣怡
日期:2022/6/1
目录
1 引言 7
1.1 编写目的 7
1.2 项目背景 7
1.3 相关定义 8
1.4 系统概述 9
1.5 项目概述 11
2 测试概要 13
2.1 测试对象——网上信息发布子系统说明 13
2.2 测试内容 13
2.3 测试设备 14
2.4 测试进度安排 15
3 模块功能测试 15
3.1 模块说明 15
3.2 股票代码查询(按股票代码)模块 15
3.2.1 控制 15
3.2.2 输入和预期输出 16
3.2.3 测试结果 16
3.2.4 测试结果分析 17
3.2.5 测试结果截图 17
3.3 股票代码查询(按股票名称)模块 19
3.3.1 控制 19
3.3.2 输入和预期输出 19
3.3.3 测试结果 20
3.3.4 测试结果分析 20
3.3.5 测试结果截图 20
3.4 用户权限升级模块 22
3.4.1 控制 22
3.4.2 输入和预期输出 22
3.4.3 测试结果 23
3.4.4 测试结果分析 23
3.4.5 测试结果截图 23
3.5 用户订单退款模块 26
3.5.1 控制 26
3.5.2 输入和预期输出 26
3.5.3 测试结果 27
3.5.4 测试结果分析 27
3.5.5 测试结果截图 28
3.6 新闻展示与查看模块 30
3.6.1 控制 30
3.6.2 输入和预期输出 30
3.6.3 测试结果 30
3.6.4 测试结果分析 30
3.6.5 测试结果截图 31
3.7 日K线绘制模块 32
3.7.1 控制 32
3.7.2 输入和预期输出 32
3.7.3 测试结果 33
3.7.4 测试结果分析 33
3.7.5 测试结果截图 33
3.8月K线绘制模块 34
3.8.1 控制 34
3.8.2 输入和预期输出 35
3.8.3 测试结果 35
3.8.4 测试结果分析 35
3.8.5 测试结果截图 36
3.9年K线绘制模块 36
3.9.1 控制 36
3.9.2 输入和预期输出 37
3.9.3 测试结果 37
3.9.4 测试结果分析 37
3.9.5 测试结果截图 38
3.10股票其他信息模块 38
3.10.1 控制 38
3.10.2 输入和预期输出 38
3.10.3 测试结果 39
3.10.4 测试结果分析 39
3.10.5 测试结果截图 39
4 边界值与基路径测试 39
4.1 控制 40
4.2 测试输入与预期输出 40
4.2.1 股票代码输入 40
4.2.2 股票名称输入 40
4.2.3 日K线查看输入 41
4.2.4 月K线查看输入 41
4.2.5 年K线查看输入 41
4.3 测试结果 42
4.3.1 股票代码输入 42
4.3.2 股票名称输入 42
4.3.3 日K线查看输入 42
4.3.4 月K线查看输入 43
4.3.5 年K线查看输入 43
4.4 测试截图 44
4.4.1 股票代码输入 44
4.4.2 股票名称输入 45
4.4.3 用户权限升级输入 46
4.4.4 用户订单退款输入 48
4.4.5 日K线查看输入 49
4.4.6 月K线查看输入 50
4.4.7 年K线查看输入 50
4.5 测试结果分析 50
5 压力测试 51
5.1 测试简介 51
5.2 控制 51
5.3 输入 51
5.4 测试结果 51
6 其他模块接口测试 52
6.1 测试简介 52
6.2 测试对象说明 52
6.3 控制 52
6.4 测试内容 52
6.5 测试结果与分析 52
7 安全性测试 54
7.1 MD5加密算法 54
7.2 URL修改 54
8 对软件功能的结论 54
8.1 股票信息查询(按代码)模块 54
8.1.1 能力 54
8.1.2 限制 54
8.2 股票信息查询(按名称查询)模块 54
8.2.1 能力 54
8.2.2 限制 55
8.3 用户权限升级模块 55
8.3.1 能力 55
8.3.2 限制 55
8.4 用户订单退款模块 55
8.4.1 能力 55
8.4.2 限制 55
8.5 新闻展示与查看模块 55
8.5.1 能力 55
8.5.2 限制 55
8.6 日K线查看模块 56
8.6.1 能力 56
8.6.2 限制 56
8.7 月K线查看模块 56
8.7.1 能力 56
8.7.2 限制 56
8.8 年K线查看模块 56
8.8.1 能力 56
8.8.2 限制 56
8.9 股票信息发布模块 56
8.9.1 能力 56
8.9.2 限制 57
9 分析摘要 57
9.1 能力 57
9.2 缺陷和限制 57
9.3 测试资源消耗 57
1 引言
1.1 编写目的
从本阶段开始,项目进入正式开发阶段。这份总体设计报告的编写目的,是以本项目的需求分析说明书为依据,从总体设计的角度,明确系统管理子系统的总体架构、流程、数据结构、数据库设计。
目的在于:
- 为开发人员提供依据
- 为修改、测试、维护提供条件
- 明确各模块外部接口,内部接口,用户接口
- 项目负责人按计划说明书的要求布置和控制开发工作全过程
本说明书的预期读者包括:
- 软件客户
- 项目经理
- 测试人员
- 项目管理和开发人员
- 系统维护人员
1.2 项目背景
软件系统名称
- 股票交易系统
任务提出者
- 软件工程基础课程任课教师-王新宇
软件开发者
- 浙江大学2021-2022学年夏学期软件工程基础课程学生项目组
用户
- 管理员、普通用户、高级用户
实现该软件的计算机网络
- 由若干台PC机组成的局域网
项目相关背景介绍
浙江大学软件工程基础课程分为理论课与实践课两个部分。在理论课中,教师有选择地介绍了与软件工程基础相关的理论;强调并确定了适用于整个软件生命期的基本原则,全面而深入地介绍了这些基本原则在软件设计、规范、验证、软件生产过程和管理活动中的运用。而实验课采取分组形式完成,每5个学生为一组,分别设有组长、主程序员、程序员、测试员、文档员等角色。本次课程,教师选取股票交易系统作为综合性实验题目。其中我组主要负责网上信息发布子系统,实现股票信息查询、股票信息发布、行业新闻浏览等功能。
1.3 相关定义
(1)MySQL
一个小型关系型数据库管理系统。
(2)JavaScript
JavaScript是一种面向对象的动态类型的区分大小写的客户端脚本语言。
(3)SQL注入
通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。
(4)数据库连接池
数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,这项技术能明显提高对数据库操作的性能。
(5)UTF-8
UTF-8是 UNICODE 的一种变长字符编码,又称万国码安全证书。安全证书是在进行网上交易时的身份证,或者说是私人钥匙,安全证书是唯一的,与任何其他人的证书都不相同。
(6)MD5加密算法 Message Digest Algorithm
MD5(消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
(7)HTML5
HTML5是HTML最新的修订版本,由万维网联盟(W3C)于2014年10月完成标准制定。目标是取代1999年所制定的HTML 4.01和XHTML 1.0标准,以期能在网际网路应用迅速发展的时候,使网路标准达到符合当代的网路需求。
(8)Node.js
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。
(9)Django
Django是一个开源的Web应用框架,由Python写成。采用了MTV的框架模式,即模型M,视图V和模版T。使用这种架构,程序员可以方便、快捷地创建高品质、易维护、数据库驱动的应用程序。
1.4 系统概述
(1)证券账户开户系统
办理证券帐户是走进股市的第一步。证券帐户可以视为投资者进入股票交易市场的通行证,只有拥有证券账户,才能进场买卖证券。 想要开设证券帐户,开户人必须不是国家规定禁止开户的四类人员,其他人员均可以凭 相关证件到交易所申请开设证券帐户。证券帐户分为两种,分别时自然人开设的个人帐户,以及法人帐户。每个投资者,都只能开立一个证券帐户,并仅限于本人使用。 自然人开立的证券帐户为个人帐户。开立个人帐户时,投资者必须持有效的身份证件(一 般为居民身份证)去证券交易所指定的证券登记机构或会员证券公司办理名册登记并开立证券帐户。
(2)资金账户开户系统
投资者委托买卖股票,须事先在证券经纪商处开立证券交易结算资金帐户,资金帐户用于投资者证券交易的资金清算,记录资金的币种,余额和变动情况。资金账户开设时,需提交本人身份证与证券账户卡,并将资金帐户和证券帐户相关联, 投资者在资金帐户中的存款可随时提取,证券经纪商按活期存款利率定期计付利息并自动转 入投资者的资金帐户。投资者委托买入时,资金帐户要有足够的余额。资金帐户需要设置交易密码,以便在交易客户端使用。另外,还需要设置及取款密码,用于从资金帐户里面取出 资金。帐户开设完毕,用户会得到一张类似于银行卡的,资金帐户卡片。通过在证券经纪商 指定的交易客户端设备上面刷卡,并输入资金帐户设置的密码登陆,便可以发出买卖股票的指令,查看资金帐户的资金情况和证券帐户内的股票信息。
资金帐户密码可以有两张方法修改。
1. 投资者可以在证券经纪商处在开设资金帐户的设备上,通过输入原有密码和新密码来修改。
2. 投资者还可以在证券交易客户端通过输入原有密码和新密码修改。
(3)交易客户端
投资者在开办完证券帐户并在证券经纪商处开立证券交易结算资金帐户以后,就可以通过交易客户端委托证券经纪商进行股票的买卖交易了。目前存在的委托方式有很多种,主要有以下3种:
• 交易设备:投资者持资金帐户卡在证券经纪商指定的刷卡设备处刷卡,并输入验证密码。然后就
可以发出委托,进行交易。这是最早,也是最常见的委托方式。
• 网络:投资者通过登陆证券经纪商指定的网址,通过必要的用户和密码验证登陆。然后发出可以
发出委托,进行交易。
• 电话:投资者通过申请,然后就可以致电证券经纪商指定的电话号码,通过必要的用户和密码验
证,然后根据语音提示,发出委托。
用户登陆客户端之后,可以查询证券账户持有的股票。界面将会显示股票的名称、总数,现在价
格、持有成本与持有股票损益。用户还可以查看资金账户内的资金信息,并且根据资金与股票信息发
出购买、出售股票的指令进行交易。
(4)中央交易系统子系统
中央交易系统是整个股票交易过程的核心部分。主要目的是读取交易双方的买卖指令,根据一定的匹配原则,进行股票交易,并将交易结果返回给用户。中央交易系统的稳定高效运行对于股票交易的正常运作起到决定性的作用,因此开发一个安全高效的中央交易系统尤其重要。中央交易系统主要完成的功能有指令撮合、记录交易结果、涨跌停限制。实现根据时间优先及价格优先的原则,对符合条件的指令予以成交;将交易结果返回给交易双方;限制涨跌的最大幅度。最后,移除在当日没有完成交易的指令。
(5)网上信息发布子系统
网上信息发布是股票交易系统的模块之一,在此模块中,用户可以通过股票名称或代码查询股票并获得其最新交易结果以及近期交易的统计信息,如股价、涨跌、K线图等,还可以获得相关公司的近期新闻,以便其对股价做出预测并制定交易策略。此外,该模块还应支持对为付费用户提供更高级的功能,如更详细的统计信息、更个性化的投资指导等。
(6)交易系统管理子系统
实现交易系统管理员对交易系统监控管理的功能。开发一个工作人员管理界面,通过识别不同用户的授权,可以查看不同股票的所有指令的数量,价格以及买卖数量的全部信息。
管理员用户名和密码通过验证后,显示操作界面,包括可供查看的股票列表,修改密码,股票指数等必要信息。用户通过在列表里面选择股票名查看股票盘中的实时交易情况。当某种股票出现交易异常或者股票公司有重要信息披露的时候,需要暂停股票的交易。授权的管理员通过管理客户端将某种股票的交易暂时停止。当交易重新开放的条件成熟以后,管理员可以重新启动股票的撮合。同时,在此模块中,管理员可以在正确输入原有密码后,修改登陆密码。
1.5 项目概述
股票交易系统是用户进行股票查询、交易的大型系统。上市企业可在平台注册后交易本公司股票,用户可在完成相关手续后开通账户进行股票交易,也可以即使获取股价及其变化趋势,相关新闻等关键信息。
股票交易系统由证券账户业务、资金账户业务、交易客户端、股票中央交易系统、网上信息发布、交易系统管理共六个模块构成。网上信息发布是股票交易系统的模块之一,在此模块中,用户可以通过股票名称或代码查询股票并获得其最新交易结果以及近期交易的统计信息,如股价、涨跌、K线图等,还可以获得相关公司的近期新闻,以便其对股价做出预测并制定交易策略。此外,该模块还应支持对为付费用户提供更高级的功能,如更详细的统计信息、更个性化的投资指导等。
网上信息发布在整个股票交易系统中是一个核心模块,是用户获取股市信息的关键渠道。
2 测试概要
2.1 测试对象——网上信息发布子系统说明
股票信息发布子系统设置普通用户和付费用户两种身份。本系统的界面设计应该简洁直观、布局合理、信息呈现清晰、重点内容突出,操作应方便、容易上手,性能应实时、准确。作为股票交易系统中的网上信息发布子系统,我组根据需求实现了相应功能,并将本系统分为了9个模块——股票信息查询(按股票代码)模块、股票信息查询(按股票名称)、用户权限升级模块、用户订单退款模块、新闻查询与展示模块、日K线查询模块、月K线查询模块、年K线查询模块、股票其他信息发布模块。
2.2 测试内容
测试名称 | 目的 | 内容 |
---|---|---|
模块功能测试 | 检测各个模块的功能是否全部实现 | 根据《总体设计说明书》的要求针对各个模块进行功能测试,尽可能保证测试项覆盖所有功能和各种功能条件组合。 |
边界值测试 | 检测系统能否正常处理边界值 | 在一些存在边界值问题的数据里分别输入边界 值,观察系统反应,检测系统的应对能力。 |
压力测试 | 测试系统的承受能力 | 对子系统进行超过规定性能指标的测试,包括系统能够在压力过程中避免明显的性能下降,以及在压力后的及时恢复。 |
模块接口测试 | 测试与其他模块的接口是否完好,能否最后实现集成测试 | 运行本子系统,观察数据库里的数据变化,检查子系统间的交互。 |
2.3 测试设备
硬件设备1:
硬件设备2:
硬件设备3:
软件设备:
Chrome/Edge/Firefox/IE 等:测试网站在不同浏览器上的可用性。
压力测试辅助工具Ali。
阶段 | 内容 | 时间 |
---|---|---|
第一阶段 (预备阶段) |
测试人员阅读本子系统的设计文档,熟悉各个功能 模块所实现的具体功能,了解本子系统各个输入数 据的边界情况。同时,寻找用于测试相关的工具。 | 5月28日 |
第二阶段 (准备阶段) |
测试人员根据各个功能模块的功能,编写测试用例,准备好测试所使用的输入数据。 | 5月29日 |
第三阶段 (测试阶段) |
测试人员针对已经开发出来的子系统,用测试用例对系统进行模块功能测试,找出本子系统中存在的缺陷或错误。 | 6月2日 |
第四阶段 (后期阶段) |
本子系统编码人员根据测试阶段的结果调整程序代码,修复存在的缺陷或错误。 | 6月3日 |
2.4 测试进度安排
3 模块功能测试
3.1 模块说明
本系统设置两种身份:普通用户与付费用户,共划分为9个功能模块,分别为股票信息查询(按股票代码)模块、股票信息查询(按股票名称)、用户权限升级模块、用户订单退款模块、新闻查询与展示模块、日K线查询模块、月K线查询模块、年K线查询模块、股票其他信息发布模块。
3.2 股票代码查询(按股票代码)模块
3.2.1 控制
本模块测试的输入控制方式为人工输入需要查询的股票代码,然后观察是否能显示模糊查找的下拉列表以及能否跳转到正确页面。
控制操作顺序:
1. 以任意身份登录,进入网上信息发布的全部带有搜索框的页面。
1. 向搜索框中输入数据库中股票代码的部分字符,观察能否显示相似股票代码的下拉列表。
1. 若成功显示下拉列表,鼠标点击列表中数据项,观察能否自动补全输入框中股票代码。
1. 点击查询按钮,观察能否跳转到股票详情页。
1. 输入不存在的股票代码,观察是否显示下拉列表,点击搜索按钮,观察能否正确提示股票不存在。
3.2.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 向搜索框中输入数据库中股票代码的部分字符 | 显示相似股票代码的下拉列表 |
2 | 点击下拉列表数据项 | 搜索框内股票代码自动补全 |
3 | 自动补全后点击查询按钮 | 成功跳转到对应股票详情页面。 |
4 | 向搜索框中输入数据库中不存在的股票代码 | 不显示下拉列表 |
5 | 输入不存在的股票代码后点击查询按钮 | 提示股票不存在 |
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 向搜索框中输入数据库中股票代码的部分字符 | 与预期结果一致 | Pass |
2 | 点击下拉列表数据项 | 与预期结果一致 | Pass |
3 | 自动补全后点击查询按钮 | 与预期结果一致 | Pass |
4 | 向搜索框中输入数据库中不存在的股票代码 | 与预期结果一致 | Pass |
5 | 输入不存在的股票代码后点击查询按钮 | 与预期结果一致 | Pass |
3.2.3 测试结果
3.2.4 测试结果分析
本模块的测试主要集中于验证能否实现股票代码的模糊搜索和能否从数据库中获取正确查询结果。经过检验,本模块能根据部分输入内容展示相似股票代码并提供自动补全功能,并能根据搜索框中内容进行查找并跳转到正确的页面。由此可判断该模块能正确实现相关功能。
3.2.5 测试结果截图1.查询存在股票
2.查询股票不存在
3.3 股票代码查询(按股票名称)模块
3.3.1 控制
本模块测试的输入控制方式为人工输入需要查询的股票名称,然后观察是否能显示模糊查找的下拉列表以及能否跳转到正确页面。
控制操作顺序:
1. 以任意身份登录,进入网上信息发布的全部带有搜索框的页面。
2. 向搜索框中输入数据库中股票名称的部分字符,观察能否显示相似股票名称的下拉列表。
3. 若成功显示下拉列表,鼠标点击列表中数据项,观察能否自动补全输入框中股票名称。
4. 点击查询按钮,观察能否跳转到股票详情页。
5. 输入不存在的股票名称,观察是否显示下拉列表,点击搜索按钮,观察能否正确提示股票不存在。
3.3.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 向搜索框中输入数据库中股票名称的部分字符 | 显示相似股票名称的下拉列表 |
2 | 点击下拉列表数据项 | 搜索框内股票名称自动补全 |
3 | 自动补全后点击查询按钮 | 成功跳转到对应股票详情页面。 |
4 | 向搜索框中输入数据库中不存在的股票名称 | 不显示下拉列表 |
5 | 输入不存在的股票名称后点击查询按钮 | 提示股票不存在 |
3.3.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 向搜索框中输入数据库中股票名称的部分字符 | 与预期结果一致 | Pass |
2 | 点击下拉列表数据项 | 与预期结果一致 | Pass |
3 | 自动补全后点击查询按钮 | 与预期结果一致 | Pass |
4 | 向搜索框中输入数据库中不存在的股票名称 | 与预期结果一致 | Pass |
5 | 输入不存在的股票名称后点击查询按钮 | 与预期结果一致 | Pass |
3.3.4 测试结果分析
本模块的测试主要集中于验证能否实现股票名称的模糊搜索和能否从数据库中获取正确查询结果。经过检验,本模块能根据部分输入内容展示相似股票名称并提供自动补全功能,并能根据搜索框中内容进行查找并跳转到正确的页面。由此可判断该模块能正确实现相关功能。
3.3.5 测试结果截图
1.查询股票名称存在
2.查询股票不存在
3.4 用户权限升级模块
3.4.1 控制
本模块测试的输入控制方式为用户在权限升级页面选择要开通的高级权限时长(通过选框),完成支付后其权限情况更新。若其原先为普通用户,则用户界面显示其权限变为高级用户并显示到期时间;若其原先为高级用户,则其到期时间根据开通时长相应延期。
控制操作顺序:
1. 以普通用户身份登录,进入权限升级界面。
2. 任意选择高级权限开通时长,观察支付界面能否正常弹出。
3. 若成功弹出支付界面,进行支付,观察用户界面中权限状况、到期时间是否被正确设置,能否查看高级用户内容。
4. 以普通用户身份登录,进入权限升级界面。
5. 任意选择高级权限开通时长,观察支付界面能否正常弹出。
6. 若成功弹出支付界面,进行支付,观察用户界面中到期时间是否被正确更新。
7. 弹出支付界面后在限制时间内未完成支付,观察权限情况是否被更新。
3.4.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 以普通用户身份登录,进入权限升级界面,任意选择高级权限开通时长 | 弹出支付界面 |
2 | 普通用户状态下完成支付 | 权限升级为高级用户,根据开通时长正确设置到期时间 |
3 | 以高级用户身份登录,进入权限升级界面,任意选择高级权限开通时长 | 弹出支付界面 |
4 | 高级用户状态下完成支付 | 权限仍为高级用户,根据开通时长正确延长到期时间 |
5 | 未完成支付 | 权限状态和到期时间不变 |
3.4.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 以普通用户身份登录,进入权限升级界面,任意选择高级权限开通时长 | 与预期输出一致 | Pass |
2 | 普通用户状态下完成支付 | 与预期输出一致 | Pass |
3 | 以高级用户身份登录,进入权限升级界面,任意选择高级权限开通时长 | 与预期输出一致 | Pass |
4 | 高级用户状态下完成支付 | 与预期输出一致 | Pass |
5 | 未完成支付 | 与预期输出一致 | Pass |
3.4.4 测试结果分析
本模块的测试主要集中于系统能否根据用户当前权限状况、开通时长和支付状况对其权限状况进行正确的修改。经过测试,当用户为普通用户时,开通高级权限并成功支付可使其变为高级用户,并设置正确的到期时间;当用户为高级用户时,开通高级权限并成功支付可使其到期时间相应延长。而无论用户权限状态如何,如果没有成功支付,其权限状况不变。
1. ** 测试结果截图**
1.已经是高级用户,升级续费
2.普通用户升级
3.信息输入不完整
3.5 用户订单退款模块
3.5.1 控制
本模块测试的输入控制方式为用户在账户信息页面-高级用户页面选择退款,退款后其权限情况更新。若用户为高级用户且在高级会员试用期(7天)内,则提示退款成功,且用户权限变为普通用户;否则提示不是高级用户,或者退款期已过,不可退款。
控制操作顺序:
- 以在退款期内的高级用户身份登录,进入账户信息页面。
- 选择退款,观察是否正常弹出退款成功的提示。
- 若成功弹出,观察用户界面中权限状况是否被正确设置,能否查看高级用户内容。
- 以超出退款期的高级用户身份登录,进入账户信息页面。
- 选择退款,观察是否返回错误信息,提示无法退款。
- 若成功弹出,观察用户界面中权限状况是否被正确设置,能否查看高级用户内容。
- 以普通用户身份登录,进入账户信息页面。
- 选择退款,观察是否返回错误信息,提示无法退款。
- 未登录状态下进入账户信息页面。
- 选择退款,观察是否返回错误信息并跳转至登录页面。
3.5.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 以退款期内的高级用户身份登录,进入账户信息界面,选择退款 | 返回成功信息,提示退款成功,权限变更为普通用户 |
2 | 以超出退款期的高级用户身份登录,进入账户信息界面,选择退款 | 返回错误信息,提示不能退款,权限仍为高级用户 |
3 | 以普通用户身份登录,进入账户信息界面,选择退款 | 返回错误信息,提示不能退款,权限不变 |
4 | 未登录情况下,进入账户信息界面,选择退款 | 返回错误信息,跳转至登录界面 |
3.5.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 以退款期内的高级用户身份登录,进入账户信息界面,选择退款 | 与预期输出一致 | Pass |
2 | 以超出退款期的高级用户身份登录,进入账户信息界面,选择退款 | 与预期输出一致 | Pass |
3 | 以普通用户身份登录,进入账户信息界面,选择退款 | 与预期输出一致 | Pass |
4 | 未登录情况下,进入账户信息界面,选择退款 | 与预期输出一致 | Pass |
3.5.4 测试结果分析
本模块的测试主要集中于系统能否根据用户当前登录状态、权限状况和试用状况对其退款操作进行正确反馈并且对用户权限进行正确修改。经过测试,当用户为退款期内的高级用户时,可成功退款,且其权限变更为普通用户;当用户为超出退款期的高级用户或普通用户时,不可退款,权限不变;当用户未登录时,不可退款。
3.5.5 测试结果截图
高级用户退款
普通用户不可退款
未登录时进行退款
超出退款时间
3.6 新闻展示与查看模块
3.6.1 控制
本模块测试的输入控制方式为用户在首页点击新闻,跳转到对应新闻网站。
控制操作顺序:
1.在首页点击新闻链接。
2.观察是否跳转到链接对应的新闻网站。
3.6.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 在首页点击新闻链接 | 用户离开股票信息发布首页,跳转至对应的新闻网站 |
3.6.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 在首页点击新闻链接 | 与预期输出一致 | Pass |
3.6.4 测试结果分析
本模块的测试主要集中于系统能否成功跳转至链接对应的新闻网页。经过测试,该功能实现良好。
3.6.5 测试结果截图
新闻展示与查看
3.7 日K线绘制模块
3.7.1 控制
本模块测试的输入控制方式为通过列表选定需要查看日K线图的单只股票,并点击进行打开访问。同时使用鼠标对其需要显示具体数据的点位,图表会在辅助窗口处自动显示相应的细节信息。若发出退出请求,即退出该显示界面,应销毁图表数据,并且进行退出操作。
控制操作顺序:
1.登录普通用户账户,进入股票信息显示界面。
2.选取股票,点击显示日K线图,观察是否能够成功显示。
3.若成功显示日K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情。
4.点击退出,观察是否成功退出显示界面。
3.7.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 登录普通用户账户,进入股票信息显示界面 | 成功进入股票信息显示界面 |
2 | 选取股票,点击显示日K线图,观察是否能够成功显示 | 能够成功显示日K线图 |
3 | 若成功显示日K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情 | 成功在辅助窗口显示数据详情 |
4 | 点击退出,观察是否成功退出显示界面 | 成功退出显示界面 |
3.7.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 登录普通用户账户,进入股票信息显示界面 | 成功进入股票信息显示界面 | Pass |
2 | 选取股票,点击显示月K线图,观察是否能够成功显示 | 能够成功显示月K线图 | Pass |
3 | 若成功显示月K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情 | 成功在辅助窗口显示数据详情 | Pass |
4 | 点击退出,观察是否成功退出显示界面 | 成功退出显示界面 | Pass |
3.7.4 测试结果分析
本模块的测试主要集中于日K线显示的正确性,确保显示后的图像数据正确无误并且不会产生错误。经过检验,本模块在显示日K线信息时能够正确地渲染和显示,也能够正确地更新股票数据信息,在退出时也能够得到正确的退出结果,由此可以判断该模块能够正确实现相应的功能。
3.7.5 测试结果截图
由于数据随机生成,因此绘制可能与常规k线图表现不一致。
使用实际样例绘制如下图:
数据随机生成,绘制日k图
3.8月K线绘制模块
3.8.1 控制
本模块测试的输入控制方式为通过列表选定需要查看月K线图的单只股票,并点击进行打开访问。同时使用鼠标对其需要显示具体数据的点位,图表会在辅助窗口处自动显示相应的细节信息。若发出退出请求,即退出该显示界面,应销毁图表数据,并且进行退出操作。
控制操作顺序:
1. 登录普通用户账户,进入股票信息显示界面。
1. 选取股票,点击显示月K线图,观察是否能够成功显示。
1. 若成功显示月K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情。
1. 点击退出,观察是否成功退出显示界面。
序号 | 输入 | 预期输出 |
---|---|---|
1 | 登录普通用户账户,进入股票信息显示界面 | 成功进入股票信息显示界面 |
2 | 选取股票,点击显示月K线图,观察是否能够成功显示 | 能够成功显示月K线图 |
3 | 若成功显示月K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情 | 成功在辅助窗口显示数据详情 |
4 | 点击退出,观察是否成功退出显示界面 | 成功退出显示界面 |
3.8.2 输入和预期输出
3.8.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 登录普通用户账户,进入股票信息显示界面 | 成功进入股票信息显示界面 | Pass |
2 | 选取股票,点击显示月K线图,观察是否能够成功显示 | 能够成功显示月K线图 | Pass |
3 | 若成功显示月K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情 | 成功在辅助窗口显示数据详情 | Pass |
4 | 点击退出,观察是否成功退出显示界面 | 成功退出显示界面 | Pass |
3.8.4 测试结果分析
本模块的测试主要集中于月K线显示的正确性,确保显示后的图像数据正确无误并且不会产生错误。经过检验,本模块在显示月K线信息时能够正确地渲染和显示,也能够正确地更新股票数据信息,在退出时也能够得到正确的退出结果,由此可以判断该模块能够正确实现相应的功能。
1. ** 测试结果截图**
数据随机生成,绘制月k图
3.9年K线绘制模块
3.9.1 控制
本模块测试的输入控制方式为通过列表选定需要查看年K线图的单只股票,并点击进行打开访问。同时使用鼠标对其需要显示具体数据的点位,图表会在辅助窗口处自动显示相应的细节信息。若发出退出请求,即退出该显示界面,应销毁图表数据,并且进行退出操作。
控制操作顺序:
1. 登录普通用户账户,进入股票信息显示界面。
1. 选取股票,点击显示年K线图,观察是否能够成功显示。
1. 若成功显示年K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情。
1. 点击退出,观察是否成功退出显示界面。
3.9.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 登录普通用户账户,进入股票信息显示界面 | 成功进入股票信息显示界面 |
2 | 选取股票,点击显示年K线图,观察是否能够成功显示 | 能够成功显示年K线图 |
3 | 若成功显示年K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情 | 成功在辅助窗口显示数据详情 |
4 | 点击退出,观察是否成功退出显示界面 | 成功退出显示界面 |
3.9.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 登录普通用户账户,进入股票信息显示界面 | 成功进入股票信息显示界面 | Pass |
2 | 选取股票,点击显示年K线图,观察是否能够成功显示 | 能够成功显示年K线图 | Pass |
3 | 若成功显示年K线图使用鼠标对齐相应的数据点,观察是否在辅助窗口显示数据详情 | 成功在辅助窗口显示数据详情 | Pass |
4 | 点击退出,观察是否成功退出显示界面 | 成功退出显示界面 | Pass |
3.9.4 测试结果分析
本模块的测试主要集中于年K线显示的正确性,确保显示后的图像数据正确无误并且不会产生错误。经过检验,本模块在显示年K线信息时能够正确地渲染和显示,也能够正确地更新股票数据信息,在退出时也能够得到正确的退出结果,由此可以判断该模块能够正确实现相应的功能。
3.9.5 测试结果截图
1.数据随机生成,绘制年k图
3.10股票其他信息模块
3.10.1 控制
本模块测试的输入控制方式是访问一个统一的其他股票信息页面,点击相关链接,跳转到对应的详情页面。
控制操作顺序:
- 访问其他股票信息页面,观察是否显示。
- 点击任意链接,观察能否跳转至详情页面。
3.10.2 输入和预期输出
序号 | 输入 | 预期输出 |
---|---|---|
1 | 用户访问其他股票信息页面 | 显示其他股票信息页面 |
2 | 点击股票链接 | 跳转至对应详情页面 |
3.10.3 测试结果
序号 | 输入 | 实际输出 | 是否通过测试 |
---|---|---|---|
1 | 用户访问其他股票信息页面 | 与预期输出一致 | Pass |
2 | 点击股票链接 | 与预期输出一致 | Pass |
3.10.4 测试结果分析
本模块的测试主要集中于能否成功显示其他股票信息页面及能否成功跳转至链接对应页面。经测试,该功能实现良好。
3.10.5 测试结果截图
点击连接进行跳转
4 边界值与基路径测试
作为股票交易系统中的网上信息发布子系统,本系统的主要功能是展示股票信息、新闻信息和查询股票,大部分输入均是通过外部传输的方式进行而不是通过脚本输入的方式。脚本传输项若由内容由外部输入,则由接受该外部输入的子模块进行检查,本着对同组成员的信任,假定其传输给本模块的数据均为合法的、符合规定的数据。本系统唯一需要外部输入数据的模块为用户点击传递的信息。下面将进行这两项功能的边界值测试。
4.1 控制
本模块测试的输入控制方式是人工输入信息。控制操作顺序为:
1. 在需要填写数据框中填入待测数据边界值并予以确定。
2. 使用鼠标进行点击。
3. 等待系统反应。
4.2 测试输入与预期输出
4.2.1 股票代码输入
序号 | 输入 | 测试意图 | 系统预期响应 |
---|---|---|---|
1 | 不输入任何字符 | 空输入 | 查找失败 |
2 | 输入非英文字母或非数字字符 | 非法字符输入 | 查找失败 |
3 | 输入19个合法字符 | 边界以内的极大输入长度 | 查找成功 |
4 | 输入20个合法字符 | 边界输入长度 | 查找成功 |
5 | 输入21个合法字符 | 大于边界输入长度 | 第21个字符不允许继续输入 |
4.2.2 股票名称输入
序号 | 输入 | 测试意图 | 系统预期响应 |
---|---|---|---|
1 | 不输入任何字符 | 空输入 | 查找失败 |
2 | 输入非股票名称字符 | 非法字符输入 | 查找失败 |
3 | 输入19个合法字符 | 边界以内的极大输入长度 | 查找成功 |
4 | 输入20个合法字符 | 边界输入长度 | 查找成功 |
5 | 输入21个合法字符 | 大于边界输入长度 | 第21个字符不允许继续输入 |
4.2.3 日K线查看输入
序号 | 输入 | 测试意图 | 系统预期响应 |
---|---|---|---|
1 | 鼠标悬置在图表框外 | 检验图表的判定范围 | 辅助窗体不显示 |
2 | 在该页面停留,鼠标不断在各个点之间移动 | 检验页面显示的稳定性 | K线图不消失 |
4.2.4 月K线查看输入
序号 | 输入 | 测试意图 | 系统预期响应 |
---|---|---|---|
1 | 鼠标悬置在图表框外 | 检验图表的判定范围 | 辅助窗体不显示 |
2 | 在该页面停留,鼠标不断在各个点之间移动 | 检验页面显示的稳定性 | K线图不消失 |
4.2.5 年K线查看输入
序号 | 输入 | 测试意图 | 系统预期响应 |
---|---|---|---|
1 | 鼠标悬置在图表框外 | 检验图表的判定范围 | 辅助窗体不显示 |
2 | 在该页面停留,鼠标不断在各个点之间移动 | 检验页面显示的稳定性 | K线图不消失 |
4.3 测试结果
4.3.1 股票代码输入
序号 | 输入 | 系统响应 | 是否与预期一致 |
---|---|---|---|
1 | 不输入任何字符 | 查找失败 | 是 |
2 | 输入非英文字母或非数字字符 | 查找失败 | 是 |
3 | 输入19个合法字符 | 查找成功 | 是 |
4 | 输入20个合法字符 | 查找成功 | 是 |
5 | 输入21个合法字符 | 第21个字符不允许继续输入 | 是 |
4.3.2 股票名称输入
序号 | 输入 | 系统响应 | 是否与预期一致 |
---|---|---|---|
1 | 不输入任何字符 | 查找失败 | 是 |
2 | 输入非英文字母或非数字字符 | 查找失败 | 是 |
3 | 输入19个合法字符 | 查找成功 | 是 |
4 | 输入20个合法字符 | 查找成功 | 是 |
5 | 输入21个合法字符 | 第21个字符不允许继续输入 | 是 |
4.3.3 日K线查看输入
序号 | 输入 | 系统响应 | 是否与预期一致 |
---|---|---|---|
1 | 鼠标悬置在图表框外 | 辅助窗体不显示 | 是 |
2 | 在该页面停留,鼠标不断在各个点之间移动 | K线图不消失 | 是 |
4.3.4 月K线查看输入
序号 | 输入 | 系统响应 | 是否与预期一致 |
---|---|---|---|
1 | 鼠标悬置在图表框外 | 辅助窗体不显示 | 是 |
2 | 在该页面停留,鼠标不断在各个点之间移动 | K线图不消失 | 是 |
4.3.5 年K线查看输入
序号 | 输入 | 系统响应 | 是否与预期一致 |
---|---|---|---|
1 | 鼠标悬置在图表框外 | 辅助窗体不显示 | 是 |
2 | 在该页面停留,鼠标不断在各个点之间移动 | K线图不消失 | 是 |
4.4 测试截图
4.4.1 股票代码输入
4.4.2 股票名称输入
4.4.3 用户权限升级输入4.4.4 用户订单退款输入
4.4.5 日K线查看输入
4.4.6 月K线查看输入
4.4.7 年K线查看输入
4.5 测试结果分析
通过测试本系统的主要功能中展示股票信息、新闻信息和查询股票的功能,能够正确地执行相应的操作,同时针对异常情况能够做出正确的反馈。
5 压力测试
5.1 测试简介
不同于功能测试,压力测试的重点不是正确性,而是系统的执行效率。 本次压力测试的目的是测试网上信息发布子系统的承载能力,主要包括系统对大量出 错信息的处理;大规模用户同时发送请求时系统的最大负载能力、响应时间;系统对数据库读取大量数据的响应等。
5.2 控制
本次压力测试主要用到了一些自动化测试工具及对应的辅助工具,包括测试工具 Ali。
5.3 输入
30000条股票信息数据。
5.4 测试结果
能够正常完成股票的搜索和股票数据的显示。
6 其他模块接口测试
6.1 测试简介
本测试的目的主要是测试本子系统与其他子系统的接口是否完好,能否最后实现集成测试。因为采用的是以数据为中心的体系结构风格,所以与其他子系统的接口测试最终主要集中在与数据库的接口测试上。项目具体信息存放在数据库中,前端通过后端接口从数据库中读取信息,以及从请求中获取登陆状态,实现与其他子系统的交互。本子系统与其他子系统接口测试将主要测试与数据库的交互能否顺利进行以及用户登录信息能否正确从请求中获取。
6.2 测试对象说明
本测试的目的主要是测试本子系统与其他子系统的接口是否完好,能否最后实现集成测试。因为采用的是以数据为中心的体系结构风格,所以与其他子系统的接口测试最终主要集中在与数据库的接口测试上。项目具体信息存放在数据库中,前端通过后端接口从数据库中读取信息,以及从请求中获取登陆状态,实现与其他子系统的交互。本子系统与其他子系统接口测试将主要测试与数据库的交互能否顺利进行以及用户登录信息能否正确从请求中获取。
6.3 控制
本子系统的控制方式是,若用户未登录或登录为普通用户,则无法进入对应内容; 从其他模块可以正常转跳至本模块的页面,
6.4 测试内容
从其他模块点击转跳链接,检验是否能够转跳至本模块的页面,并且能够顺利地显示模块的相关内容。
6.5 测试结果与分析
点击链接按钮,成功转跳至股票信息发布页面,并且顺利显示本模块的相应内容。
测试截图:
本子系统的模块接口测试基本复合预期的测试结果,着重测试的部分是:本子系统和信息管理子系统、课程选择子系统的衔接和数据交互是否顺畅、准确,指定的功能是否完善。
7 安全性测试
7.1 MD5加密算法
MD5信息摘要算法(MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值,用于确保信息传输完整一致。
7.2 URL修改
针对普通用户登录的情况进行URL地址的修改,来检查安全防御措施是否到位,比如在新闻展示和发布页面手动调整新闻发布的网址,会提醒无法正常跳转并返回原来的页面。
8 对软件功能的结论
8.1 股票信息查询(按代码)模块
8.1.1 能力
用户可以通过输入股票代码的部分实现自动补全,再通过完整的股票代码进入股票详情页面。
8.1.2 限制
只能通过搜索框内的完整股票代码进行查询,无法从下拉列表直接跳转至详情页面。
8.2 股票信息查询(按名称查询)模块
8.2.1 能力
用户可以通过输入股票名称的部分实现自动补全,再通过完整的股票代码进入股票详情页面。
8.2.2 限制
只能通过搜索框内的完整股票名称进行查询,无法从下拉列表直接跳转至详情页面。
8.3 用户权限升级模块
8.3.1 能力
用户可以通过选择开通时长进行权限升级和续费。
8.3.2 限制
只支持某些固定时长的权限开通,不支持用户自定义开通时长。
8.4 用户订单退款模块
8.4.1 能力
用户可以正常进行订单的退款,同时还能检测退款的时间超过退款时间即不能成功退款。符合一定条件的用户可以实现订单退款。
8.4.2 限制
缺少二次确认的选项。
8.5 新闻展示与查看模块
8.5.1 能力
能够展示新闻界面,同时为用户提供转跳。用户可以通过首页链接跳转至对应网页查看新闻。
8.5.2 限制
用户只能查看有限的新闻信息,不支持关键词搜索。
8.6 日K线查看模块
8.6.1 能力
用户可以通过日K线图界面查看K线图,同时通过鼠标的移动读取K线图具体数据点的数据信息。
8.6.2 限制
用户只能获取有限的日K线图数据信息,无法实现图线的本地保存。
8.7 月K线查看模块
8.7.1 能力
用户可以通过月K线图界面查看K线图,同时通过鼠标的移动读取K线图具体数据点的数据信息
8.7.2 限制
用户只能获取有限的月K线图数据信息,无法实现图线的本地保存。
8.8 年K线查看模块
8.8.1 能力
用户可以通过年K线图界面查看K线图,同时通过鼠标的移动读取K线图具体数据点的数据信息
8.8.2 限制
用户只能获取有限的年K线图数据信息,无法实现图线的本地保存。
8.9 股票信息发布模块
8.9.1 能力
用户可以通过点击股票信息发布页的对应链接查看信息。
8.9.2 限制
用户只能获取有限的股票相关信息,不支持关键词搜索。
9 分析摘要
9.1 能力
经过模块功能测试、边界测试、压力测试、接口解释,本股票交易系统之网上信息发布子系统能够正常实现所有需求中的功能。作为股票交易系统中涉及股票信息发布的子模块,本系统在安全性上实施了一些措施来保证输入数据的安全性和搜索查询算法的高效运行,抵御得了一定的URL攻击。同时,作为信息发布系统,用户访问并发量等也是评价的重要指标之一,本模块在压力测试中表现良好,能够支持数千人同时访问,超过了系统设计规范中对此评价标准的要求。
总而言之,系统在正常实现设计文档中功能的同时,也在性能上拥有较为优秀的表现,是一次较为成功的系统实现。
9.2 缺陷和限制
由于本次软件工程基础的大作业时间比较紧迫,本系统在实现上仍然存在一定的问题和限制,比如界面还可以继续美化,K线的设计与用户的交互做的并不是很好,对于输入的内容也应该进行一些语法上更严格的检查,数据表的设计比较简单等缺陷,但是在基本的功能测试和压力测试上,我们小组的最终产品表现比较优秀,但是系统的性能依然有较高的提升空间。
9.3 测试资源消耗
测试由6个人在6台PC机上历时4天时间共同完成。