生产经验--测试上线相关
1 测试相关
1.1 公司有多少台测试服务器?
测试服务器一般三台
1.2 测试环境什么样?
有钱的公司和生产环境电脑配置一样。
一般公司测试环境的配置是生产的一半
1.3 测试数据哪来的?
一部分自己写Java程序自己造(更灵活),一部分从生产环境上取一部分(更真实)。
1.4 如何保证写的sql正确性
需要找一些特定的测试数据,测试。
从生产环境抓取一部分数据,数据有多少你是知道的,运算完毕应该符合你的预期。
离线数据和实时数据分析的结果比较。(日活1万 实时10100),倾向取离线。
1.5 测试之后如何上线?
大公司:上线的时候,将脚本打包,提交git。先发邮件抄送经理和总监,运维。运维负责上线。
小公司:跟项目经理说一下,项目经理技术把关,项目经理通过了就可以上线了。风险意识。
2 项目实际工作流程
以下是活跃用户需求的整体开发流程。
第1步:确定指标的业务口径
由产品经理主导,找到提出该指标的运营负责人沟通。首先要问清楚指标是怎么定义的,比如活跃用户是指启动过APP的用户。设备id 还是用户id。
邮件/需求文档-》不要口头
第2步:需求评审
由产品经理主导设计原型,对于活跃主题,我们最终要展示的是最近n天的活跃用户数变化趋势 ,效果如下图所示。此处大数据开发工程师、后端开发工程师、前端开发工程师一同参与,一起说明整个功能的价值和详细的操作流程,确保大家理解的一致。
第3步:大数据开发
大数据开发工程师,通过数据同步的工具如Flume、Sqoop等将数据同步到ODS层,然后就是一层一层的通过SQL计算到DWD、DWS层,最后形成可为应用直接服务的数据填充到ADS层。
第4步:后端开发
后端工程师负责,为大数据工程师提供业务数据接口;
同时还负责读取ADS层分析后,写入MySQL中的数据。
第5步:前端开发
前端工程师负责,前端埋点。
对分析后的结果数据进行可视化展示。
第6步:联调
此时数据开发工程师、前端开发工程师、后端开发工程师都要参与进来。此时会要求大数据开发工程师基于历史的数据执行计算任务,大数据开发工程师承担数据准确性的校验。前后端解决用户操作的相关BUG保证不出现低级的问题完成自测。
第7步:测试
测试工程师对整个大数据系统进行测试。测试的手段包括,边界值、等价类等。
提交测试异常的软件有:禅道、bugzila(测试人员记录测试问题1.0,输入是什么,结果是什么,跟预期不一样->需要开发人员解释,是一个bug,下一个版本解决1.1->测试人员再测试。测试1.1ok->测试经理关闭bug)
2.3
1重大项目升级
2核心模块的变化
3普通变化
第8步:上线
运维工程师会配合我们的前后端开发工程师更新最新的版本到服务器。此时产品经理要找到该指标的负责人长期跟进指标的准确性。重要的指标还要每过一个周期内部再次验证,从而保证数据的准确性。
3 项目中实现一个需求大概多长时间
刚入职第一个需求大概需要7天左右。
对业务熟悉后,平均一天一个需求。
影响时间的因素:测试服务器购买获取环境准备、对业务熟悉、开会讨论需求、表的权限申请、测试等。新员工培训(公司规章制度、代码规范)
4 项目在3年内迭代次数,每一个项目具体是如何迭代的。公司版本迭代多久一次,迭代到哪个版本
瀑布式开发、敏捷开发
差不多一个月会迭代一次。每月都有节日(元旦、春节、情人节、3.8妇女节、端午节、618、国庆、中秋、1111/6.1/5.1、生日)新产品、新区域
就产品或我们提出优化需求,然后评估时间。每周我们都会开会做下周计划和本周总结。(日报、周报、月报、季度报、年报)需求1周的时间,周三一定完成。周四周五(帮同事写代码、自己学习工作额外的技术)
有时候也会去预研一些新技术。Flink
51.2
5是大版本号:必须是重大升级
1:一般是核心模块变动
2:一般版本变化
5 项目开发中每天做什么事
1)新需求(活动、优化、新产品、新市场)。
2)故障分析:数仓的任何步骤出现问题,需要查看问题,比如日活,月活下降或快速上升等。
3)新技术的预言(比如flink、数仓建模、数据质量、元数据管理)
4)开会
晨会-》10做操-》讨论中午吃什么-》12点出去吃1点-》睡到2点-》3点茶歇水果
-》晚上吃啥-》吃加班餐-》开会-》晚上6点吃饭-》7点开始干活-10点-》11点
6 实时项目数据计算
6.1 跑实时任务,怎么分配内存和CPU资源
128m数据对应1g内存
1个Kafka分区对应1个CPU
6.2 跑实时任务,每天数据量多少?
用户行为:实时任务用到了用户行为多少张表(10g)
业务数据:实时任务用到了业务数据多少张表(34m)
活动、风控、销售、流量
文章来源:大数据培训