SuperAPI AI 工具集

mutation-testing

测试与质量

查看项目

更新于 10-16 04:58

技能介绍

变异测试用于回答“我的测试能否捕获这个 bug”。该技能会真实修改代码并运行测试,核心流程为:先用 git diff main...HEAD --name-only 筛选分支上改动且非测试的源码文件;随后对每个函数逐次执行单点变异,即读取原文件、施加一处变异、运行 pnpm test --run(或指定测试文件)、记录结果、立即还原代码。结果分为 KILLED(测试失败,说明测试有效)、SURVIVED(测试通过,说明需补测试)、TIMEOUT(挂起,视为已检出)。变异算子按优先级包括:边界符(< 与 <=、> 与 >= 互变)、布尔逻辑(&& 与 ||、取反去除)、算术运算(+ 与 -、* 与 /)、返回值与提前退出(return 值改 null、return true 改 false、移除提前返回)、语句删除(移除 push、await save、emit 等副作用调用)。完成后输出汇总表,列出变异位置、原文与变异后形式、结果及建议测试,并计算变异得分=(Killed+Timeout)/总数×100,低于 60% 为薄弱,60-80% 一般,80-90% 良好,90% 以上为强。规则要求每次只施加一处变异、变异后立即运行测试、立即还原原代码、优先关注分支改动、记录全部结果。限制:需在具备测试运行环境(示例使用 pnpm 与 vitest)的项目中运行;执行过程会临时改动源码,须严格还原;未提供自动安装命令、价格、平台支持与图形界面等信息,必要时需人工逐次操作。