30张干货! - 中国大数据

Download Report

Transcript 30张干货! - 中国大数据

大数据测试实战
技术质量部-力霖
背景
目录
大数据测试方法
工具介绍
QA
2
第一
部分
背景
3
背景
“人类正从IT时代走向DT时代”
1.DT时代,数据将在生产品过程中
起到激发、辅助的作用,让用户获
得更大的经济价值。
2.数据蕴涵着巨大的商业价值,人们
需要的就是快速对数据进行处理和
分析,从而产生有价值的业务决策。
ETL过程
3.ETL过程为联机分析处理、数据挖
掘提供决策支持的数据
4
背景
如何在ETL的过程中
保障数据质量
提升开发测试效率
优化数据产出
5
第二
部分
大数据测试方法
6
大数据测试方法-数据全链路
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
TEXT HERE
7
大数据测试方法
数据应用类
MR类
UDF类
深度学习算法类
实时数据类
数据产品类
8
大数据测试方法-数据应用类
代码走读
代码规范问题
代码性能问题
字段间关系
主键是否唯一
字段a>字段b
枚举值分布
枚举类字段值
数据量及范围
整表数据量
字段区间分布
9
大数据测试方法-数据应用类
一、代码走读:
1.列对齐
2.Insert overwrite表中不能出现select *
3.表别名是否重复
4.Mapjoin里的小表是否在当层子查询中存在
5.Join on 条件是否误写成一致
等等代码走读
字段间关系
枚举值分布
二、字段间关系(最终输出表):
代码规范问题
主键是否唯一
枚举类字段值
如:PV>UV、A=B+C、A>=B+C等,主键是否唯一
代码性能问题
字段a>字段b
三、枚举值分布:
数据量及范围
校验枚举类字段的枚举值是否完整、通过枚举值分布校验数据正确性
四、数据量及字段值范围
如:一天支付量、一级类目个数、每日旺旺登陆UV、字段最大小值、字段长度
10
大数据测试方法-数据应用类
区间分布
数值类型的分布
分析区间范围
特征值验证
异常数据反推
数据对比
系统迁移
业务升级
对比测试
系统迁移
业务升级
11
大数据测试方法-数据应用类
一、区间分布:
数值类型字段整体的分布情况
例如:成交金额(笔记本电脑成交金额大部分分布在3k-1w,女装类目情况)
二、特征值验证:
构造数据复杂、成本高;反向从源头表中寻找异常数据
取有代表性的数据、异常数据
代码走读
字段间关系
枚举值分布
数据量及范围
三、数据对比:
1. 系统迁移(数据结构变更、代码变更,调度系统迁移,历史数据迁移)
代码规范问题
主键是否唯一
枚举类字段值
2. 业务升级(核心中间层数据变更)
代码性能问题
字段a>字段b
12
大数据测试方法-MR类
单机测试
集成测试
本地测试
单元测试
结果是否合理
运行时间
结果是否出现倾斜
性能测试
Mapper数
Reducer数
CPU,MEM
响应时间
对比测试
历史数据对比
节点数据对比
13
大数据测试方法-MR类
一、单机测试:
本地测试:本地提交运行job,得到Reduce端输出,即只关心最终结果
单元测试:构造Map端和Reduce端的输入数据,对Map端和Reduce端的输出断言
二、集成测试:
代码以jar包形式上传到集群上运行,可能发现:
大资源文件读取到内存,程序是否正常,job启动是否变慢,日志是否有异常
结果是否出现倾斜
代码走读
字段间关系
枚举值分布
数据量及范围
运行时间是否符合预期
代码规范问题
主键是否唯一
枚举类字段值
三、性能测试:
代码性能问题
字段a>字段b
关注业务基线产出时间;查看mapper数,reducer数,cpu,mem,响应时间等
14
大数据测试方法-UDF类
单元测试
集成测试
JUNIT
JENKINS
HIVE/ODPS环境
对比测试
对比测试
重构
15
大数据测试方法-UDF类
一、单元测试:
基本同java、python的单元测试方法,通过JEKINS来持续集成,利用覆盖率插件来统计各种覆盖率
二、集成测试:
在HIVE/ODPS环境中验证case,例如:select udf_data_diff("2014-01-19", "2014-01-20
12:00:00") from dual;
代码走读
代码规范问题
代码性能问题
字段间关系
枚举值分布
数据量及范围
枚举类字段值
16
大数据测试方法-深度学习算法类
单机测试
集群测试
关心测试参数、模
型文件
关心性能,job时
间等
参数调优
不同的参数导致
模型的效果不同
训练速度不一样
ABTEST
使用外部公开数
据集
效果对比评估
17
大数据测试方法-深度学习算法类
关注指标:正确率、召回率(覆盖面的度量,度量有多少正例被分为正例)
数据集准备:训练集和测试集的比例3:1
一、单机测试:
同MR单机测试过程
二、集群测试:
关心测试参数和模型文件参数对算法的影响,对于异常值,边界值的测试不可忽略。
代码走读
字段间关系
枚举值分布
数据量及范围
关心性能,job的运行时间,master和slave的通信时间
三、参数调优:
代码规范问题
主键是否唯一
枚举类字段值
找出每个参数与算法效果的关系,找出一组近似最优的参数组合
代码性能问题
字段a>字段b
四、ABTEST
ABTest是指对同类型的不同算法A、B,使用相同的数据集,来比较A/B算法的优劣
使用相同的训练集、测试集数据,来计算我们算法的准确率,在与官网上的其他算法对比
18
大数据测试方法-实时数据类
逻辑正确性
数据准确性
本地测试,使用 实时数据与离线
数据的数据对比
本地文件
时效性
是否有数据延迟
ABTEST
使用外部公开数
据集
效果对比评估
19
大数据测试方法-实时数据类
一、逻辑正确性:
代码走读
字段间关系
本地测试:模拟实时数据流,校验输出结果是否正确
枚举值分布
数据量及范围
代码规范问题
主键是否唯一
枚举类字段值
二、数据准确性:
代码性能问题
字段a>字段b
本地逻辑校验通过后,对真实数据进行校验。把实时数据拖回ODPS,做离线的查询、统计、对比
三、时效性:
关注日志时间和表数据产生时间,不能与实际时间偏差太大
20
大数据测试方法-数据产品类
数据一致性
数据正确性
源头与展示是否一 业务逻辑
致
可视化图表
图表的展现
需要准备各种数
据
ABTEST
使用外部公开数
据集
效果对比评估
21
大数据测试方法-数据产品类
一、数据一致性:
比如:表字段值=?页面展示的值
二、数据正确性:
比如:表字段值的来源是否正确,计算是否正确
三、可视化图表:
代码走读
字段间关系
构造异常数据,看显示是否正常、是否破页
代码规范问题
代码性能问题
主键是否唯一
字段a>字段b
枚举值分布
数据量及范围
枚举类字段值
22
第三
部分
工具介绍
23
平台介绍-页面展示
24
平台介绍-在彼岸平台
BI的数据质量平台
多维度的数据质量解决方案
数据质量组件
持续更新ing
Coming soon
25
平台介绍-价值
BI数据质量的解 提升效率
减低成本
决方案
提升测试开发效率 上手快
优化数据产出
低门槛
26
平台介绍-用户群体
数据开发&测试角色
数据产品&运营
数据分析师
经理
27
平台介绍-应用场景
A
B
C
D
数据研发质量
数据代码规范
数据探查
数据监控
数据回归
数据迁移
代码重构
数据可视化
数据脱敏
28
第四
部分
QA
29
THANK
YOU
30