sui-coverage

🔍 Sui Move 合约测试覆盖分析助手

基于 Python 的 Sui Move 合约测试覆盖率分析工具,通过解析覆盖率报告识别未测试代码路径,辅助开发者完善测试用例并进行安全审计,提升智能合约可靠性。

收藏
13.6k
安装
2.8k
版本
v1.1.1
CLS 安全性认证2026-07-06
点击查看完整报告 >

使用说明

Sui Coverage Skill 是一套专为 Sui Move 智能合约设计的测试覆盖率分析与安全审计工具集。该工具通过 Python 脚本解析 Sui CLI 生成的覆盖率数据,帮助开发者精准识别未测试的函数、分支路径和断言场景,从而系统化地提升合约测试质量与安全性。

核心用法围绕本地分析流程展开:开发者首先运行 sui move test --coverage 生成原始数据,随后通过 analyze_source.py 解析并生成结构化的 Markdown 报告,清晰标注未调用的函数、未覆盖的断言失败路径以及条件分支覆盖缺口。工具进一步提供标准化的测试代码模板,支持针对普通函数、预期失败场景和分支逻辑快速编写补充测试,形成"检测-分析-修复-验证"的完整闭环。

显著优点体现在其架构的简洁性与安全性:完全基于 Python 标准库开发,零第三方依赖消除了供应链攻击风险;纯本地文件处理模式确保敏感合约代码不会外泄;独特的安全审计集成设计,使开发者在编写测试过程中同步进行访问控制、整数溢出、经济模型漏洞等关键安全检查,实现测试覆盖率与安全性双重提升。

局限性主要包括对生态的依赖:工具仅支持 Sui Move 语言,需预先安装官方 Sui CLI;作为个人社区项目(T3 来源),长期维护稳定性不及官方工具;此外,Python 子进程调用外部命令的执行模式对工作目录和路径配置有严格要求。

该工具最适合 Sui 区块链开发者、智能合约安全审计师以及 DeFi 协议开发团队使用,特别适用于需要达到高测试覆盖率标准(如 100% 分支覆盖)的金融级合约项目,或作为 CI/CD 流程中的自动化质量门禁。

常规使用风险主要涉及执行环境:工具通过 os.execvp() 启动 Sui CLI 子进程,虽命令参数经过安全处理,但需确保本地安装的 Sui 二进制来自官方渠道;工作目录切换操作可能影响相对路径解析;生成的覆盖率报告包含源代码片段,分享时需注意知识产权与隐私保护。

安全解读

核心用法

sui-coverage 是一套针对 Sui Move 智能合约的专业测试覆盖率分析工具集,通过 Python 脚本解析 Sui CLI 生成的覆盖率数据,帮助开发者识别未测试代码、生成缺失测试用例,并在测试编写过程中进行安全审计。

主要工作流程:
1. 执行 sui move test --coverage --trace 生成原始覆盖率数据

2. 运行 analyze_source.py 解析并生成结构化报告(Markdown/JSON)

3. 根据报告识别未调用函数、未覆盖断言失败路径、未执行分支

4. 按照提供的模板编写针对性测试用例

5. 循环验证直至达到目标覆盖率

三大核心工具:

  • analyze_source.py: 主分析工具,解析源码级覆盖率,输出可读报告
  • analyze.py: LCOV 格式统计工具,支持路径过滤和源码上下文
  • parse_bytecode.py: 底层字节码分析工具

显著优点

  • 安全零依赖:仅使用 Python 标准库(os/sys/re/json/argparse 等),完全杜绝供应链攻击风险
  • 功能高度聚焦:专为 Sui Move 生态设计,深度集成 Sui CLI 的覆盖率输出格式
  • 测试驱动安全:将"写测试"与"安全审计"结合,在补全覆盖率的同时主动发现访问控制、溢出、经济攻击等漏洞
  • 输出格式友好:支持 Markdown 报告便于人工审阅,JSON 格式便于自动化集成
  • 来源可信:GitHub 开源项目,4个公开发布版本,代码提交历史透明

潜在局限

  • 生态绑定:完全依赖 Sui 官方 CLI,若 Sui 工具链变更可能需要同步更新
  • 本地执行:需预装 sui 二进制,无法在纯浏览器/沙箱环境运行
  • 功能单一:专注于覆盖率分析,不替代完整的模糊测试或形式化验证
  • 路径验证不足:当前版本对用户输入路径的验证较宽松,存在理论上的路径遍历风险(实际影响极低)

适合人群

  • Sui Move 智能合约开发者
  • 需要满足合规审计要求的 DeFi 协议团队
  • 安全研究人员进行合约审计前的快速扫描
  • 希望从"写测试"中培养安全思维的开发者

常规风险

| 风险类型 | 等级 | 说明 |
|---------|------|------|
| 供应链攻击 | 极低 | 零第三方依赖 |
| 数据外泄 | 极低 | 无网络请求代码 |
| 代码注入 | 极低 | 无 eval/exec,子进程参数固定 |
| 路径遍历 | 低 | 建议增加路径验证(当前为可选改进项)|
| 子进程挂起 | 低 | 建议增加超时控制 |

该工具本身不产生链上交易,仅作为本地开发辅助,使用风险主要限于本地文件系统读取范围。

sui-coverage 内容

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