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]
   48   49   50   51   52   53   54   55   56   57   58