大数据面试集锦

一、基础

1.1、Linux

1)常用的高级命令
    top  iotop ps -ef   df -h  natstat   jmap -heap  tar  rpm 
2)查看进程   查看端口号   查看磁盘使用情况  查看某个进程内存
 ps -ef      natstat         df -h         jmap -heap

1.2、shell

1、用过哪些工具
    awk  sed  sort  cut    python   
2、写过哪些shell脚本
    1)分发脚本
    
    2)启停脚本(掌握)
        #!/bin/bash
        
        case $1 in 
        "start")
            for i in hadoop102 hadoop103 hadoop104
            do
                ssh $i "绝对路径"
            done
        ;;
        "stop")
        
        ;;
        esac

    3)与mysql的导入导出
        mysql      hdfs
            datax
        hdfs       mysql 
            datax 
    4)数仓层级内部
        ods =》 ads
3、
    '' 不解析里面变量的值
    ""   解析里面变量的值      
    嵌套 :  看谁在最外面

1.3、Hadoop

1、入门
    1)常用端口号
        2.x   50070   8088  19888 9000/8020
        3.x   9870   8088  19888 9820/9000/8020

    2)常用配置
        2.x  core-site.xml  hdfs-site.xml  mapred-site.xml  yarn-site.xml slaves
        3.x  core-site.xml  hdfs-site.xml  mapred-site.xml  yarn-site.xml workers

2、HDFS
    1)hdfs  读写流程 笔试题(有没有朋友)
    2)小文件的危害
        (1)存储   NameNode  150字节   128g*(1024m * 1024kb*1024字节) / 150字节 = 9.1亿
        
        (2)计算   默认切片规则,每个文件单独切片。1字节 文件 =》 1个maptask  1G 
 
    3)小文件怎么解决
        (1)har归档
        (2)CombineTextInputformat   把所有文件放到一起统一切片
        (3)JVM重用
            开始  2s
            干活  3s
            ......
            干活  3s
            结束  2s
    4)副本数  3个
    5)块大小
        1.x         64m
        2.x 3.x     128m
        本地          32m
        企业      128m   256m   512m
        块大小取决于 硬盘的读写速度
                    普通机械硬盘 100m/s    128m
                    固态硬盘普通  300m/s   256m
                    固态硬盘 高级  600m/s   512m 

3、mr
    shuffle  及其优化
    map方法之后,reduce方法之前混洗的过程  叫shuffle

4、yarn
    1)yarn的工作机制
    
    2)调度器
        (1)有几种
            FIFO  容量  公平
        (2)默认是哪个调度器
            apache   容量     CDH  公平
        (3)FIFO特点
            先进先出  单队列    在企业中很少使用
        
        (4)容量特点(并行度低一些)
            支持多队列   优先保证先进入的任务执行   资源不够时,可以借
        
        (5)公平特点(并行度高)
            支持多队列    每个任务公平享有队列资源  资源不够时,可以借
        
        (6)在企业中怎么选择
            如果对并行度要求比较高,通常选择 公平调度器   中大型公司
            如果对并行度要求不高,通常选择容量调度器     中小公司
        (7)公平、容量默认几个队列
            default  
        (8)创建多队列
            hive  mr   spark  flink 
            
            怕公司来了一个菜鸟   :递归死循环
            rm  -rf  /
            
            按照部门  业务线
            登录  x
                注册  x 
                    订单  √
                        物流  √
            
            618  1111  降级使用

1.4、Hive

1、组成 

2、与mysql等关系数据库的区别 
            mysql         hive
   速度    小  快        大  查询快
   数据量    小            大 
   除了语法接近以外,其他都不相同

3、内部表和外部表区别
    删除数据:  元数据  原始数据
    内部表删除数据:元数据  原始数据
    外部表删除数据:元数据
    在企业中,绝大多数情况,创建的是外部表;
    只有自己使用的临时表,创建内部表

4、4个by
    order by    全局排序    慎用   55t
    sort by    排序 
    distributed  by      分区    sort by   + d  by   
    clusterd  by 

5、系统函数
    date_add date_sub   lastday  next_day   date_format
    get_json_object concat  explode nvl 

6、自定义函数
    自定义UDF  一进一出(一行进入,一行输出  map )
    定义类 继承 G..UDF   evaluate 

    UDTF(一进多出, flatmap)
    定义类  继承 G..UDTF  重写三个方法  
    初始化(校验返回值类型和名称)  关闭  process(核心逻辑)
  
    UDAF(多进一出  sum)
    
    打包 + 上传到HDFS路径  在hive的客户端进行注册
    
    注意事项:  自定义函数在shell脚本中使用时,一定要在函数前面加上库名
            否则会报函数找不到。


7、开窗函数
    over  
    rank    笔试题   大量出现   分组topn   排名


8、优化 (hive  on spark 调优   小文件   数据倾斜   谓词下推 mapjoin  )
    1)mapjoin默认打开,不要关闭 大小表join
    2)提前进行行列过滤
        join  where  =>where  join 
    3)创建分区表   防止后续全表扫描 
        创建分桶表  对未知的海量数据,进行提前采样。防止数据倾斜产生。
    4)小文件处理
        (1)JVM重用
        (2)combinehiveinputformat 把多个文件放到一起统一切片  减少maptask个数
        (3)merge   如果是maponly任务,默认打开;如果是mr,需要手动打开。
                将小于16m的文件 =》  256m
    5)采样压缩
        map(snappy)  reduce 
    6)采用列式存储
        orc(优秀)  p 
        id   name  age 
        1    zs    18
        2    lishi  19
    行:1    zs    18  2    lishi  19
    列:1   2   zs   lishi   18  19
    select name from user  
    
    7)可以提前combiner (有前提条件,不能影响最终的业务逻辑)
        at,1
        at,1   at,3
        at,1
    8)合理的设置map个数和reduce个数
        reduce个数  不要太多也不能太少;  128m  => 1g内存
        map个数  由切片个数绝对  128m  => 1g内存
         切片大小:= max(0, min(块大小,long的最大值))
    9)更换引擎
        mr  =>  hive on spark   mr   spark sql  tez (presto) 
                (hive的生态要更好一些  兼容性更强  元数据管理、权限管理)
                
             
9、数据倾斜
    数据倾斜是  数据量多的是数据量少的 执行时间的20倍,就会认为发生数据倾斜
    618
    按照各个省份统计交易额;
    按照个数渠道统计下载量;
    发生了数据倾斜,当时执行了 4-5个小时; 发现统计北京、上海、深圳的任务一直在执行,卡在了99% 。认为发生了数据倾斜。  当天数量是平时 的 30-50倍。
    任务收到停下。加上处理数据倾斜的的参数set hive.groupby.skewindata = true;
效果: 执行 30-40分钟,任务解决了。


10、杂七杂八

二、采集

2.1、Sqoop

sqoop 两种增量方式
	自增id
	时间戳

2.2、datax

1、底层  1个进程 多个线程
    sqoop (默认4个 mr  )
2、datax如何调优
    1)datax可以调整并行度
    2)调整内存
3、在使用datax过程中遇到哪些问题
	空值处理
    mysql          hive (hdfs)
            datax
    null            \N
   要求hive建表时 用null  来存储空值
    sqoop (有对应参数可以将null => \N)
    
    hdfs                mysql 
            datax (有参数)
    \N                  null

2.3、Flume(3件事)

1、组成
    1)taildir  source 
        (1)断点续传、多目录
        (2)Apache  1.7 版本产生的  CDH 1.6版本产生的
        (3)自定义source  有可能产生重复数据
        (4)自身想办法:  事务
            找兄弟: 下游处理  hive dwd层中  spark flink   redis

    2)channel
        (1)file channel    磁盘    可靠性高   效率低
        (2)memory channel  内存   可靠性低  效率高
        (3)kafka channel  kafka  磁盘  可靠性高  效率高 
            kafka channel》 memory channel  + kafka sink
            apache 1.6 版本产生的  event(header,body)
            1.7时解决 bug   后续大量使用
        (4)在企业中怎么选择
            如果下游是kafka  ,优先选择 kafka channel 
            如果下游不是kafka ,
            	如果要求可靠性高,选择file channel    和钱相关
                如果要求效率,选择 memory channel    普通日志
    
    3)sink
        (1)HDFS sink 
            控制大小  128m   
            控制时间  30分钟
            event个数 =0 禁止使用

2、三个器
    1)拦截器
        ETL拦截器:判断json是否完整
        时间戳拦截器:解决零点漂移问题
        自定义拦截器步骤:
        定义类 实现 interceptor接口 重写4个方法  初始化 关闭 单event  多event
        静态内部类builder
        打包 + 上传  flume/lib   在配置文件中 全类名 $builder 

    2)选择器
        re   默认    把数据发往下一级所有通道
        mu          把数据选择性发往指定通道
    

    3)监控器
        g   发现事务 尝试提交的次数远远的大于最终success 的次数 
        提高内存
        flume-env.sh    4-6g 
        增加flume台数  618  1111
        日志服务器配置  8g  16g 



3、挂了及优化

    挂了:重启
        如果是memory channel   有可能丢失 数据 100个event 

    sink
        (1)HDFS sink 
            控制大小  128m   
            控制时间  30分钟
            event个数 =0 禁止使用
    提高内存
        flume-env.sh    4-6g 
    增加flume台数  618  1111

2.4、maxwell

mysql  oracle  mongodb 
可以增量同步 也可以全量同步
canal   flinkcdc   de...       ogg 

支持断点续传  也可以全量同步

三、离线处理

3.1、Spark

1、入门 
    1)spark是解决什么问题的   海量数据的计算
        hadoop 是解决海量数据的存储和计算
    2)spark 为什么有自己的调度器  yarn出现的晚
    3)spark的运行模式
        (1)local        本地  调试
        (2)standalone   用在 要求性能比较高的场景  国外使用 
        (3)yarn         在国内大量使用  解耦
        (4)m            在国内几乎没有使用的  不会。
        (5)k8s          在javaee里面用的比较多;在大数据场景下,问题非常多,
                            目前不是特别成熟,慎重使用
    4)常用端口号
        4040        spark shell 
        7077        hadoop  9820/9000/8020
        8080        hadoop  8088
        18080       hadoop   19888
    5)手写wordcount
            现在要求手写 flink  wordcount topn
    

2、spark core 
    1)代码都是在哪运行
        D     E (和算子紧密相关的)
    2)rdd的五大属性
        (1)标记数据是哪个分区
        (2)对数据进行计算
        (3)分区器
        (4)血缘依赖
        (5)移动数据不如移动计算
    3)转换算子
        (1)单value 
            map 
            mapp 
            mappw
            flatmap 
            filter 
            
            c           true  shuffle  false  没有shuffle   缩减分区
            repartition  true  shuffle  重写分区
        
        (2)双value
            交并差  拉链 zip 

        (3)keyvalue
            partitionby 
            
            groupbykey      没有预聚合操作
            reducebykey     有预聚合操作
            
            reducebykey     没有初始值  分区内和分区间逻辑相同
            foldbykey       有初始值  分区内和分区间逻辑相同
            agg..bykey      有初始值  分区内和分区间逻辑可以不相同
            combinebykey    有初始值(可以变换结构)  分区内和分区间逻辑可以不相同

    4)行动算子
        (1)reduce
        (2)first
        (3)take
        (4)foreach 
        (5)foreachp ..
    5)序列化
        KRYO序列化
    6)血缘
        宽依赖    有shuffle (有聚合操作)
        窄依赖     没有shuffle  
    7)cache         缓存  不会改变血缘依赖关系    内存、磁盘
        checkpoint  会改变血缘依赖关系    第三方框架(HDFS 、HBase 、redis、mysql)
    8)任务怎么切分的
        (1)app              sparkcontext
        
        (2)job              行动算子个数
        
        (3)stage            shuffe的个数+1 
        
        (4)task             每个阶段,最后一个算子对应的 分区数
    9)广播变量
    
    
    10)累加器

3、spark  sql 
    1)rdd   df   ds 三者之间的转换
    2)                          元数据     执行引擎        语法
    hive  on spark                mysql     rdd (慢)     hive 
    spark on hive (spark sql)    mysql      df  ds (快)  spark sql
    内置hive                  derby
    外置hive                  mysql

4、sparkstreaming 
    (1)SparkStreaming是纯流式处理框架吗? 他的抽象是谁?
	(2)背压机制原理
	(3)Receiver和Direct模式原理
	(4)kafka的offset维护在什么位置( 0.10)
	(5)transform算子里面的代码都在什么端执行
	(6)UpdateStateByKey状态保存在什么位置?  有什么缺点
	(7)window有三个概念  用wordcount案例画图说明

5、内核源码

四、实时处理

4.1、Flink

Flink 任务调度
	对于 flink 的流任务客户端首先会生成 StreamGraph,接着生成 JobGraph,
	然后将 jobGraph 提交给 Jobmanager 由它完成 jobGraph 到 ExecutionGraph 的转变,
	最后由 jobManager 调度执行。
spark 与 flink 区别
	精准一次的实现
	两阶段提交
CDC

五、存储

六、消息队列

6.1、Kafka

1、组成 (生产者 、broker  、消费者  zk)
2、安装多少台
    2  * (生产者峰值生产速率  * 副本 / 100)  + 1  = 3台
3、压测:生产者峰值生产速率(50m/s )  消费者峰值消费速率    
4、副本:默认1个  生产环境 2-3个  2个居多
    副本多:好处,可靠性高;  坏处 :效率低  增加存储资源
5、平均速率
    100万日活  *   100条  = 1亿条
    1亿条/ (24小时 * 3600s) = 1150条/s
    
    1条日志: 0.5k  - 2k   1k   1m/s  
    
    峰值:8-12点     12点 -14点  小高峰  14点-18点    19点 -24点  高峰
                                                    20m/s   30m/s  
6、 日志保存多久
    默认保存7天   3天

7、是否做了监控
    kafka eagle   manager   montor 
8、分区数
    增加分区 可以提高并行度
    期望kafka 吞吐量 100m/s  t 
    生产峰值生产速率  20m/s  tp
    消费者峰值消费速率 40m/s tc
    
    分区数:= t /min(tp, tc) = 100/ 20 = 5个分区
9、生产者分区策略
    指定了分区,数据发送到指定分区
    如果没有指定分区,可以指定了key,按照key的hashcode值%分区数
    没有指定分区,也没有指定key,按照粘性分区
10、如果提高生产者吞吐量
    1)32m缓存 =》 64m
    2)批次大小16k => 32k
    3)linger.ms  0 => 5-100ms
    4)压缩  snappy  zstd 
11、如何保证数据可靠 
    acks:
    0:生产者发送过来数据,就不管了,在生产环境中很少使用
    1:生产者发送过来数据,Leader收到之后,并应答
    -1:生产者发送过来数据,Leader和isr队列里面所有的follower都收齐 了,在应答
    在生产环境中,如果产生的是普通日志,通常选择 1; 如果传输的是和钱相关的,选择-1

    acks = -1 +  副本数 大于等于2   isr队列里面的最小副本大于等于2

12、如何保存数据不重复
    幂等性(pid ,分区号, 序列号) + 事务(5个api  初始化事务、启动事务、提交事务、事务终止、offset)

13、数据有序:
    单分区内
    
14、乱序
    inflight = 5
    没有幂等性时处理办法:inflight = 1
    有幂等性:inflight小于等于5
15、如何做到高效读写的
    1)Kafka本身是集群   可以增加分区 
    2)index(稀疏索引) 4k   1条索引
    3)采用的顺序读写  600m/s    
    4)零拷贝 + 页缓存
16、删除策略
    delete  
    压缩  key v3 
17、消费数据  拉取数据
18、消费策略
    range(7个分区 3个消费者)
    针对每个topic   容易产生数据倾斜
    
    
    roundbin(7个分区 3个消费者)
    针对所有的topic

    粘性
    
    range + 粘性 
    roundbin + 粘性
19、再平衡条件
    消费者 会每隔3s中和消费者组协调器通信1一次,如果超过45s ,
    会认为消费者挂掉,触发再平衡;
    如果消费者消费一批数据的时间超过了5分钟没有再拉取数据,
    说明消费者挂了,会触发再平衡    
20、可以指定任意位置消费
    0 -----------------8999当前
    --from-begining
    offset  1000位置
    seek(1000)
21、按照时间进行消费
    12点 以后的都不用了
    把时间转换为offset  ,在调用seek()
22、kafka数据积压了
    增加分区  同时要求消费者增加消费CPU核数
    
    消费者增加每批次拉取的条数   默认500条 1000-3000条
    增加50m  => 60m
23、kafka如何提高吞吐量
    1)32m缓存 =》 64m
    2)批次大小16k => 32k
    3)linger.ms  0 => 5-100ms
    4)压缩  snappy  zstd 
    增加分区  同时要求消费者增加消费CPU核数
    
    消费者增加每批次拉取的条数   默认500条 1000-3000条
    增加50m  => 60m
24、硬盘怎么选择
    选择机械硬盘  底层是顺序读写   600m/s  
25、网络带宽选择
    生产者峰值生产速率  30m/s  
    百兆带宽 (bit    1字节 = 8bit)  实际只有12.5m/s 
    选择千兆带宽。
26、kafka内存
    默认内存1g    jmap -heap  进程号   查看内存
    配置 10g -15g  
27、CPU 选择
    32 核 

28、可以服役新节点、可以退役旧节点

29、kafka挂了怎么办
    正常重启  (内存 -jmap -heap 、查看磁盘 df -h、查看cpu top)
    
    误删 :服役新节点 退役旧节点方式。
30、 多少个Topic
    满足下一级所有消费者   可以适当的聚合
31、Kafka单条日志传输大小
    1m

七、协调

7.1、Zookeeper

八、调度器

8.1、Azkaban

8.2、ds 海豚调度器

1、什么时候执行
    业务数据:00:10分钟开始执行
    用户行为数据:00:30分钟开始执行
2、ds 里面的任务挂了     
    报警   发邮件,打电话(睿象云)(广东)
    
    起床 =》 打开电脑 远程连接公司服务器 
    =》 尝试手动执行   还是不行; 把这个任务停止掉;  第二天去公司解决。
    (小文件过度、  数据倾斜 )

3、ds的服务挂了  
    重启; (查看内存、查看磁盘、查看进程)
4、ds每天跑多少指标
    平时 100个左右;  如果搞活动150-200个

8.3、Ooize

十三、从0到1

   什么也没有   
    从0-1搭建大数据平台(离线 实时)
    
   你给我出一套大数据解决方案
   
   你就是大数据组组长
   
   1)都有什么需求啊?
      第一批指标   通道打通    留转G复活
   2)能出多少钱  什么方向
        50万     离线实时都做  先做离线
        5台服务器 *  4w  =20w
   3)数据量
       增量 每天100g左右    历史数据 1T 
   4)能给我分配几个组员
        就你1个  
        可以找人
    5)需要的框架 
        
    6)物理机  还是云主机
        云主机

    7)离线大约你给我多久时间交工 
        1个月  
        再招人   建模消耗时间

十三、数仓建模准备

1、ER 模型 javaee   三范式

2、维度建模 
    星型模型(事实表周围一级维度)   减少join操作
    雪花模型(事实表周期多级维度)   
    星座(多个事实表)
3、事实表
    1)什么样的表是事实表;    
        有度量值的表;  可以累加的值(个数、件数、次数 、金额)
    2)同步策略
       数据量大:   同步时,通常采用  增量   有特殊的(加购  全量) 
    3)分类 
        (1)事务型事实表
            找原子操作  点击(加购、下单、物流、退款)
            ①选择业务过程
            ②声明粒度
            ③确定维度
            ④确定事实
            
            不足:
            ①统计连续性指标、库存类指标    周期型快照事实表
            ②多事实表的关联(最怕join  大表 join  大表)
                统计下单 到  物流的 平均时长   累积型快照事实表
       (2)周期快照事实表
            ①选择业务过程
            ②声明粒度  (天)
            ③确定维度
            ④确定事实
        (3)累积型快照事实表
            ①选择业务过程 (选择多条业务线)
            ②声明粒度  
            ③确定维度
            ④确定事实 (确定多个事实表)

4、维度表
    1)什么样的表是维度表
        没有度量值的表;通常都是一些描述信息(身高、体重 年龄、性别)
    2)同步策略
       数据量小:  同步时,通常采用  全量   有特殊的(用户表  增量)
    3)维度整合 (星型模型  减少join )
       商品表+ spu 表 + 商品品类表+ 商品一级分类、二级分类、三级分类=》 商品维度表
       省份表 +  地区表 =》 地区维度表
       活动信息表 + 活动规则表 =》  活动维度表
    4)用户表 =》 拉链 (缓慢变化维)   

十四、数仓建模(*****) 留存 转换率 GMV 复购 活跃

1、数据调研 (50%)  总时间1个月 1周(平台搭建) 2周(数据调研)3周(动手做)4周(bug)

    1、熟悉公司的业务(javaee后台的表)  
        847张表 FM 喜马拉雅 (听书   加购  下单 支付 )
                                播放相关
                                入住的频道(10  、5  、6  )
        图片、临时表 、权限表 (不选择)
    2、需要找业务人员详细沟通
        确认 表与业务之间的关系
    3、和产品经理聊
        指标:原子指标、派生指标、衍生指标
        派生指标= 原子指标(业务过程 + 度量值 + 聚合逻辑)  + 统计周期 + 统计粒度 + 业务限定
        统一口径

2、明确数据域
    用户域:登录、注册
    流量域:页面、动作、故障、曝光、启动
    交易域:加购、下单、取消下单、支付、取消支付、物流、退货
    工具域:优惠卷领取、优惠卷使用(下单) 、优惠卷使用(支付)、
    互动域:收藏、评论、点赞

3、构建业务矩阵
                    用户、商品、活动、优惠卷、地区、时间
    用户域:
        登录、      √
        注册
    流量域:
        页面、
        动作、
        故障、
        曝光、
        启动
    交易域:
        加购、
        下单、
        取消下单、
        支付、
        取消支付、
        物流、
        退货
        工具域:
        优惠卷领取、
        优惠卷使用(下单) 、
        优惠卷使用(支付)、
    互动域:
        收藏、
        评论、
        点赞

4、建模
    1)ODS层
        (1)保持数据原貌不做任何修改。备份作用。
        (2)采用分区表。    防止后续全表扫描
        (3)采用压缩 。    减少磁盘空间
    
    2)DIM层
        (1)维度整合
            商品表+ spu 表 + 商品品类表+ 商品一级分类、二级分类、三级分类=》 商品维度表
           省份表 +  地区表 =》 地区维度表
           活动信息表 + 活动规则表 =》  活动维度表
        
        (2)用户拉链表(缓慢变化维)

    3)DWD层
        优先考虑采用 事务型事实表
        (1)事务型事实表
            找原子操作
            ①选择业务过程
                选择感兴趣的,  产品经理要求的
                
                图片、临时表 、权限表 (不选择)
                
            ②声明粒度
                粒度:一行信息代表什么含义;  可以代表一次下单、一周下单、一个月下单
                要求最小粒度
                只要不做聚合操作;

            ③确定维度
                未来统计的指标中需要:  用户、商品、活动、优惠卷、地区、时间
            
            ④确定事实
                确定事实表的度量值   可以累加的值 (个数、件事、次数、金额)
                
        (2)周期快照事实表 (连续性指标、库存)
        
        
        (3)累积型快照事实表 (多事实表关联)


5、指标体系建设
    ads层  要统计哪些指标 (一口气30个指标 日活、新增、留存、转化率、GMV 、复购率)
    
    dws层:指标拆分
        指标:原子指标、派生指标、衍生指标
        派生指标= 原子指标(业务过程 + 度量值 + 聚合逻辑)  + 统计周期 + 统计粒度 + 业务限定
                    交易总额(下单  + 金额 + sum)  + 每天 + 省份   + 手机
        
        每天各个省份购买手机的交易总额
        
        找公共的信息 (业务过程 + 统计周期  + 统计粒度 )


6、报表可视化

十五、每层做了哪些事

1、ods层
    1)保持数据原貌不做任何修改。备份作用。
    2)采用分区表。    防止后续全表扫描
    3)采用压缩。    减少磁盘空间

2、DIM  层  &  DWD层 
    除了   维度整合、用户拉链   维度建模  (事务型事实表、周期快照、累积快照)
    1)ETL数据清洗
        清洗的手段   hql  mr  spark SQL    Python    kettle 
        
        清洗规则:  
            和钱相关的,数字:[0-9]
            手机号
            身份证号
            网址URL的
            数据解析: 
            核心字段不能为空:
            超期数据删除;
            重复数据  后续需要过滤 
        清洗掉多少日志算合适:
            1万条日志   1 条(合理)    10  100 1000  9999条
        压缩      减少磁盘空间
        列式存储  加快查询速度
        创建分区表: 防止后续全表扫描
        
    2)对手机号、身份证号等敏感数据脱敏 
        (1)加****  135 ****0013
        (2)md5加密   1324242539 =》md5(1324242539)   342491234719(唯一标识)
        (3)加权限   政府 银行  军工  1324242539
    

3、DWS层
    指标体系建设

4、ADS层
    一口气三十个指标

十六 、测试

测试的手段包括,边界值、等价类等。
sum(a,b)
a:1-100
b:1-10000000000000000000000000000

边界值:   a:1  100,0 -1  101

等价类:b: 6896544456667  875555

编写测试用例:输入a=1 ,b=1 ,期望输出 2
测试报告:输入a=1 ,b=1 ,实际输出 1 
测试程序员: 提bug  禅道、bugzila  => 发邮件  =》 程序员  项目经理  测试经理
    程序1.0  评审
程序员:  可以解释  这不是一个bug,
            这是一个bug,下一个版本修改  1.1
    

瀑布式开发  (1-5年)

需求  100个                                    需求测试
    系统总体设计                           系统集成测试
        软件概要设计                  软件集成测试
            软件详细设计          软件单元测试
                代码编写    代码走查
                

敏捷开发   小步快跑
需求  5个 
代码编写 
测试 
。。。。。
需求  5个 
代码编写 
测试 
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值