# 1. 如何设计测试验证 Raft 集群在 Leader 切换时的线性一致性(Linearizability)?请说明测试用例构造方法和验证逻辑。 A 只需验证 Leader 切换完成后能正常读写 B 线性一致性无需验证并发操作 C 需并发读写并注入 Leader 切换,用线性化检查器验证操作历史 ✓ 正确答案 D Leader 切换后已提交的写可以丢失
# 2. Jepsen 测试框架的核心方法论是什么?如何构造网络分区(Network Partition)故障来检验分布式系统的一致性协议? A Jepsen 无法验证一致性协议 B Jepsen 只做功能测试,不注入故障 C 网络分区无需构造,随机即可 D 用并发操作+故障注入收集历史,再用检查器验证一致性 ✓ 正确答案
# 3. CAP 定理在测试设计中如何指导取舍?如何验证一个系统在网络分区下的行为符合其一致性声明? A 分区恢复后无需验证收敛 B CAP 系统分区时无需取舍 C 应明确系统声明(CP/AP),再验证分区行为与该声明一致 ✓ 正确答案 D 所有系统分区时都应保持可用
# 4. 消息队列(Kafka/RocketMQ)的 Exactly-Once 与消息顺序性如何测试,重复消费、乱序与事务边界 A 消息顺序性无法测试 B 事务边界允许部分提交 C Exactly-Once 只需保证无重复,无需幂等 D 应验证重复消费被幂等拦截、同 key 消息按序消费、事务原子 ✓ 正确答案
# 5. 分布式快照(Chandy-Lamport 算法)在测试/验证中如何应用?如何验证全局状态的一致性? A 用 Chandy-Lamport 快照获取一致全局状态并对比副本数据 ✓ 正确答案 B 快照无需包含在途消息 C 快照只能用于网络故障,无法验证一致性 D 分布式快照需要全局时钟
# 6. 线性一致性与顺序一致性(Sequential Consistency)、因果一致性(Causal Consistency)的测试验证方法有何不同? A 顺序一致性不要求全局顺序 B 三种一致性验证方法完全相同 C 线性一致性验证最严格,因果一致性只要求因果序 ✓ 正确答案 D 因果一致性需要验证实时顺序
# 7. 共识算法测试中如何模拟拜占庭故障(Byzantine Fault)?与崩溃故障(Crash Fault)测试的差异? A 拜占庭容错无需限定恶意节点数 B 拜占庭故障模拟节点发送错误/矛盾消息,崩溃故障是节点停止响应 ✓ 正确答案 C 拜占庭故障与崩溃故障完全等价 D 崩溃故障测试需验证恶意节点下的结果正确性
# 8. 分布式系统测试中的'确定性模拟(Deterministic Simulation)'方法及其优势? A 确定性模拟每次运行结果都不同 B 确定性模拟无法定位 Bug 触发条件 C 通过控制网络、时钟、调度使测试可复现、可穷举 ✓ 正确答案 D 确定性模拟无法控制故障注入
# 9. 分布式锁的故障场景测试,租约过期、锁被误删、脑裂与重入如何构造并验证 A 分布式锁可以用无条件 DEL 释放 B 脑裂时两侧可以同时持锁 C 分布式锁无需验证互斥性 D 应验证租约过期后条件删除防止误删新持有者的锁 ✓ 正确答案
# 10. 最终一致性系统的对账测试,异步复制延迟下的读写一致性验证与补偿机制测试 A 最终一致性系统读操作必须立即读到最新值 B 应验证异步延迟下最终收敛、对账发现差异、补偿机制触发 ✓ 正确答案 C 对账无需对比副本数据 D 最终一致性无需验证收敛时间
# 11. 缓存与数据库一致性(双写、延迟双删、Binlog 订阅)的测试方法,如何构造并发读写场景验证最终一致? A 并发读写场景无需构造 B 应构造并发读写验证最终一致与不一致窗口可控 ✓ 正确答案 C 缓存与数据库可长期不一致 D 延迟双删无法缩小不一致窗口
# 12. 时钟与一致性,逻辑时钟与混合逻辑时钟在一致性判断中的作用,时钟回拨如何影响一致性测试结果? A 混合逻辑时钟完全不受物理时钟影响 B 时钟回拨无需测试 C 物理时钟回拨不影响一致性 D 逻辑时钟不依赖物理时钟用于因果排序,物理时钟回拨可能破坏时间戳排序 ✓ 正确答案
# 13. 分布式 ID 的一致性测试,全局唯一 ID 生成在时钟回拨、并发与节点重启场景下的唯一性与单调性如何验证? A 时钟回拨不影响雪花 ID 唯一性 B 节点重启后 ID 可以重复 C 分布式 ID 无需验证单调性 D 应验证并发/重启/时钟回拨下 ID 唯一且单调 ✓ 正确答案
# 14. 分布式事务(2PC/3PC/Saga)的测试策略,如何验证在各种故障点下的事务原子性和一致性? A 应注入协调者/参与者/网络故障,验证 2PC 原子性与 Saga 补偿 ✓ 正确答案 B 2PC 允许部分提交 C Saga 无需验证补偿操作 D 分布式事务测试无需故障注入
# 15. 一致性测试的边界,业务可接受? A 一致性测试无需考虑业务容忍度 B 一致性测试应匹配业务需求,验证不一致窗口在可接受范围 ✓ 正确答案 C 所有系统都需强一致 D 最终一致业务也需严格线性一致
# 16. 一致性测试的报告,如何呈现与决策? A 一致性测试报告无需定位违规点 B 报告无法判断系统是否满足业务需求 C 报告应呈现违规证据、场景覆盖与收敛时间,驱动上线决策 ✓ 正确答案 D 报告只需给出通过/失败结论
# 17. 注册中心/配置中心的分布式一致性测试,服务发现延迟、配置推送丢失与节点故障的用例设计? A 应验证服务发现延迟、配置推送不丢失、节点故障高可用 ✓ 正确答案 B 节点故障时服务发现必须中断 C 服务发现延迟无需验证 D 配置推送可以丢失
# 18. 会话级一致性测试,读己之写、单调读与因果读等客户端可见性保证如何设计多会话用例验证? A 会话级一致性与副本延迟无关 B 会话读可以读到更旧的值 C 读己之写无需验证 D 应验证读己之写、单调读、因果读等会话内可见性保证 ✓ 正确答案