数据仓库与 ETL 测试

共 18 题
#

1. ETL 测试中如何建立"源数据→清洗规则→目标表"的映射清单并逐项断言?

A 只需验证映射,无需验证清洗规则
B 应建立字段映射、转换与清洗规则的清单,对每个规则构造源数据并断言目标结果,实现一规则一断言 ✓ 正确答案
C 清洗规则无法逐项断言
D 映射清单无需转化为测试用例
#

2. 数据仓库分层(ODS/DWD/DWS/ADS)之间如何做行数、金额、主键唯一性的对账测试?

A 应跨层对账行数、金额汇总与主键唯一性,验证分层转换无丢数、无重复、口径正确 ✓ 正确答案
B 只需对各层对比行数即可
C 金额对账无需关注口径
D 主键唯一性只在 ODS 层验证
#

3. 数据仓库指标口径管理,口径字典、同名不同义问题的识别与口径一致性测试

A 应建立口径字典统一指标定义,通过一致性测试识别同名不同义差异,并让口径变更触发下游回归 ✓ 正确答案
B 同名指标在不同表中定义不同是正常的,无需处理
C 口径字典无法验证
D 口径一致性测试与口径字典无关
#

4. 缓慢变化维(SCD Type 1/2/3)的测试用例如何设计,历史数据如何验证?

A 应按类型验证:Type1 覆盖旧值、Type2 保留历史并分段、Type3 存上一次值,并验证时间点查询的历史快照正确 ✓ 正确答案
B SCD 类型不影响历史数据
C 三种 SCD 类型对历史数据的处理方式相同
D Type2 无需验证历史分段
#

5. 数仓测试中如何处理"上游数据质量问题",阻断下游还是放行加标记?

A 遇到上游质量问题必须阻断下游
B 放行加标记总是比阻断好
C 应权衡阻断(防止脏数据扩散但中断 SLA)与放行加标记(可追溯但可能短暂影响),按严重度分级配置并验证策略实现正确 ✓ 正确答案
D 上游质量问题无需处理
#

6. 如何对 SQL 脚本做静态检查(表名/字段/权限/敏感列),形成质量门禁?

A 静态检查只能检查语法
B 应解析 SQL 与元数据、权限、敏感列清单比对,检查表/字段/权限/敏感列等问题,并作为 CI 质量门禁阻断不合格 SQL ✓ 正确答案
C 敏感列无需静态检查
D 质量门禁无法在发布前拦截问题
#

7. ETL 测试的核心,源到目标的数据映射、类型转换、NULL 处理、去重与增量抽取逻辑如何验证?

A 只需验证源字段能映射到目标字段即可
B 增量抽取逻辑无需验证
C 类型转换与 NULL 处理无需关注
D 应逐项验证映射、类型转换、NULL 处理、去重与增量抽取逻辑,用已知输入输出黄金断言覆盖每个环节 ✓ 正确答案
#

8. 数仓分层(ODS/DWD/DWS/ADS)的测试策略,各层数据一致性、指标口径对齐如何保证?

A 只需测试 ADS 应用层即可
B 各层之间无需对账
C 指标口径在各层可以不同
D 应逐层验证 ODS/DWD/DWS/ADS 的本层逻辑,通过跨层对账保证数据一致,并用口径字典绑定指标口径对齐 ✓ 正确答案
#

9. ETL 任务的幂等与可重跑测试,重复执行、失败重跑与部分成功场景下的结果一致性

A 重复执行 ETL 结果一定一致
B 部分成功无需处理
C 重跑必然产生重复数据
D 应验证重复执行、失败重跑与部分成功(部分分区已写入)场景下输出一致,通过写入策略与主键唯一性保证可安全重跑 ✓ 正确答案
#

10. ETL 异常数据与脏数据处理测试,格式错误、字段缺失与超范围值如何走异常分支?

A 应构造格式错误、字段缺失、超范围值,验证被识别并进入异常分支(丢弃/告警/默认值),且异常可追溯、正常数据不受影响 ✓ 正确答案
B 格式错误的数据应直接进入目标表
C 异常数据无需记录
D 超范围值无需处理
#

11. 增量抽取的边界测试,基于时间戳、主键与 CDC 的增量抽取如何覆盖新增、更新、删除与历史回补,边界时间如何断言?

A 时间戳增量抽取只需覆盖新增
B 边界时间不影响抽取结果
C 删除操作无需增量抽取
D 应分别验证时间戳/主键/CDC 抽取对新增、更新、删除与历史回补的处理,并精确断言边界时间避免漏抽或重复 ✓ 正确答案
#

12. ETL 的编码与时区陷阱,字符集转换、时区换算与跨日对日期分区和金额的影响如何设计用例?

A 时区换算只影响显示不影响存储
B 跨日不会影响日期分区
C 应构造跨时区、跨日、特殊字符数据,验证字符集转换不乱码、时区换算正确、日期分区跨日不错位、金额不丢精度 ✓ 正确答案
D 字符集转换无需测试
#

13. DataOps 的测试分层,数据管道冒烟、数据质量规则、SLA 告警分别覆盖什么?

A 冒烟测试即可覆盖所有质量
B 冒烟测试验证管道跑通、质量规则验证数据正确性、SLA 告警验证时效与可观测,三层递进覆盖 ✓ 正确答案
C SLA 告警与数据产出无关
D 质量规则与 SLA 告警重复
#

14. 调度与依赖测试,DAG 任务失败重跑、数据就绪检查(上游完成)如何验证?

A 应验证上游失败/延迟时下游被正确阻塞、数据就绪检查后才启动、重跑时只重跑失败任务及其下游,依赖关系正确 ✓ 正确答案
B 下游任务总是设在上游失败后启动
C 数据就绪检查无需验证
D 重跑范围与依赖无关
#

15. ETL 的性能,窗口与资源?

A 只需验证任务能执行成功
B 应验证任务在 SLA 窗口内完成、资源占用不超限,并压测最大数据量场景、对比参数配置定位性能瓶颈 ✓ 正确答案
C 资源占用无需监控
D 数据量增长不影响耗时
#

16. ETL 测试的自动化框架,源目标比对、规则断言与调度触发的工具化落地?

A 源目标比对只能手动执行
B 规则断言无法自动化
C 调度触发与测试无关
D 应通过源目标比对、规则断言与调度触发三大模块工具化,实现配置化、自动执行、报告与告警联动 ✓ 正确答案
#

17. 数据仓库的查询性能测试,常用报表与即席查询的延迟基线如何建立与回归?

A 只需记录一次查询耗时即可
B 性能回归无需固定数据量
C 应建立固定基准查询集的延迟基线,回归时对比耗时与阈值,区分冷热缓存并监控执行计划定位性能退化 ✓ 正确答案
D 执行计划变化不影响性能
#

18. ETL 的元数据与口径文档测试,表结构变更与口径变更如何触发下游用例更新,防止文档与实现漂移?

A 表结构变更不影响下游用例
B 应通过元数据变更检测与用例绑定,让表结构/口径变更自动触发受影响下游用例更新与回归,防止文档与实现漂移 ✓ 正确答案
C 口径文档无需与实现一致
D 变更影响分析无法自动化