Page 53 - 《软件学报》2025年第7期
P. 53
2974 软件学报 2025 年第 36 卷第 7 期
适配方法 人工适配模 型代码映射 人工适配消 息格式 人工适配 消息格式 人工插入 事件批注 人工识别 共识故障点 人工识别IO 故障注入点 人工构建 配置依赖 人工识别并 插桩超时库
工具扩展性
支持的分布式 系统 ZooKeeper, Xraft, Raftjava 区块链系统, P2P系统 区块链系统, P2P系统 Braft, Dqlite, Redis, MongoDB, ScyllaDB 区块链系统、 P2P系统 ZooKeeper, HBase, HDFS HCommon, HDFS, HBase, ZooKeeper HDFS, ZooKeeper, MySQL Etheruem
复现 能力 手动 分析 基于消息 序列分析 基于消息 序列分析 手动 分析 基于序列 自动复现 手动 分析 手动 分析 基于故障 序列分析
缺陷发现 判断 准则 模型与代码实 现差分测试 ASAN, 交易 结果建模 关键信息提取+ 规则匹配 日志分析, 一致性检测 节点活性、数 据一致性检测 节点活性检测 代码插桩+ 异常捕获 节点活性 检测
(续)
缺陷 运行时 类型 反馈 状态覆 功能 盖引导 内存安全、 共识状 功能 态引导 行为差 一致性 异引导 时序行 鲁棒性 为引导 一致性、 共识逻 鲁棒性 辑引导 覆盖率 鲁棒性 引导 功能 无 鲁棒性 代码深 缺陷 度反馈
表 3 分布式系统动态测试技术分类和典型工具 测试输入合成 输入 语法语 协作 维度 义验证 方式 用户 满足 NA 请求 节点 去中心 满足 消息 化通信 节点 去中心 满足 消息 化通信 错误 中心化 满足 注入 调度 错误 中心化 满足 注入 协调者 错误 中心化 满足 注入 调度 系统 运行时 NA 配置 验证 错误 中心化 满足 注入 调度 注: 测试器包含全局调度器(S)、用例生成器(T)、故障注入器(F)和缺陷监视器(M), 其中, 1S代表一个全局调度器, nT代表n个并行的用例生成器, 1F代表一个全局故障注入 器, nM代表n个并行的缺陷监视器. 缺陷类型: 一些测试工具会设计多种缺陷检测器以同时检测不同类型的系统缺陷. NA是指原本工具论文中没有提到对应的功能
测试器交互
测试 测试器 规模 环境 1物理机 1T+1M nT+1M 1物理机 (n<1/3f) nT+1M 1物理机 (n<1/3f) 1物理机 nF+1M nF+2M 1物理机 (n<1/3f) Docker nF+1M 虚拟机 KVM 1T+1M 虚拟机 Docker nF+1M 虚拟机
系统设置
节点 规模 5 10 10 5–9 10 5 20 20
年份 2023 (EuroSys) 2023 (NDSS) 2023 (S&P) 2023 (CCS) 2023 (CCS) 2023 (ICSE) 2024 (ICSE) 2024 (S&P)
Mocket [74]
工具 LOKI [75] Tyr [76] Mallory [77] Phoenix [78] CrashFuzz [79] ECFuzz [80] Chronos [21]

