Sui Auto Test

🛡️ Move合约测试覆盖率与安全审计

Sui Move智能合约测试覆盖率分析与安全审计工具,自动识别未测试代码、生成缺失测试用例,集成Python脚本解析覆盖率报告。

收藏
6.4k
安装
1.7k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

Sui Coverage Skill 是一套专为 Sui 区块链 Move 语言智能合约设计的测试覆盖率分析与自动化改进工具。核心工作流包含三步:首先运行 sui move test --coverage --trace 生成原始覆盖数据,随后使用 analyze_source.py 解析并输出结构化报告(支持 Markdown/JSON 格式),最后根据报告中的未覆盖函数、未触发断言和未遍历分支编写针对性测试用例。

工具集包含三个 Python 脚本:analyze_source.py 为主工具,解析源码级覆盖信息;analyze.py 处理 LCOV 格式统计;parse_bytecode.py 提供字节码级底层分析。支持按模块过滤、路径筛选、仅显示问题文件等灵活配置。

显著优点

1. 自动化程度高:一键生成覆盖缺口清单,大幅降低人工审计成本
2. 安全驱动测试:将安全审计嵌入测试编写过程,主动识别访问控制、整数溢出、状态操控等漏洞模式

3. 完整测试模板:提供覆盖未调用函数、断言失败路径、分支覆盖的标准化代码模板

4. Move 生态原生:深度适配 Sui Move 的 #[test]#[expected_failure] 等测试属性

5. 持续集成友好:支持命令行批处理与 JSON 输出,便于 CI/CD 流水线集成

潜在缺点与局限性

  • 依赖 Sui CLI:需本地安装完整 Sui 工具链,版本兼容性可能影响功能
  • 覆盖率非绝对:100% 行覆盖不等于无漏洞,复杂业务逻辑仍需人工审计
  • Python 环境依赖:分析脚本需 Python 3 运行时,Windows 环境配置可能复杂
  • 错误码硬编码风险expected_failure 中的 abort_code 若模块重构后变更,测试可能失效

适合人群

  • Sui Move 智能合约开发者
  • 区块链安全审计工程师
  • 追求高测试覆盖率的 DeFi 协议团队
  • 需要将安全左移至开发阶段的工程团队

常规风险

  • 测试片面性风险:过度依赖工具生成的测试模板可能导致边缘场景遗漏
  • 安全误报/漏报:工具提示的"可疑模式"需结合业务逻辑判断,不可直接作为漏洞结论
  • 供应链风险:Python 脚本若引入第三方依赖,需验证其安全性
  • 性能损耗--trace 模式在大型合约集上可能显著增加测试执行时间

安全解读

综合评估

sui-coverage(又称 sui-auto-test)是专为 Sui 区块链 Move 语言智能合约设计的测试覆盖率分析与安全审计工具集。该 Skill 通过 Python 脚本解析 Sui CLI 输出的覆盖率数据,帮助开发者系统性地识别未覆盖的函数、分支和断言失败路径,并提供测试代码生成指导与安全漏洞检查框架。

核心用法

该 Skill 提供三层分析能力:

  • analyze_source.py:主分析工具,使用 PTY 捕获带 ANSI 颜色的 sui move coverage source 输出,识别未覆盖代码段并生成 Markdown 报告
  • analyze.py:LCOV 格式解析器,统计文件级覆盖率指标
  • parse_bytecode.py / parse_source.py:底层字节码与源代码解析工具

标准工作流为:运行 sui move test --coverage --trace 生成数据 → 调用分析脚本识别缺口 → 按模板编写针对性测试 → 验证覆盖率提升。

显著优点

1. 纯本地分析:完全基于 Python 标准库实现,无网络通信、无第三方依赖,数据不出本地环境
2. 安全审计融合:将测试覆盖与代码安全审查深度结合,提供访问控制、整数溢出、状态操控等 5 类漏洞的检查清单

3. 结构化输出:支持 Markdown、JSON 等多格式报告,便于集成 CI/CD 流程

4. 模板化测试生成:为未覆盖的函数、断言失败路径、分支条件提供标准化的 Move 测试代码模板

潜在局限

1. 外部依赖刚性:必须预装 Sui CLI 工具且版本兼容,无内置 fallback 机制
2. PTY 进程风险analyze_source.py 使用 os.fork() + os.execvp() 派生进程,虽参数硬编码但存在理论命令注入面

3. 无输入验证:模块名称等参数未经严格校验直接传递至 shell 命令

4. 异常处理宽泛:部分代码使用裸 except Exception 可能掩盖错误

适合人群

  • Sui/Move 智能合约开发者追求 100% 测试覆盖
  • 安全审计人员需要系统化检查合约边界条件
  • DeFi 协议团队验证经济不变量与访问控制逻辑

常规风险

  • 进程执行风险:子进程派生机制若被恶意利用可能执行非预期命令(需配合其他漏洞)
  • 路径遍历:文件读取操作未严格限制在项目目录内
  • 长时间挂起:未设置 sui 命令执行超时,超大项目可能阻塞

安全认证

CLS 安全认证评级 S 级(92 分),六维雷达显示网络流量(98)与隐私合规(95)表现优异,动态行为(90)与威胁情报(88)有提升空间。来源可信度 T2(中等级),发布者 easonc13 身份可识别,代码透明可审查。

Sui Auto Test 内容

手动下载zip · 16.0 kB
analyze_source.pytext/plain
请选择文件