测试相关

1.公司有多少台测试服务器?

测试服务器一般三台。

2.测试服务器配置?

有钱的公司和生产环境电脑配置一样。

一般公司测试环境的配置是生产的一半。

3. 测试数据哪来的?

一部分自己写 Java 程序自己造(更灵活),一部分从生产环境上取一部分(更真实)。

4.如何保证写的 SQL 正确性(重点)

先在MySQL 的业务库里面把结果计算出来;在给你在 ads 层计算的结果进行比较;

需要造一些特定的测试数据,测试。

从生产环境抓取一部分数据,数据有多少你是知道的,运算完毕应该符合你的预期。

离线数据和实时数据分析的结果比较。(日活 1 万 实时 10100),倾向取离线。

算法异构

实时数据质量监控(脚本、调度器、可视化、故障报警)

(1)样本数据验证:从计算结果抽取部分样本数据,与业务部门实际数据对比。

(2)逻辑验证:检查指标的计算 sql 是否正确

(3)指标间关系验证:比较不同指标间关系,检查它们是否符合预期。例如:某个指标是另外一个指标的累计值,那么这两个指标一定存在关系

(4)历史数据对比:将计算结果和过去数据进行对比,观察指标的变化趋势

(5)异常值检测:检查计算结果中是否存在异常值

(6)跨数据部门对比:可以将计算结果与其它部门或团队的数据进行对比,进一步验证

5.测试之后如何上线?

大公司:上线的时候,将脚本打包,提交 git。先发邮件抄送经理和总监,运维。运维负责上线。

小公司:跟项目经理说一下,项目经理技术把关,项目经理通过了就可以上线了。风险意识。

所谓的上线就是编写脚本,并在 DolphinScheduler 中进行作业调度。

6.A/B 测试了解

1)什么是 A/B 测试?

A / B 测试本质上是一种实验,即随机向用户显示变量的两个或多个版本,并使用统计分析来确定哪个变量更适合给定的转化目标。

2)为什么要做 A/B 测试?

举例:字节跳动有一款中视频产品叫西瓜视频,最早它叫做头条视频。为了提升产品的品牌辨识度,团队想给它起个更好的名字。经过一些内部调研和头脑风暴,征集到了西瓜视频、奇妙视频、筷子视频、阳光视频 4 个名字,于是团队就针对一共 5 个 APP 名称进行了A/B 实验。

这个实验中唯一改变的是应用市场里该产品的名称和对应的 logo,实验目的是为了验证哪一个应用名称能更好地提升“头条视频”APP 在应用商店的点击率。最后西瓜视频和奇妙视频的点击率位列前二,但差距不显著,结合用户调性等因素的综合考量,最终决定头条视频正式更名为西瓜视频

通过这个案例可以看到,A/B 测试可以帮助业务做最终决策。结合案例的直观感受,我们可以这样来定义 A/B 测试:在同一时间对目标受众做科学抽样、分组测试以评估效果。

以上图图示为例,假设我们有 100 万用户要进行 A/B 测试:

先选定目标受众,比如一线城市的用户。A/B 测试不可能对所有用户都进行实验,所以要进行科学抽样,选择小部分流量进行实验。

  • 抽样之后需要对样本进行分组,比如 A 组保持现状,B 组的某一个因素有所改变。

  • 分组之后在同一时间进行实验,就可以看到改变变量后用户行为的变化。

  • 再根据对应实验目标的指标,比如点击率的高低,来评估实验的结果。

3)哪个首页新 UI 版本更受欢迎

今日头条 UI 整体风格偏大龄被诟病已久,不利于年轻和女性用户泛化,历史上几次红头改灰头实验都对大盘数据显著负向。因此团队设计了 A/B 实验,目标是在可接受的负向范围内,改一版用户评价更好的 UI。通过控制变量法,对以下变量分别开展数次 A/B 实验:

头部色值饱和度、字号、字重、上下间距、左右间距、底部 tab icon。

结合用户调研(结果显示:年轻用户和女性用户对新 UI 更偏好)。

综合来看,效果最好的 UI 版本如下图所示,全量上线。

新 UI 上线后,Stay duration 显著负向从-0.38% 降至 -0.24%,图文类时长显著 +1.66%,搜索渗透显著 +1.47%,高频用户(占 71%)已逐渐适应新 UI。

项目实际工作流程

以下是活跃用户需求的整体开发流程。

产品经理负责收集需求:需求来源与客户反馈、老板的意见。

第 1 步:确定指标的业务口径

由产品经理主导,找到提出该指标的运营负责人沟通。首先要问清楚指标是怎么定义的,比如活跃用户是指启动过 APP 的用户。设备 id 还是用户 id。

产品经理先编写需求文档并画原型图。=》需求不要口头说。

第 2 步:需求评审

由产品经理主导设计原型,对于活跃主题,我们最终要展示的是最近 n 天的活跃用户数变化趋势 ,效果如下图所示。此处大数据开发工程师、后端开发工程师、前端开发工程师一同参与,一起说明整个功能的价值和详细的操作流程,确保大家理解的一致。

接口:数据格式、字段类型、责任人。

第 3 步:大数据开发

大数据开发工程师,通过数据同步的工具如 Flume、Datax、Maxwell 等将数据同步到ODS 层,然后就是一层一层的通过 SQL 计算到 DWD、DWS 层,最后形成可为应用直接服务的数据填充到 ADS 层。

第 4 步:后端开发

后端工程师负责,为大数据工程师提供业务数据接口。

同时还负责读取 ADS 层分析后,写入 MySQL 中的数据。

第 5 步:前端开发

前端工程师负责,前端埋点。

对分析后的结果数据进行可视化展示。

第 6 步:联调

此时大数据开发工程师、前端开发工程师、后端开发工程师都要参与进来。此时会要求大数据开发工程师基于历史的数据执行计算任务,大数据开发工程师承担数据准确性的校验。

前后端解决用户操作的相关 BUG 保证不出现低级的问题完成自测。

第 7 步:测试

测试工程师对整个大数据系统进行测试。测试的手段包括,边界值、等价类等。

提交测试异常的软件有:禅道(测试人员记录测试问题 1.0,输入是什么,结果是什么,跟预期不一样->需要开发人员解释,是一个 bug,下一个版本解决 1.1->测试人员再测试。测试 1.1ok->测试经理关闭 bug)

1 周开发写代码 =》 2 周测试时间

第 8 步:上线

运维工程师会配合我们的前后端开发工程师更新最新的版本到服务器。此时产品经理要找到该指标的负责人长期跟进指标的准确性。重要的指标还要每过一个周期内部再次验证,从而保证数据的准确性。

项目当前版本号是多少?多久升级一次版本

敏捷开发(少量需求=>代码编写=>测试=>少量需求=>代码编写=>测试…),又叫小步快跑。

差不多一个月会迭代一次。每月都有节日(元旦、春节、情人节、3.8 妇女节、端午节、618、国庆、中秋、1111/6.1/5.1、生日、周末)新产品、新区域。

就产品或我们提出优化需求,然后评估时间。每周我们都会开会做下周计划和本周总结。(日报、周报、月报、季度报、年报)需求 1 周的时间,周三一定完成。周四周五(帮同事写代码、自己学习工作额外的技术)。

项目中实现一个需求大概多长时间

(1)刚入职第一个需求大概需要 7 天左右。对业务熟悉后,平均一天一个需求。

(2)影响时间的因素:对业务熟悉、开会讨论需求、表的权限申请、测试等。新员工培训(公司规章制度、代码规范)

项目开发中每天做什么事

(1)新需求(活动、优化、新产品、新市场)。 60%

(2)故障分析:数仓的任何步骤出现问题,需要查看问题,比如日活,月活下降或快速上升等。20%

(3)新技术的预言(比如湖仓一体 数据湖 Doris 实时数据质量监控)10%

(4)其临时任务 10%

(5)晨会-》10 做操-》讨论中午吃什么-》12 点出去吃 1 点-》睡到 2 点-》3 点茶歇水果-》晚上吃啥-》吃加班餐-》开会-》晚上 6 点吃饭-》7 点开始干活-10 点-》11 点

举报/反馈

尚硅谷教育

4.2万获赞 2.2万粉丝
让天下没有难学的技术
北京晟程华科教育科技有限公司官方账号
关注
0
0
收藏
分享