分布式系统测试方法论

共 18 题
#

1. 分布式系统测试的方法论,如何设计覆盖网络分区、节点故障、时钟偏移等场景的测试方案?

A 故障注入无需覆盖组合故障
B 以故障模型为骨架,覆盖网络/节点/时钟并注入+验证 ✓ 正确答案
C 只需测试网络故障,无需覆盖时钟
D 分布式测试无需可观测性
#

2. 确定性模拟测试(Deterministic Simulation Testing)的原理与实践,FoundationDB 和 TigerBeetle 如何通过模拟网络、时钟、磁盘故障实现可复现的分布式测试?

A 通过模拟网络/时钟/磁盘使故障可复现
B 确定性模拟可穷举调度序列
C 确定性模拟每次运行结果都不可预测 ✓ 正确答案
D FoundationDB 在单进程虚拟化多节点并控制调度
#

3. TLA+ 模型检查在分布式系统设计验证中的应用,如何将设计规约形式化并发现活性(Liveness)和安全性(Safety)违规?

A TLA+ 只能验证活性,无法验证安全性
B 安全性质用不变式表达,活性性质用时序逻辑表达,模型检查穷举状态 ✓ 正确答案
C TLA+ 用于编码阶段而非设计阶段
D 模型检查无法发现设计违规
#

4. 分布式系统的故障注入矩阵设计,故障类型、注入层、时长与观察指标如何组合

A 故障注入矩阵只需覆盖单一故障类型
B 用故障类型×注入层×时长×观察指标组合形成覆盖矩阵 ✓ 正确答案
C 观察指标与故障注入无关
D 矩阵无需考虑组合故障
#

5. 线性一致性(Linearizability)测试工具(Jepsen/porcupine/elle)的工作原理,如何从操作历史中验证线性化点?

A 工具不能输出违规历史
B 验证无需考虑实时顺序
C 线性化点可任意分配,无需在操作区间内
D 工具搜索是否存在满足实时顺序的合法线性化顺序 ✓ 正确答案
#

6. 时钟偏移(Clock Skew)测试,如何模拟 NTP 漂移、闰秒、单调时钟回退等场景?对依赖时间戳排序的系统如何设计测试?

A 单调时钟回退不会影响定时器
B 应模拟 NTP 漂移、闰秒、时钟回退并验证时间戳排序正确 ✓ 正确答案
C 时钟偏移测试无需模拟闰秒
D 时钟偏移不影响依赖时间戳排序的系统
#

7. 网络分区测试矩阵的设计,如何系统化覆盖对称分区、非对称分区、部分分区、抖动(jitter)和丢包(packet loss)的组合?

A 应系统化覆盖对称/非对称/部分分区与抖动、丢包的组合 ✓ 正确答案
B 非对称分区与对称分区效果相同
C 分区测试无需叠加丢包
D 只需测试对称分区
#

8. 分布式测试环境的网络可控性,tc/toxiproxy 等工具如何模拟延迟、丢包与分区

A tc 与 toxiproxy 功能完全相同
B tc 作用于主机网络层,toxiproxy 精确控制服务间链路 ✓ 正确答案
C toxiproxy 无法模拟分区
D tc 无法模拟延迟
#

9. 分布式追踪在测试断言中的应用,span 完整性、调用链耗时与错误码如何作为集成测试断言?

A 用 span 完整性、调用链耗时、错误码作为集成测试断言 ✓ 正确答案
B 追踪断言与错误码无关
C 追踪断言只需验证单服务 span
D 调用链耗时无法作为断言
#

10. 多活/容灾架构的切换演练与数据一致性验证,同城双活与异地多活场景的测试差异?

A 同城双活同步复制 RPO 近 0,异地多活异步复制需验证最终一致与冲突处理 ✓ 正确答案
B 同城双活 RPO 较大
C 异地多活复制延迟可忽略
D 同城双活与异地多活测试完全一致
#

11. 分布式故障的现场保留与复现,故障注入实验如何记录参数、时序与关键状态,使同类故障能在回归环境稳定复现?

A 记录注入参数、时序与关键状态,固化为可重放脚本 ✓ 正确答案
B 故障只能在生产环境复现
C 故障场景无法固化
D 故障无需记录参数即可复现
#

12. 分布式测试的环境-生产差异放大效应,网络拓扑、延迟分布与并发规模不同如何导致测试通过、生产故障,如何弥补?

A 测试环境延迟应与生产完全相同
B 测试环境与生产差异不影响测试结果
C 高并发竞态无需在测试环境暴露
D 测试环境拓扑/延迟/并发与生产不同,需同构环境+故障注入+压测弥补 ✓ 正确答案
#

13. 分布式系统测试的度量指标和治理模式?

A 故障测试发现的问题无需跟踪
B 度量覆盖覆盖度/有效性/韧性,治理强调测试即代码与门禁闭环 ✓ 正确答案
C 分布式测试无需度量
D 混沌实验无需纳入 CI
#

14. 混沌工程(Chaos Engineering)与分布式系统测试的边界,Steady-State Hypothesis 如何指导故障注入实验的设计?

A 稳态假设无需定义可观测指标
B 混沌实验无需假设即可设计
C 混沌工程是分布式测试的专项,稳态假设指导实验设计 ✓ 正确答案
D 混沌工程与分布式测试完全无关
#

15. 分布式测试的报告,如何证明可靠性?

A 报告只需说明测试通过
B 用覆盖矩阵、SLO 达成、恢复时间、一致性结果等证据证明 ✓ 正确答案
C 恢复时间与可靠性无关
D 覆盖度无需报告
#

16. 分布式测试环境的网络拓扑建模,如何用容器网络/服务网格模拟多机房、多集群拓扑?

A 服务网格无法注入延迟
B 容器网络无法模拟多机房
C 用多集群/命名空间+链路延迟注入模拟多机房,服务网格模拟路由与故障 ✓ 正确答案
D 拓扑建模无需模拟跨集群延迟
#

17. 分布式系统故障注入工具的选型,Chaos Mesh、toxiproxy、tc 等工具的适用边界与组合使用?

A tc 面向服务链路故障
B 所有工具功能完全相同
C Chaos Mesh 面向 K8s,toxiproxy 面向服务链路,tc 面向主机网络 ✓ 正确答案
D toxiproxy 面向 K8s 节点故障
#

18. 分布式系统的性能特性测试,网络往返、序列化开销与跨节点数据量如何影响端到端延迟,如何度量与断言?

A 序列化开销可忽略
B 性能测试无需追踪定位瓶颈
C 网络往返不影响端到端延迟
D 用追踪度量网络往返/序列化/数据量影响,用分位指标+阈值断言 ✓ 正确答案