SuperAPI AI 工具集

mutation-testing

测试与质量

查看项目

更新于 10-15 20:13

技能介绍

用途:对指定目标执行 AI 驱动的变异测试,衡量测试套件能否捕获人为引入的缺陷,并据此加固测试。

主要能力:按风险因素(数据安全/合规、集成、数据模型、历史缺陷、变更影响、性能)生成 3-5 个有针对性、可构建、原子化的变异体,覆盖决策、取值、语句、集成与安全类变异;逐个应用并做类型检查与提交,运行测试判定杀死或存活;对存活变异做等价性检测(AST 比较与行为分析)并记录元数据;对存活且非等价的变异,选择加强已有测试或新增测试,经最多 3 次验证后提交,并输出含变异分数、Oracle 缺口与风险因素覆盖的报告;最后提供合并、保留实验分支或丢弃三种选项。

使用方式:以文件路径、目录或不带参数(默认用 git diff 取当前分支改动)作为 $ARGUMENTS;从 package.json 检测测试框架(Jest/Vitest 等)。文中给出的必要命令: git diff --name-only $(git merge-base HEAD main)...HEAD -- '.ts' '.tsx' ':!.spec.' ':!.test.' bun run test -- --coverage --collectCoverageFrom='<target-file>' --silent 2>&1 | tail -20 bun run typecheck bun run test -- <test-file-path> --silent 2>&1 jq -r '.[].commit_hash // empty' .mutation-testing/mutants.json | while read -r commit_hash; do if printf '%s' "$commit_hash" | grep -Eq '^[0-9a-f]{7,40}$'; then git revert --no-commit "$commit_hash" fi done git commit -m "chore: revert all mutants after test hardening"

适用场景:需要提升单测有效性、发现测试盲区与覆盖率高但突变分数低的项目。

限制:每文件最多 5 个变异体;不得修改测试使其在变异体上通过,不得变异测试文件;必须做构建检查;不得向受保护分支提交变异体;完成后须还原变异代码;存活变异必须做等价性检测;不得用 --no-verify;带 AI 生成的性质,报告与判定需人工复核,具体效果与费用暂未提供。