专栏首页测试开发架构之路大数据项目测试<二>项目的测试工作

大数据项目测试<二>项目的测试工作

大数据的测试工作:

1、模块的单独测试

2、模块间的联调测试

3、系统的性能测试:内存泄露、磁盘占用、计算效率

4、数据验证(核心)

下面对各个模块的测试工作进行单独讲解。

0. 功能测试

1. 性能测试

2. 自动化测试

3. 文档评审

4. 脚本开发

一、后台数据处理端

 后端的测试重点,主要集中在数据的采集处理、标签计算效率、异常数据排查(功能),测试脚本编写(HiveQL)、自动化脚本编写(造数据、数据字段检查等)

  1.数据的采集处理(Extract-Transform-Load)

    ETL:即将数据从源系统加载到数据仓库的过程。源系统包括:数据文件(excel、log等)、RDD数据库、非RDD数据库等;

    extract:从源系统提取需求数据。

    transform:清洗数据(数据格式转化、异常数据处理等)。

    Load:将清洗的数据加载至数据仓库。

    ETL测试:即确保根据需求将源系统的数据经过处理后加载到目标的数据是准确的。即源和目的数据之间转化过程中的数据验证。

    测试类型

    测试场景

    券商等金融机构,其用户每天都会产生大量的交易数据,这部分数据最初都会存储在客户的关系型数据库中(oracle),因此后台每天需要先进行数据采集,将数据采集至Hadoop的hdfs系统;数据采集过后,需要对源数据进行一次数据清洗工作:过滤异常数据(NULL)、筛掉关联性较高的数据。

  2.标签计算效率

    根据标签文档编写hiveSQL、MR等标签计算代码,针对hiveSQL,不同的开发人员编写的sql质量不同,执行的效率也不相同;此部分不仅需要开发人员具备基本的复杂sql编写功底,也需要开发人员掌握一定的sql性能调优能力;在数据,服务器配置一定的情况下,效率的提升来源于对sql的优化;

    由于hivesql的计算(都会转化成一个MR),需要大量的读写数据到磁盘的操作,因此计算效率较低;

    impala则是将数据push到内存中,然后从内存中读取数据,效率有大幅提升,但是耗费了较高的服务器内存,成本较高;

    Spark :内存计算引擎,提供Cache机制来支持需要反复迭代计算或者多次数据共享,减少数据读取的IO开销;

  3.异常数据排查

    异常值:分为两类:null,计算错误的值。 (1)Null值(标签下的数据均为NULL),首先 需求排查是否是数据的影响(例如 依赖数据缺失)。其次排查依赖数据的因素后,就需要排查是否是hiveSQL编写的问题和MR代码问题。(2)标签计算错误: 通过手工根据标签公式计算标签的值和通过hive计算得出的值进行对比,如果不一致,则需要排查是否是hivesql没有对标签公式进行精确实现。计算错误的值可以分为两类:1.明显错误(可以通过sql筛选出来的异常值,针对存在阈值的标签,比如股票仓位:仓位不得>1,如果出现>1的数据,则可以断定此标签计算有问题);2.非明显错误(此部分无法筛选出来,必须通过计算才能验证)

    由于此部分计算好的数据需要导入到中台进行进一步运用,所以此部分的数据准确性有至关重要的作用。(测试人员需要对业务十分了解)

二、中台管理端

  中台产品一般以web服务呈现。测试内容除了与普通的Java web项目相同,还要测试后台数据Export中台的过程中,数据类型、准确性、完整性、性能进行测试。

    就目前的项目而言:测试计划的内容包括:需求文档测试、后台导出表的测试(表字段类型、数据完整性、浮点型数据精度、导出性能等)、中台接口测试(自动化)、前端UI页面测试、性能测试、安全测试、兼容性测试。

    需求文档:需求点梳理、整理测试点、编写测试用例

    数据连表导出:后台数据和中台数据的类型、精度要保持一致(中台数据库为MySQL,数据类型可能和后台的数据类型定义不一致,要确保数据类型转化的正确性);

    中台接口测试:此部分可以进行接口自动化测试。

    UI页面测试:根据需求文档、UI设计图编写测试用例

    性能测试:中台接口的压测、中台服务缓存数据占服务器的内存空间测试

    安全测试:根据公司安全测试手册进行测试(安全漏洞扫描)

    兼容性测试:IE10

三、前端应用端

    主要是app端的测试工作:一般的app测试工作,数据的核对(类型、精度等)

四、结尾

 可以看出来,整个项目始终包含数据的验证工作。

附录:

异常值检查: https://www.cnblogs.com/xiaohuahua108/p/6237906.html

spark  优势:  https://www.zhihu.com/question/31930662

接口测试: https://www.cnblogs.com/iloverain/p/9429116.html

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员面试之软件测试面试问答

    1、问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决? 首先,将问题提交到缺陷管理库里面进行备案。 然后,要获取判断的依据和标准...

    互联网金融打杂
  • 软件测试小白必读

    软件测试作为一个行业繁荣发展,也只是近四五年的事情,相关培训也是雨后春笋,自2011年入行,看过太多人转行,看过一些人带着未知想入行,真真是围城里的人想出去,围...

    互联网金融打杂
  • 软件测试行业趋势分析和思考

    软件测试行业趋势分析和思考 1   绪论 本文先对互联网对时代和社会变革进行了论述,然后再由互联网时代对软件工业模式变革进行了介绍,最后引出附属于软件工业的测试...

    互联网金融打杂
  • 逆向工程步行得分算法

    住在西雅图,最近搬到了另一个社区。根据Walk Score的专有算法,从第9个最适合步行的西雅图街区搬到了第30个街区。仍然可以轻松地走到当地的咖啡馆和理发店,...

    代码医生工作室
  • 【问题意识】问题从哪里来?

    问题意识的高低对个人未来发展具有深远影响。问题意识高的人,由于其拥有比现在状态更高的目标,所以会感觉到现状存在问题。问题意识低的人,其自身目标与现状水平处于一致...

    用户5521279
  • 复现经典:《统计学习方法》第13章 无监督学习概论

    无监督学习是指从无标注数据中学习模型的机器学习问题。无标注数据是自然得到的数据,模型表示数据的类别、转换或概率无监督学习的本质是学习数据中的统计规律或潜在结构,...

    黄博的机器学习圈子
  • GitHub上的7个数据科学项目,以展示机器学习技巧!

    轻松应对数据科学项目是一个令人难以置信的方法,以摆脱挑战看看GitHub上的这7个数据科学项目将改善成熟能力范围这些GitHub仓库包含来自各种数据科学领域的项...

    代码医生工作室
  • 软件项目的用户验收测试

     随着当今技术和市场环境的变化,越来越多的企业选择将软件项目外包,同时也有更多成熟的大型软件企业加入到软件项目的承包队伍中。外包的软件项目越来越多,如何对这些外...

    小老鼠
  • Github标星超7k!从零开始,最简明扼要的数据科学学习路径(附高效免费小工具)

    试图入门一个新话题时,多数人会感到不知所措?这时候,一份明确的学习路径可以帮你去除这一焦虑。

    磐创AI
  • Github标星超7k!从零开始,最简明扼要的数据科学学习路径(附高效免费小工具)

    试图入门一个新话题时,多数人会感到不知所措?这时候,一份明确的学习路径可以帮你去除这一焦虑。

    大数据文摘

扫码关注云+社区

领取腾讯云代金券