# 摘 要
为了满足不同的用户群体的需求,中国移动的套餐业务更新频繁,每个月都会推出很多个性化的套餐服务,当前,中国移动创建套餐的方式是手动编辑上百行 SQL 语句之后插入到数据库中,一旦 SQL 语句中出现错误,将会导致重大损失,而人工检测 SQL 语句十分依赖经验丰富的员工,且很难发现 SQL 语句中的所有错误,本文针对该问题提出了一种基于数据挖掘的自动化检测 SQL 语句的解决方案。
本文通过协同过滤算法和关联规则挖掘算法分析历史套餐的 SQL 语句,对创建新套餐的 SQL 语句是否存在错误进行预测。其中利用协同过滤算法分析套餐与创建该套餐的 SQL 语句中涉及到的数据库表之间的关系,对可能遗漏或者多余的数据库表进行预警。为了能够检测数据库表内具体数值是否出错,本文利用关联规则挖掘算法对 SQL 语句进行关联分析,得到相应的频繁项集和置信度关系,并根据获得的频繁项集和置信度关系对新创建套餐的 SQL 语句中该数据库表的关键属性是否有错进行检测。
本文介绍了 SQL 测试系统的开发过程。本系统使用 Python 开发,通过 Web 应用的形式实现,前端使用 Bootstrap,后端使用 Django 进行开发。
关键词:关联规则挖掘算法;协同过滤算法;SQL 检测;系统实现
# 一、概述
## 1.1 论文选题研究的背景及意义
随着近年来移动通信技术不断发展和智能手机普及度的不断提高,移动端通信业务的用户数量和通信流量大大增加,移动通信的市场竞争非常激烈。为了扩大市场份额和更好的服务用户,中国移动的套餐业务更新频繁,每个月新上线的套餐数量都可以达到 20 左右,春节前后和暑假期间属于套餐更新的高峰,数量甚至可以超过 50 个。
为了满足不同的用户群体的需求,中国移动推出了很多个性化的套餐服务,现有的套餐编辑页面操作复杂,每当创建新套餐时都需要对空白界面进行编辑,需要创建套餐的员工填写上百个属性参数,而当新业务出现,涉及到了编辑页面上未包含的属性时,则需要对数据库直接操作进行手动添加。由于很多套餐之间存在相似关系,很多情况下新创建的套餐与数据库中已有的历史套餐可能只有很小的区别,只需要修改几个数值就可以得到新套餐,如果使用编辑页面进行操作,就相当于套餐间相同或相似的地方没有得到复用,反而需要创建套餐的员工从零开始配置,这样繁琐的操作导致了创建套餐的员工放弃使用图形化界面,反而直接使用手动编辑 SQL 语句进行数据库操作的方式来创建套餐。如果使用手动编辑 SQL 语句来操作数据库,创建套餐的员工就可以找相似的历史套餐,使用历史套餐的 SQL 语句并更改其中的部分参数再插入到数据库中,这样的创建方式虽然一定程度上降低了操作的复杂度,但是也存在对操作人员技术要求高、风险大、缺乏有效的验证手段等问题。
目前中国移动为了保证套餐属性修改的完善性,只能通过人工检测的方法对待插入数据库中 SQL 语句进行检索和识别,但是由于创建一个套餐会涉及大量的数据库表,而每个数据库表中又包含大量的属性,这就使得创建套餐的 SQL 语句非常复杂,其中包含的具体数值的数量十分庞大,如果只通过人工进行套餐属性关联性检索会耗费大量的人力物力,而且人工检测很难发现 SQL 语句中全部的错误,导致了业务质量难以保证,造成了用户流失和经济损失的潜在风险。
总的来说,由于移动套餐复杂多变且经常需要添加之前套餐中未出现过的业务的特殊属性,中国移动创建新套餐难以使用图形化编辑页面进行操作,现阶段只能通过 SQL 语句直接对数据库进行操作,而这样的创建套餐的方式存在对套餐配置人员技术要求高、风险大、操作复杂的问题。针对这个问题,本文提出了一种基于数据挖掘的 SQL 语句检测自动化的方法。通过本文所描述的方法,可以对创建套餐的 SQL 语句进行自动检测,并对套餐中可能存在的错误进行预警,将这些可能存在的错误展示给创建套餐的员工,员工根据这些错误的不同级别对 SQL 语句进行修改后再插入到数据库中。检测的过程不需要人工参与,可以降低人工成本和创建套餐的复杂度,提高中国移动套餐的业务质量。
本文所描述的方法对 SQL 语句进行处理和分析,从中挖掘有效的数据,并利用协同过滤算法和关联规则挖掘算法对此进行分析,推断出 SQL 中可能存在的错误。本论文选题目的在于充分利用现有的数据挖掘技术,对 SQL 语句进行自动化处理分析,自动检测出 SQL 语句中可能存在的错误,改变人工检测 SQL 语句费时费力的现状。
## 1.2 国内外现状分析
虽然软件测试行业目前在国内仍处于起步阶段,但是随着国家政策的支持和软件行业的蓬勃发展,软件测试也正在成长为一个新兴的行业。目前国内越来越多的互联网公司开始对软件测试逐渐重视了起来,作为软件开发过程中非常重要的一环[1]和控制软件质量的重要方式之一[2],软件测试的地位也得到不断提高。
软件测试主要分为传统的手工测试和自动化测试两种[3],对于软件行业较为发达的西方国家,传统的手工测试的主导地位已逐渐被自动化软件测试所取代,而由于起步较晚,所以目前国内的软件测试仍然以传统的手工测试为主。中国移动创建套餐复杂度高和风险大一定程度上反映了目前国内大多数互联网公司的现状:软件测试的自动化程度低,而人工进行软件测试又有难度高且易出错的问题。
SQL 语句检测与传统的软件测试不同,传统的软件测试考虑的问题主要是分支覆盖率以及行覆盖率等代码覆盖问题,而 SQL 语句的检测考虑的则是每一条记录中的数值是否存在错误,因此不能用常规的测试思路去处理,本文通过基于数据挖掘的协同过滤算法和关联规则挖掘算法来对 SQL 语句进行检测。对于数据挖掘技术,目前国外有较多的研究机构和组织,关于数据挖掘技术的刊物和网站也有很多,数据挖掘技术已经得到了广泛的应用[4]。而国内对于数据挖掘的研究起步稍晚,专门从事与数据挖掘的人主要分布在大学和极少数的大型互联网公司中,缺乏有关数据挖掘的实际应用[5]。协同过滤算法目前主要应用于个性化推荐系统中,无论在国内还是在国外都得到了广泛的使用,然而在软件测试领域协同过滤的应用并不多。由于可以用来发现大数据内隐藏的关键信息,关联规则挖掘算法的应用领域十分广泛,涵盖了国内外的商业及医疗等多个领域。
## 1.3 本章小节及论文结构
本章首先介绍了写作本文的原因和背景,并分析了软件测试和数据挖掘技术在国内外的发展现状,也对本文将实现什么样的系统进行了简单的描述。
第二章中介绍了实现本文所述的系统需要使用到的相关技术及算法,对本文所述的系统进行可行性分析。
第三章对系统进行分析,从系统需求、系统用例以及系统活动图三个方面进行分析。其中系统需求分析从功能性需求分析和给功能性需求分析两个方面入手。
第四章对系统进行了设计,从总体结构到每个功能模块进�
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
本系统的开发环境如下:操作系统为 Windows 10;开发平台为 PyCharm;数据库为 MySQL5.7。生产环境如下:云服务:腾讯云服务;操作系统为 Ubuntu 1604;内存为 2G;数据库为 MySQL5.7。 普通用户:普通用户可以注册和登录账号,但是刚注册的账号处于冻结状态,无法登录系统。管理员用户可以激活普通用户的账号,激活后用户可以登录到系统中。登录成功之后普通用户可以上传需要测试的 SQL 文件到系统中,系统会根据上传的文件自动生成任务;用户可以对自己创建的任务进行操作,当任务未执行时可以点击执行,当任务执行失败时可以点击重新执行,当任务执行成功后,页面上的开始测试按钮会变成查看报告按钮,用户可以点击查看报告按钮跳转到相应的页面查看测试报告;用户可以在测试报告页面查看生成的测试报告;用户可以登出系统。 管理员用户:与普通用户不同,管理员用户只能登录,无法注册,可以管理普通用户的账号,可以激活普通用户账号、冻结普通用户账号。管理员用户没有测试 SQL 文件的功能。
资源推荐
资源详情
资源评论
收起资源包目录
100010694-基于Python(Django)+MySQL 实现(Web)SQL智能检测系统的设计与实现.zip (86个子文件)
mobile
db.sqlite3 1024B
venv
pip-selfcheck.json 61B
pyvenv.cfg 75B
django_web
__init__.py 59B
tests.py 184B
admin.py 63B
migrations
__init__.py 1024B
0001_initial.py 2KB
apps.py 94B
controller
__init__.py 1024B
task_controller.py 1KB
sql_scan_controller.py 144B
user_controller.py 3KB
file_controller.py 1KB
report_controller.py 3KB
models.py 1KB
service
database_service.py 87B
file_service.py 6KB
task_service.py 3KB
md5_service.py 170B
test_service.py 229B
check_login_service.py 746B
mistake_service.py 157B
collaborative_filtering_service.py 4KB
user_service.py 3KB
apriori_service.py 11KB
report_service.py 6KB
const
task_state.py 91B
__pycache__
admin.cpython-36.pyc 186B
views.cpython-36.pyc 1KB
__init__.cpython-36.pyc 145B
models.cpython-36.pyc 2KB
views.py 952B
uwsgi.log 16KB
简明打印版.pdf 107KB
LICENSE 1KB
毕设-孙加辉8.0.docx 1.41MB
毕设-孙加辉2.0.docx 976KB
demo
__init__.py 55B
wsgi.py 385B
urls.py 2KB
settings.py 4KB
__pycache__
urls.cpython-36.pyc 2KB
settings.cpython-36.pyc 3KB
__init__.cpython-36.pyc 188B
wsgi.cpython-36.pyc 536B
uwsgi.pid 6B
templates
main.html 3KB
detail.html 7KB
reg.html 1KB
paper 60KB
list.html 4KB
404.html 142B
admin.html 4KB
index.html 2KB
report.html 7KB
file.html 3KB
.idea
vcs.xml 245B
workspace.xml 44KB
demo.iml 1KB
misc.xml 299B
modules.xml 260B
encodings.xml 249B
检测报告详细版.html 5KB
manage.py 536B
毕设-孙加辉6.0.docx 1.41MB
毕设-孙加辉3.0-重复率19%.docx 976KB
6609494_移动套餐智能检测系统的设计与实现_孙加辉.zip 1.69MB
毕设-孙加辉1.0.docx 927KB
毕设-孙加辉5.0.docx 1.41MB
毕设-孙加辉4.0.docx 1.41MB
__pycache__
manage.cpython-36.pyc 593B
毕设-孙加辉-2015301500092.docx 1.41MB
static
file
2.sql 10KB
css
main.css 151B
list.css 88B
theme.css 4KB
report.css 313B
fileinput-rtl.css 2KB
login.css 520B
toastr.min.css 7KB
fileinput.css 11KB
README.md 86KB
uwsgi.ini 193B
毕设-孙加辉7.0.docx 1.41MB
毕设-孙加辉.docx 1.69MB
共 86 条
- 1
资源评论
神仙别闹
- 粉丝: 2674
- 资源: 7640
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功