Page 52 - 《软件学报》2025年第7期
P. 52
陈元亮 等: 分布式系统动态测试技术研究综述 2973
适配方法 人工插桩+ 收集负载 人工适配系 统至Erlang 复用已有客 户端应用 复用已有集 成单元测试 手动构建测 试流程 手动建立 时序模型 手动构建差 分测试流程 手动配置映 射规则 人工适配差 异模型 人工构建 API模型 自动化处理 大数据
工具扩展性
支持的分布式 系统 Cassandra, HDFS, YARN RabbitMQ, Mnesia, locks, gen leader 分布式数据传 输系统 HCommon, HDFS, HBase, ZooKeeper, Alluxio Redis, YCSB等 云原生系统 MapReduce 以太坊网 络 (geth, OpenEthereum) HBase, HDFS, Hive, Cassandra, YARN ZooKeeper, MongoDB, Redis HDFS, YARN, HBase, MapReduce, ZooKeeper 分布式存储 系统
复现 能力 手动 分析 手动 分析 手动 分析 手动 分析 手动 分析 手动 分析 手动 分析 手动 分析 手动 分析 手动 分析 手动 分析
缺陷发现 判断 准则 节点崩溃+ 异常日志 人工构建 检测模型 蜕变测试 测试断言+ 性能对比 人工定义系统 配置、断言 阈值检测 差分测试 基于历史缺陷 总结规则 人工定义 检测模型 基于日志建立 权限模型 大数据离 群点分析
(续)
缺陷 运行时 类型 反馈 一致性、 一致性 鲁棒性 引导 一致性、 偏序关 功能性 系引导 功能、 无 扩展性 功能、 异常状 性能 态引导 功能、 无 性能 性能 无 运行状 功能 态引导 功能 无 一致性 无 权限安全 无 性能 无
表 3 分布式系统动态测试技术分类和典型工具 测试输入合成 输入 语法语 协作 维度 义验证 方式 错误 满足 NA 注入 用户 满足 NA 请求 系统 关键消 满足 配置 息同步 系统 满足 NA 配置 系统 满足 NA 配置 错误 时序消 满足 注入 息同步 客户 满足 NA 请求 客户 运行时 NA 请求 验证 错误 满足 NA 注入 用户 满足 NA 请求 客户 满足 NA 请求
测试器交互
测试 测试器 规模 环境 1物理机 1F+1M Erlang 1T+1M 虚拟机 GNS3模拟 nT+1M 环境 1物理机 1T+1M 1T+1M 5物理机 20虚拟机 nT+1M 1虚拟机 1T+1M 1物理机 1T+1M 1物理机 1F+1M 1物理机 1T+1M 真实应用 1M 环境
系统设置
节点 规模 5 4 56 1 5 20 2 3 3 NA >1 000
年份 2020 (ASE) 2020 (OOPSLA) 2020 (Globecom) 2020 (OSDI) 2021 2021 (IJPEDS) 2021 (OSDI) 2021 (SOSP) 2022 (ATC) 2022 (CCS) 2023 (FAST)
工具 CoFI [64] Morpheus [65] ChaT [66] Ctests [22] Frisbee [67] TGTS [68] Fluffy [69] DUPTester [70] Modulo [71] MPChecker [72] Perseus [73]

