1 引言
1.1 编写目的
1.2 测试目标
1.3 读者对象
1.4 术语定义
2 环境搭建
2.1 测试硬件环境
2.2 软件环境
3 测试范围
3.1测试功能点
3.2 测试类型
3.3 准备工作
3.4 测试流程
4 测试用例
A 功能性性需求
4.1 爬虫测试
4.1.1 新浪网数据源
4.1.2 E展网数据源
4.1.3 大麦网数据源
4.1.4 聚橙网数据源
4.1.5 交通管制网数据源
4.1.6 永乐网数据源
4.1.7 异常天气网数据源
4.2 数据去重精确性测试
4.2.1 将多条重复标题数据存入mongodb数据库进行去重,打印到csv表
4.2.2 将标题文字重复关键词字数比例大于%65的数据存入数据库进行去重,打印到csv表
4.2.3 将标题文字重复关键词字数比例小于等于%65的数据存入数据库进行去重,打印到csv表
4.3 事件属性自动化提取精确性测试
4.3.1 根据大赛提供的体育赛事.演唱会.展会样本,用编写的体育.演唱会.展会事件属性自动化提 取算法,进行提取比对
4.4 事件画像-------可视化展示测试
4.4.1 将上海城市热度设定为最大,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度词云图
4.4.2 将上海城市热度设定为最小,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度词云图
4.4.3 将上海城市的第一天热度设定最低,第二天热度+1,依次类推.....,直到第6天热度-2,第 七天热度+1,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度折线图
4.5 每天爬取一次
4.5.1 因为在程序中时间管理员算法,在每天2点后查看数据库,记录数据是否逐天增加
5 测试结果及缺陷分析
5.1 测试执行情况与记录
5.1.1 缺陷汇总
5.1.2 缺陷分析
5.1.3 缺陷残留以及未解决问题
5.2 测试结论
6 影响方案的意外因素及建议
6.1 意外因素
6.2 建议
B 非功能性测试
1、引言
1.1 编写目的
1.2 测试目标
将对基于互联网大数据的事件智能抓取和画像的测试方案,测试范围,测试的软件硬件环境,测试进度,测试流程进行详细的定义和整体的描述
1.3 读者对象
本方案的预期读者是:项目负责人,测试人员,运维人员,和其他相关人员
1.4 术语定义
术语 | 定义 |
---|---|
测试需求 | 组件/系统中能被一个或多个测试用例验证的条目或事件 |
性能测试 | 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试 |
2 环境搭建
2.1 测试硬件环境
资源名称/类型 | 配置 |
---|---|
测试PC | Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz,3401 Mhz,8GB |
操作系统 | windows7 64位 |
2.2 软件环境
资源名称类型 | 配置 |
---|---|
数据库 | mongodb3.4.3 |
应用软件 | python 3.6.1(64bat) |
3 测试范围
编号 | 测试点 | 对应算法 | 备注 |
---|---|---|---|
1 | 爬取数据源 | 定向爬虫 | |
2 | 数据清洗去重 | 去重算法 | |
3 | 属性提取 | ||
4 | 画像建模,可视化展示 | ||
5 | 定时启动爬虫 |
3.1 测试功能点
类型 | 定义 |
---|---|
功能性需求 | 有具体完成内容的要求 |
非功能性需求 | 是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等 |
3.2 测试类型
3.3 准备工作
1 测试功能点全部通过功能测试,确保功能上没有问题
2 测试环境搭建
3 准备好数据源网站
4 创建测试用例,并配置好每个用例的环境
5 测试过程中保存好测试数据和分析结果,并规范对执行结果进行命名
3.4 测试流程
4 测试用例
A功能性需求测试
4.1.1 新浪网数据源
新浪网爬虫准确获取数据源测试,编写新浪网定向爬虫提取指定数据源
用例编号 | 1 |
---|---|
用例名称 | 定向爬取政治会议信息 |
参考信息 | 无 |
预期结果 | 结果以键值对方式存入数据库 |
环境要求 | Python3.6.1 网络良好 mongodb服务开启 |
运行结果 | 数据以键值对方式存入数据库 |
测试目的 | 能否准确获取给定数据源并存入数据库 |
4.1.2 E展网数据源
E展网准确获取数据源测试
用例编号 | 2 |
---|---|
用例名称 | 定向爬虫展会网信息 |
参考信息 | 比赛,给定的事件样本(类型展会网的事件样本) |
预期结果 | 数据以键值对存入,属性与样本属性相同 |
环境要求 | Python3.6.1 网络良好 mongodb服务开启 |
运行结果 | 数据以键值对存入,属性与样本属性相同 |
测试目的 | 能否准确获取数据源中数据属性 |
编写E展望定向爬虫提取指定数据
4.1.3 大麦网数据源
大麦网爬虫准确获取数据源测试
编写大麦网定向爬虫提取指定数据源
用例编号 | 3 |
---|---|
用例名称 | 定向爬虫大麦网信息 |
参考信息 | 比赛,给定的事件样本(类型演唱会,体育的事件样本) |
预期结果 | 数据以键值对存入,属性与样本属性相同 |
环境要求 | Python3.6.1 网络良好 mongodb服务开启 |
运行结果 | 数据以键值对存入,属性与样本属性相同 |
测试目的 | 能否准确获取数据源中数据属性 |
4.1.4 聚橙网数据源
聚橙网爬虫准确获取数据源测试
编写聚橙网定向爬虫提取指定数据源
用例编号 | 4 |
---|---|
用例名称 | 定向爬虫聚橙网信息 |
参考信息 | 比赛,给定的事件样本(类型体育,演唱会的事件样本) |
预期结果 | 数据以键值对存入,属性与样本属性相同 |
环境要求 | Python3.6.1 网络良好 mongodb服务开启 |
运行结果 | 数据以键值对存入,属性与样本属性相同 |
测试目的 | 能否准确获取数据源中数据属性 |
4.1.5 交通管制网数据源
交通管制网爬虫准确获取数据源测试
编写交通管制网网定向爬虫提取指定数据源
用例编号 | 5 |
---|---|
用例名称 | 定向爬虫交通管制网网信息 |
参考信息 | 无 |
预期结果 | 数据以键值对存入,属性与样本属性相同 |
环境要求 | Python3.6.1 网络良好 mongodb服务开启 |
运行结果 | 数据以键值对存入,属性与样本属性相同 |
测试目的 | 能否准确获取数据源中数据属性 |
4.1.6 永乐网数据源
永乐网爬虫准确获取数据源测试,编写永乐网定向爬虫提取指定数据源
用例编号 | 6 |
---|---|
用例名称 | 定向爬虫永乐网信息 |
参考信息 | 比赛,给定的事件样本(类型体育,演唱会的事件样本) |
预期结果 | 数据以键值对存入,属性与样本属性相同 |
环境要求 | Python3.6.1 网络良好 mongodb服务开启 |
运行结果 | 数据以键值对存入,属性与样本属性相同 |
测试目的 | 能否准确获取数据源中数据属性 |
4.1.7 异常天气网数据源
异常天气网爬虫准确获取数据源测试,编写异常天气网定向爬虫提取指定数据源
用例编号 | 7 |
---|---|
用例名称 | 定向爬虫异常天气网信息 |
参考信息 | 无 |
预期结果 | 数据以键值对存入,属性与样本属性相同 |
环境要求 | Python3.6.1 网络良好 mongodb服务开启 |
运行结果 | 数据以键值对存入,属性与样本属性相同 |
测试目的 | 能否准确获取数据源中数据属性 |
4.2 数据去重精确性测试
4.2.1 将多条重复标题数据存入mongodb数据库,经过去重算法后以csv格式打印出
用例编号 | 8 |
---|---|
用例名称 | 将多条重复标题数据存入mongodb数据库,经过去重算法后以csv格式打印出 |
参考信息 | 去重算法设计 |
预期结果 | 与数据库比对去重后的csv表,数据库重复数据,在csv表中不存在 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 去重后csv表中没有相同标题的数据 |
测试目的 | 能否去除相同数据 |
4.2.2 将标题文字重复关键词字数比例大于%65的数据存入数据库进行去重,打印到csv表
用例编号 | 9 |
---|---|
用例名称 | 将标题文字重复关键词字数比例大于%85的数据存入数据库进行去重,打印到csv表 |
参考信息 | 去重算法设计 |
预期结果 | 与数据库比对去重后的csv表,数据库重复数据,在csv表中不存在 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 去重后csv表中有相同标题的数据 |
测试目的 | 能否去除相似度%65的相同数据 |
测试结果 | 能去除相似度%65以上的标题 |
4.2.3 将标题文字重复关键词字数比例小于等于%65的数据存入数据库进行去重,打印到csv表
用例编号 | 10 |
---|---|
用例名称 | 将标题文字重复关键词字数比例小于等于%85的数据存入数据库进行去重,打印到csv表 |
参考信息 | 去重算法设计 |
预期结果 | 与数据库比对去重后的csv表,数据库重复数据,在csv表中不存在 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 去重后csv表中有相同标题的数据 |
测试目的 | 能去除相似度小于等于%65的相同数据 |
测试结果 | 不能去除相似度%65以下的标题 |
4.3事件属性自动化提取准确性测试
4.3.1 根据大赛提供的体育.展会.演唱会赛事样本数据,用编写的体育.演唱会.展会事件属性自动化提取算法,进行提取比对
用例编号 | 11 |
---|---|
用例名称 | 根据大赛提供的体育.展会.演唱会赛事样本数据,用编写的体育.展会.演唱会事件属性自动化提取算法,进行提取比对 |
参考信息 | 件属性自动化提取算法 |
预期结果 | 与样本数据比对属性提取一致 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 多次比对误差率小于%15 |
测试目的 | 能够精确提取属性 |
测试结果 | 经测试,精确度达到%85左右 |
4.4 事件画像-------可视化展示测试
4.4.1 将上海城市热度设定为最大,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度词云图
用例编号 | 12 |
---|---|
用例名称 | 将上海城市热度设定为最大,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度词云图 |
参考信息 | 无 |
预期结果 | 词云图中,该城市(上海)所占区域最大 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 上海区域最大 |
测试目的 | 测试热度最大是否,改词的区域最大 |
4.4.2 将上海城市热度设定为最小,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城热度词云图
用例编号 | 13 |
---|---|
用例名称 | 将上海城市热度设定为最小,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度词云图 |
参考信息 | 无 |
预期结果 | 词云图中,该城市(上海)所占区域最小 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 上海区域最小 |
测试目的 | 测试热度最小是否,改词的区域最小 |
4.4.3将上海城市的第一天热度设定最低,第二天热度+1,依次类推.....,直到第6天热度-2,第七天热度+1,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度折线图
用例编号 | 14 |
---|---|
用例名称 | 将上海城市的第一天热度设定最低,第二天热度+1,依次类推.....,直到第6天热度-2,第七天热度+1,将该数据插入到csv表中,事件画像gui程序遍历所有csv事件,画出七天城市热度折线图 |
参考信息 | 无 |
预期结果 | 折线图中,热度1~5天呈上升趋势,第六天下降,第七天上升 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 折线图上升,然后6天下降,七天上升 |
测试目的 | 测试折线图,是否根据热度上升而上升,热度降低而变低 |
B非功能性测试
4.5.1 因为在程序中时间管理员算法,在每天2点后查看数据库,记录数据是否逐天增加
用例编号 | 15 |
---|---|
用例名称 | 定时运行爬虫,查看数据库 |
参考信息 | 无 |
预期结果 | 数据库中数据增加,而且日志文件中记录程序运行时间 |
环境要求 | Python3.6.1 mongodb服务开启 |
运行结果 | 数据增加,日志文件记录 |
测试目的 | 测试爬虫能否按照特定的时间去运行 |
功能测试点 | 测试用例编号 | 缺陷汇总 | 缺陷分析 | 缺陷解决 | 残留缺陷 | 备注 |
---|---|---|---|---|---|---|
获取数据源数据 | 1,2,3,4,5,6,7 | 0 | 0 | 0 | 0 | |
去重算法 | 8,9,10 | 去重精度达不到100%,就会导致不同数据被清洗掉 | 数据源的关键词相似度大,时间,地点,等,不可区分性 | 针对时间,地点,等关键词进行着重区分 | ||
属性自动化提取 | 11 | 存在小几率性的误差 | 数据关键词太少,难以区分 | 1 | 1 | |
可视化展示 | 12,13,14 | 0 | 0 | 0 | 0 | |
定时爬取 | 15 | 0 | 0 | 0 | 0 | 主机和服务器务必要开启 |
5.1 测试执行情况与记录
5.2 测试结论
针对几项不同功能点的测试,使用了不同的测试用例,测试用例执行结果都与预测结果相同,虽然在去重功能以及属性自动化提取功能,测试结果没有达到100%相同,存在不可避免的小几率误差,但是精度达到了%85。
6 影响方案的意外因素及建议
6.1 意外因素
在获取数据源时,我们的程序是根据网站的结构定向爬取数据,所以如果网站结构改变的话,有可能获取不到正确的数据
6.2 建议
当程序获取不到数据时,请查看网站结构是否已更变,如果更改,则需要根据网站结构,重新编写爬虫