《大数据软件测试.pptx》由会员分享,可在线阅读,更多相关《大数据软件测试.pptx(32页珍藏版)》请在课桌文档上搜索。
1、,大数据测试实战,目录,大数据概念,大数据测试方法,面试大数据测试人才的必备技能介绍,第一部分,大数据背景,1.DT时代,数据将在生产品过程中起到激发、辅助的作用,让用户获得更大的经济价值。2.数据蕴涵着巨大的商业价值,人们需要的就是快速对数据进行处理和分析,从而产生有价值的业务决策。3.ETL(抽取(extract)、转换(transform)、加载(load)过程为联机分析处理、数据挖掘提供决策支持的数据。大数据概念最初起源于美国,是由思科、威睿、甲骨文、IBM 等公司倡议发展起来的。大约从2009年始,“大数据”成为互联网信息技术行业的流行词汇。,大数据概念提出者:麦肯锡全球研究所,给出
2、的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。大数据是一个大的数据集合,通过传统的计算技术无法进行处理。这些数据集的测试需要使用各种工具、技术和框架进行处理。大数据涉及数据创建、存储、检索、分析,而且它在数量、多样性、速度方法都很出色。大数据最小的基本单位是bit;按顺序给出所有单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。大数据的特征:容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息;种类(Variety):
3、数据类型的多样性;速度(Velocity):指获得数据的速度;可变性(Variability):妨碍了处理和有效地管理数据的过程。真实性(Veracity):数据的质量。复杂性(Complexity):数据量巨大,来源多渠道。价值(value):合理运用大数据,以低成本创造高价值。,大数据概念,第二部分,TEXT HERE,TEXT HERE TEXT HERETEXT HERE TEXT HERE,TEXT HERE,TEXT HERE TEXT HERETEXT HERE TEXT HERE,TEXT HERE,TEXT HERE TEXT HERETEXT HERE TEXT HERE,
4、TEXT HERE,TEXT HERE TEXT HERETEXT HERE TEXT HERE,大数据测试方法-数据全链路,数据应用类,大数据测试方法,UDF类,实时数据类,MR类,深度学习算法类,数据产品类,代码走读,代码规范问题 代码性能问题,字段间关系,主键是否唯一 字段a字段b,枚举值分布,枚举类字段值,数据量及范围,整表数据量字段区间分布,大数据测试方法-数据应用类,代码走读,代码规范问题 代码性能问题,字段间关系,主键是否唯一 字段a字段b,枚举值分布,枚举类字段值,数据量及范围,大数据测试方法-数据应用类,一、代码走读:1.列对齐2.Insert overwrite表中不能出现
5、select*3.表别名是否重复4.Mapjoin里的小表是否在当层子查询中存在5.Join on 条件是否误写成一致等等二、字段间关系(最终输出表):如:PVUV、A=B+C、A=B+C等,主键是否唯一三、枚举值分布:校验枚举类字段的枚举值是否完整、通过枚举值分布校验数据正确性四、数据量及字段值范围如:一天支付量、一级类目个数、每日旺旺登陆UV、字段最大小值、字段长度,区间分布,数值类型的分布分析区间范围,特征值验证,异常数据反推,数据对比,系统迁移业务升级,对比测试,系统迁移业务升级,大数据测试方法-数据应用类,代码走读,代码规范问题 代码性能问题,字段间关系,主键是否唯一 字段a字段b,
6、枚举值分布,枚举类字段值,数据量及范围,大数据测试方法-数据应用类,一、区间分布:数值类型字段整体的分布情况例如:成交金额(笔记本电脑成交金额大部分分布在3k-1w,女装类目情况)二、特征值验证:构造数据复杂、成本高;反向从源头表中寻找异常数据取有代表性的数据、异常数据三、数据对比:系统迁移(数据结构变更、代码变更,调度系统迁移,历史数据迁移)业务升级(核心中间层数据变更),单机测试,本地测试单元测试,集成测试,结果是否合理运行时间结果是否出现倾斜,性能测试,Mapper数Reducer数CPU,MEM响应时间,对比测试,历史数据对比节点数据对比,大数据测试方法-MR类,代码走读,代码规范问题
7、 代码性能问题,字段间关系,主键是否唯一 字段a字段b,枚举值分布,枚举类字段值,数据量及范围,大数据测试方法-MR类,一、单机测试:本地测试:本地提交运行job,得到Reduce端输出,即只关心最终结果单元测试:构造Map端和Reduce端的输入数据,对Map端和Reduce端的输出断言二、集成测试:代码以jar包形式上传到集群上运行,可能发现:大资源文件读取到内存,程序是否正常,job启动是否变慢,日志是否有异常结果是否出现倾斜运行时间是否符合预期三、性能测试:关注业务基线产出时间;查看mapper数,reducer数,cpu,mem,响应时间等,单元测试,JUNITJENKINS,集成测
8、试,HIVE/ODPS环境,对比测试,重构,对比测试,大数据测试方法-UDF类,代码走读,代码规范问题 代码性能问题,字段间关系,枚举值分布,枚举类字段值,数据量及范围,大数据测试方法-UDF类,一、单元测试:基本同java、python的单元测试方法,通过JEKINS来持续集成,利用覆盖率插件来统计各种覆盖率二、集成测试:在HIVE/ODPS环境中验证case,例如:select udf_data_diff(2014-01-19,2014-01-20 12:00:00)from dual;,单机测试,集群测试,关心测试参数、模型文件关心性能,job时间等,参数调优,不同的参数导致模型的效果不
9、同训练速度不一样,ABTEST,使用外部公开数据集效果对比评估,大数据测试方法-深度学习算法类,代码走读,代码规范问题 代码性能问题,字段间关系,主键是否唯一 字段a字段b,枚举值分布,枚举类字段值,数据量及范围,大数据测试方法-深度学习算法类,关注指标:正确率、召回率(覆盖面的度量,度量有多少正例被分为正例)数据集准备:训练集和测试集的比例3:1一、单机测试:同MR单机测试过程二、集群测试:关心测试参数和模型文件参数对算法的影响,对于异常值,边界值的测试不可忽略。关心性能,job的运行时间,master和slave的通信时间三、参数调优:找出每个参数与算法效果的关系,找出一组近似最优的参数组
10、合四、ABTESTABTest是指对同类型的不同算法A、B,使用相同的数据集,来比较A/B算法的优劣使用相同的训练集、测试集数据,来计算我们算法的准确率,在与官网上的其他算法对比,逻辑正确性,本地测试,使用本地文件,数据准确性,实时数据与离线数据的数据对比,时效性,是否有数据延迟,ABTEST,使用外部公开数据集效果对比评估,大数据测试方法-实时数据类,代码走读,代码规范问题 代码性能问题,字段间关系,主键是否唯一 字段a字段b,枚举值分布,枚举类字段值,数据量及范围,大数据测试方法-实时数据类,一、逻辑正确性:本地测试:模拟实时数据流,校验输出结果是否正确二、数据准确性:本地逻辑校验通过后,
11、对真实数据进行校验。把实时数据拖回ODPS,做离线的查询、统计、对比三、时效性:关注日志时间和表数据产生时间,不能与实际时间偏差太大,数据一致性,源头与展示是否一致,数据正确性,业务逻辑,可视化图表,图表的展现需要准备各种数据,ABTEST,使用外部公开数据集效果对比评估,大数据测试方法-数据产品类,代码走读,代码规范问题 代码性能问题,字段间关系,主键是否唯一 字段a字段b,枚举值分布,枚举类字段值,数据量及范围,大数据测试方法-数据产品类,一、数据一致性:比如:表字段值=?页面展示的值二、数据正确性:比如:表字段值的来源是否正确,计算是否正确三、可视化图表:构造异常数据,看显示是否正常、是
12、否破页,大数据测试方法-测试流程总结,测试整体流程:需求调研分析阶段、测试策略计划制定、编写及评审测试用例、执行测试、上线验收测试、测试结果总结;大数据执行测试阶段划分:1.数据阶段验证、B.业务逻辑验证、C、输入结果验证;大数据测试的第一步数据阶段验证,也称作pre-hadoop阶段该过程包括如下验证:来自各方面的数据资源应该被验证,来确保正确的数据被加载进系统 将源数据与推送到Hadoop系统中的数据进行比较,以确保它们匹配 验证正确的数据被提取并被加载到HDFS正确的位置;业务逻辑验证阶段,测试者在每个节点上进行业务逻辑验证,在运行多个节点后验证确保如下操作的正确性:获取与分析进程正常工
13、作 在数据上实施数据聚合或隔离规则 生成键值对 在执行获取与分析进程后验证数据正确性与完整性大数据测试的最后或第三阶段是输出验证过程。检查转换(Transformation)规则被正确应用 检查数据完整性和成功的数据加载到目标系统中 通过将目标数据与HDFS文件系统数据进行比较来检查没有数据损坏,第三部分,面试大数据测试人才必备专业技术介绍,1、测试基本理论知识;2.Linux及环境搭建、Docker容器实现分布式虚拟化技巧;3.SQL和数据库相关的技能;Python/java语言编程基础;性能测试、框架开发的技能掌握;,想成为大数据测试工程师之前,必须有测试必备的技能,比如软件测试执行提出了
14、开展软件测试的执行活动,所需要涉及的执行过程以及相关策略和方法;同时了解常用的测试活动中的经验之谈,理论知识的梳理和基本的测试技巧掌握。,必备专业技术介绍 测试理论基础,BI数据质量的解决方案,提升效率,提升测试开发效率优化数据产出,减低成本,上手快 低门槛,必备专业技术介绍-Linux及环境搭建、Docker容器实现分布式虚拟化技巧,一个成熟的数据从业者应该懂得灵活的运用数据寻找,获取,安装,Debug,分享,团队合作,Linux是知名的开源系统,在这个系统下环境的配置将变得非常容易和透明。Linux操作系统作为常见的底层操作系统,在软件开发、软件测试过程中都会经常接触和使用,很多企业的服务
15、器都是Linux环境的,对于测试人员而言,也都会掌握相应的Linux命令。而大数据平台型产品的逐渐成熟,业界有不少的大数据研发团队开始使用Docker。在云计算领域,复杂的平台环境和配置也促使运维人员开始逐步认识到Docker的重要性。,A,B,C,D,数据研发质量数据代码规范,数据探查数据监控数据回归,数据迁移代码重构,数据可视化数据脱敏,必备专业技术介绍-SQL和数据库相关的技能,数据库是另外一个比较重要的部分,想象一下你不可能一直使用Excel去处理数据,毕竟超过十万行的数据用Excel就比较吃力了。这个时候SQL就是必须要用的,可以说这个是一个核心技能。有的人可能会说SQL非常简单,但
16、是当你实际应用的时候就会发现你在学校学的那些简单Query完全就跟不上需求了。除了基本的SQL,relational数据库(MySQL,PostgreSQ等),如果你想分析一些unstructured的数据,比如文字或者image等等,你可以学习一下NoSQL、MongoDB也是主流的数据库。感兴趣的可以自己学习一下。另外MongoDB有自己的线上University,大家有兴趣也可以关注一下。,必备专业技术介绍-Python/java语言,先说一下Python,Python是一种万能的语言,适用性非常强,除了数据分析还能够做很多的事情,比如编写程序,网站开发,深度学习等等。如果你决定使用Py
17、thon,就需要了解的点主要是各种包的搜索和调用,函数的编写和嵌套,数据类型的把握(list,tuple,series,dict),条件判断,循环迭代等等。其次说一下java,Java作为全球最流行的编程语言,因其易学易用、需求大、技术覆盖面广,已成为软件开发、web开发、前端开发、系统运维的必备编程语言课程,而对于测试人员来说,自动化测试的脚本编写也离不开Java,学Java已成为测试人员进阶提升的首选编程语言。,这个也是成为大数据测试工程师前,你必须要掌握得部分。在了解性能测试各方面的知识和经验的同时,培养自己的独立思考和解决问题的能力,掌握软件性能测试核心技术、工具使用以及项目实战技巧;,必备专业技术介绍-性能测试、框架开发的技能掌握,大数据项目团队岗位角色群体,数据开发&测试角色,数据产品&运营,经理,数据分析师,THANK YOU,