auto-test-project(项目级自动化测试驱动优化)

D5.0

1. 在“目标项目根目录”创建本轮会话骨架(会自动创建 `plans/` 与 `tests/`):

intermediateCoding & Developmentcodingclaude-skill
Get This Skill on GitHub

Overview


name: auto-test-project version: 1.2.0 category: normal description: | 项目级自动化测试驱动优化技能 - 用于对完整项目(如 skill、workflow、或类似 init-project 定义的流程项目)进行持续性 AI 优化。

核心能力:

  • 支持多轮 A 轮迭代:分析 → 计划 → 优化 → 轻量测试(可重复 N 次)
  • A 轮结束后执行 B 轮质量检查:项目级七大质量原则全覆盖
  • 规范化测试会话命名:vYYYYMMDDHHMM
  • 将每轮产出固化为文档与目录(可追溯、可复现、可复盘)
  • 项目级优化:从单个 skill 扩展到完整项目(多文件、多模块、跨目录)
  • 强制验证机制:确保计划与执行的一致性,防止"假计划、空报告"
  • 模板自动替换:创建测试会话时自动替换模板变量,消除人工填写错误
  • 强制数量要求:每轮至少 10 个问题,鼓励 15-25 个

metadata: short-description: 多轮 A 轮测试 + B 轮质量检查 的项目级测试驱动优化流水线 keywords: - project testing - project QA - project optimization - bug report - regression testing - iteration - workflow - CI/CD - continuous improvement - verification - execution validation - template rendering - issue discovery techniques

auto-test-project(项目级自动化测试驱动优化)

Quick Start(最快路径)

  1. 在“目标项目根目录”创建本轮会话骨架(会自动创建 plans/tests/):
python3 auto-test-project/scripts/create_test_session.py --project-root . --kind a --create-plan

安全提示:该脚本会在 --project-root 下创建 plans/tests/。为防止误用,默认拒绝将系统根目录或用户主目录作为 project-root;如你确有需要,可显式加 --allow-unsafe-root 覆盖。

  1. plans/vYYYYMMDDHHMM.md 写出本轮问题清单(至少 10 个),并使用可引用编号(如 P0-1)。
  2. 按计划修复,并补齐 tests/vYYYYMMDDHHMM/TEST_PLAN.mdtests/vYYYYMMDDHHMM/TEST_REPORT.md 的可复现证据。
  3. 运行验证脚本(推荐收尾用严格模式):
python3 auto-test-project/scripts/verify_test_session.py --require-plan tests/vYYYYMMDDHHMM
  1. 重复 A 轮 N 次后,进入 B 轮质量检查与验证。

目标

为完整项目(包括技能项目、工作流项目、或其他具有 CLAUDE.md 或类似指令文件的项目)提供系统性的测试驱动优化能力,通过多轮迭代实现持续改进。

项目定义

本技能中的"项目"是指:

  • 具有项目指令文件(如 CLAUDE.mdAGENTS.mdPROJECT.md 等)
  • 具有明确的目录结构和功能模块
  • 包含可执行的代码、脚本、或流程定义
  • 类似 init-project 定义的项目结构

典型项目类型:

  • Agent Skills:符合 Agent Skills 开放标准 的技能
  • 工作流项目:定义了开发流程的项目
  • 脚本工具集:一组协同工作的脚本和工具
  • 文档项目:具有结构化文档和模板的项目

你要产出的东西

本 skill 的交付不是"口头建议",而是一组可追溯的文件:

  • plans/vYYYYMMDDHHMM.md:A 轮问题分析与改进计划(每轮 1 份)
  • tests/vYYYYMMDDHHMM/:A 轮测试会话目录(包含 TEST_PLAN.md + TEST_REPORT.md
  • plans/B轮-vYYYYMMDDHHMM.md:B 轮质量检查报告(七大质量原则)
  • tests/B轮-vYYYYMMDDHHMM/:B 轮验证会话目录(包含 TEST_PLAN.md + TEST_REPORT.md

目录与命名规范

  • 测试会话 ID:vYYYYMMDDHHMM(分钟级时间戳)
  • 规划文档:放在 plans/
  • 测试会话:放在 tests/
  • B 轮统一加前缀:B轮-

工作流程

概览

用户输入(项目根目录 + 问题列表/优化目标)
  ↓
[项目初始化]:验证项目结构、识别项目类型
  ↓
[A轮 × N]:分析 → 计划 → 优化 → 轻量测试
  ↓
B轮:项目级七大质量原则检查 → 针对性优化 → 轻量验证
  ↓
完成(文档齐全 + 问题闭环 + 项目 CHANGELOG.md 已更新)

项目初始化

P.1 验证项目结构

目标:确认目标是一个有效的"项目",并识别项目类型。

检查项:

  • 是否存在项目指令文件(CLAUDE.mdAGENTS.mdPROJECT.md 等)
  • 是否存在配置文件(config.yamlpackage.jsonpyproject.toml 等)
  • 是否有明确的目录结构(源码、文档、脚本等)

输出:PROJECT_TYPE.md(可选,记录项目类型和关键信息)

P.2 识别测试边界

目标:确定测试范围和优先级。

分析维度:

  • 核心模块:哪些文件/目录是项目的核心功能?
  • 测试路径:哪些功能需要优先测试?
  • 依赖关系:模块间的依赖关系是什么?

输出:在首个 A 轮计划中记录测试边界。

A 轮测试(可重复 N 次)

A.1 初始化会话(生成测试 ID + 目录)

目标:创建本轮的 plans/tests/ 骨架。

推荐使用确定性脚本:

python3 auto-test-project/scripts/create_test_session.py --project-root . --kind a --id vYYYYMMDDHHMM --create-plan

# 可选:如果你希望 TEST_PLAN.md 直接以计划文档为“种子”,再手动补齐测试细节
python3 auto-test-project/scripts/create_test_session.py --project-root . --kind a --id vYYYYMMDDHHMM --seed-test-plan-from-plan

最低要求:

  • plans/tests/ 存在
  • tests/vYYYYMMDDHHMM/TEST_PLAN.mdtests/vYYYYMMDDHHMM/TEST_REPORT.md 存在

A.2 问题分析与计划生成(写入 plans/)

目标:把本轮要解决的问题写成可执行计划,按 P0/P1/P2 排序。

输出:plans/vYYYYMMDDHHMM.md

数量要求(强制):

  • 每轮至少发现 10 个问题(P0 + P1 + P2 总和)⚠️ 强制门槛
  • 建议目标范围 15-25 个问题(考虑跨模块复杂性)

说明:默认口径以 config.yaml:test_rounds.min_issues_per_roundconfig.yaml:test_rounds.target_issues_range 为准。

核心要求

  • 全局意识:明确本轮在优化 journey 中的位置(首轮/中间/收尾)
  • 上下文连贯:说明与上轮的关联,避免孤立的问题清单
  • 项目视野:考虑跨模块影响和依赖关系,记录涉及的模块
  • 优先级依据:P0/P1/P2 必须有明确的判定标准
    • P0: 阻塞性问题、安全风险、核心功能缺陷
    • P1: 重要优化、模块间接口优化、测试覆盖不足
    • P2: 锦上添花、文档改进、后续迭代项
  • 可追溯性:每个问题必须包含位置、涉及模块、影响、修复建议、验证方法

详细结构模板references/A_ROUND_PLAN_TEMPLATE.md

问题挖掘技巧references/PROJECT_ISSUE_DISCOVERY_TECHNIQUES.md ⚠️ 强烈建议:每轮使用 3-5 个技巧组合(如跨模块一致性检查、依赖关系分析、配置管理审查等)

如首轮无明确问题列表:先做静态检查与一致性检查,再给出问题清单。

A.3 执行优化与轻量测试(写入 tests/)

目标:按计划逐项修复,并用轻量测试验证。

输出:tests/vYYYYMMDDHHMM/TEST_PLAN.mdtests/vYYYYMMDDHHMM/TEST_REPORT.md

⚠️ 强制要求 - 防止"假计划、空报告"

禁止行为

  • ❌ 保留模板占位符({{TEST_ID}}{{MODULE_1}} 等)
  • ❌ 使用"(填入...)"、"待补充"等占位文本
  • ❌ 报告内容少于 500 字(排除模板)
  • ❌ 缺少具体证据(命令输出、文件路径、截图)

必须满足

  • ✅ TEST_PLAN.md 和 TEST_REPORT.md 必须完全替换模板占位符
  • ✅ 每个验证点必须有具体的执行记录(命令、输出、结果)
  • ✅ 每个问题修复必须有前后对比或可复现证据
  • ✅ 报告必须包含明确的结论(通过/失败/部分通过)

验证方法(每轮结束后必须执行):

# 检查是否还有未替换的模板占位符
grep -r "{{" tests/vYYYYMMDDHHMM/
# 如果有输出,说明模板未被正确替换,必须修复

# 使用验证脚本(推荐)
python3 auto-test-project/scripts/verify_test_session.py tests/vYYYYMMDDHHMM

# 可选:更严格模式(要求 plans/vYYYYMMDDHHMM.md 存在且包含 P0-1 等编号,才能做计划-报告一致性检查)
python3 auto-test-project/scripts/verify_test_session.py --require-plan tests/vYYYYMMDDHHMM

轻量测试原则

  • 只验证"核心路径"与"本轮变更点"
  • 每条结论必须有可复现证据(命令输出、文件、对比结果)
  • 中间产物放入 tests/vYYYYMMDDHHMM/_artifacts/,不污染主目录
  • 项目级测试需要考虑模块间交互

TEST_PLAN.md 最低内容标准

  • 具体的测试目标(非模板,明确本轮要验证什么)
  • 明确的测试范围和边界(哪些模块/文件)
  • 可执行的验证点(至少 3 个,每个包含:描述、方法、预期结果)
  • 清晰的通过标准(可衡量的成功条件)

TEST_REPORT.md 最低内容标准

  • 执行摘要(状态:✅ 通过 / ❌ 失败 / ⚠️ 部分通过)
  • 每个验证点的执行结果(包含实际执行的命令、输出、截图路径等)
  • 问题修复记录(每个 P0/P1 问题必须记录:修复前状态 → 修复措施 → 修复后状态)
  • 遗留问题清单(未解决的问题及原因)
  • 下一步建议(是否需要下一轮、重点是什么)

A.4 是否进入下一轮

⚠️ 数量验证(强制检查):

在进入下一轮之前,必须确认:

  • 本轮已提出至少 10 个问题(P0 + P1 + P2 总和)
  • 如未达到,必须继续挖掘问题(使用跨模块分析、依赖关系分析等技巧)

⚠️ 进入下一轮前的强制检查

在进入下一轮 A 轮之前,必须执行以下验证:

# 1. 检查模板占位符是否被替换
python3 auto-test-project/scripts/verify_test_session.py tests/vYYYYMMDDHHMM

# 2. 检查计划与报告的一致性
# - plans/vYYYYMMDDHHMM.md 中的每个问题是否在 TEST_REPORT.md 中有对应记录
# - 成功标准是否在报告中有验证结论

验证失败的处理

  • 如果发现模板占位符未替换、报告空白、计划与执行脱节等问题
  • 必须先修复当前轮次的测试报告,不得进入下一轮
  • 修复标准:满足 A.3 节的所有"必须满足"条件

验证通过的判断标准

  • ✅ 问题数量 ≥ 10 个(P0 + P1 + P2 总和)
  • ✅ 所有模板占位符已替换
  • ✅ TEST_REPORT.md 内容 ≥ 500 字
  • ✅ 每个 P0/P1 问题都有修复记录
  • ✅ 计划中的成功标准都有验证结论

进入下一轮 A 轮的典型条件:

  • 用户指定的轮次数未完成
  • 仍存在未解决的 P0 / P1
  • 轻量测试报告中出现阻塞性失败
  • 发现新的跨模块问题需要解决

重要:A 轮结束后(无论多少轮),必须进入 B 轮质量检查,不得跳过。

B 轮质量检查(项目级七大质量原则)

⚠️ 强制执行:B 轮质量检查是项目级自动测试流程的强制性环节,除非用户明确要求跳过,否则不得省略。

B.1 产出质量检查报告(写入 plans/)

目标:对 A 轮后的最新状态做系统性质量检查。

输出:plans/B轮-vYYYYMMDDHHMM.md

建议数量与修复门槛(默认口径以 config.yaml:b_round_check.* 为准):

  • 建议数量:至少 10 条(P0+P1+P2,总和),目标范围 10-20
  • 修复率门槛:P0 = 100%,P1 ≥ 80%

检查维度(以 config.yamlb_round_check.dimensions 为准):

  • 硬编码/AI 功能规划
  • 冗余残留错误检查
  • 安全性检查
  • 过度设计检查
  • 通用性检查
  • 一致性检查
  • 项目指令文件瘦身检查(新增):检查 CLAUDE.md/AGENTS.md 等项目指令文件是否过于冗长,应将详细内容模块化到各模块的 references/docs/

模板:templates/B_ROUND_CHECK_TEMPLATE.md

B.2 B 轮优化与验证(写入 tests/)

目标:对 B 轮发现的 P0/P1 进行针对性修复并验证。

推荐创建独立会话目录:

python3 auto-test-project/scripts/create_test_session.py --project-root . --kind b --id vYYYYMMDDHHMM

输出:tests/B轮-vYYYYMMDDHHMM/TEST_REPORT.md

完成条件(验收)

  • 用户指定的 A 轮次数已完成(或明确说明提前结束原因)
  • B 轮质量检查已完成并形成报告(⚠️ 强制要求,参考 config.yamlb_round_check.mandatory
  • 关键问题(P0/P1)已闭环:计划 → 修复 → 证据 → 结论
  • plans/tests/ 结构完整且可追溯
  • 目标项目的 CHANGELOG.md 已更新
  • 每轮测试会话都通过验证脚本检查(防止"假计划、空报告")

最终验证命令

# 验证所有测试会话的完整性
for session in tests/v*/; do
    echo "验证: $session"
    python3 auto-test-project/scripts/verify_test_session.py "$session"
done

# 验证 B 轮会话(如有)
for session in tests/B轮-*/; do
    echo "验证: $session"
    python3 auto-test-project/scripts/verify_test_session.py "$session"
done

与 auto-test-skill 的区别

维度auto-test-skillauto-test-project
目标对象单个 Agent Skill完整项目(多模块、多文件)
测试范围单个 skill 目录整个项目目录
问题分析skill 级别(SKILL.md、config.yaml)项目级别(跨模块、跨文件)
质量检查skill 六大原则项目级七大原则(扩展)
输出位置在 skill 内部创建 plans/tests/在项目根目录创建 plans/tests/
CHANGELOG更新 skill 的 CHANGELOG.md更新项目的 CHANGELOG.md

可复用资源

  • 配置:config.yaml
  • 模板:templates/
  • 参考:
    • references/FAQ.md:常见问题(如何检测“假计划/空报告”、证据标准、避免会话污染等)
    • references/PROJECT_TESTING_BEST_PRACTICES.md:项目级测试最佳实践
    • references/PROJECT_ISSUE_DISCOVERY_TECHNIQUES.md:项目级问题挖掘技巧 ⚠️ 强烈建议每轮使用 3-5 个技巧组合
    • references/EXAMPLE_STRICT_MINIMAL.md:严格模式最小示例(P0-1 编号如何让计划-报告一致性检查落地)
    • references/EXAMPLE_TEST_REPORT.md:完整的测试报告示例(12 个问题,展示期望的输出质量)
  • 辅助脚本:
    • scripts/create_test_session.py:创建测试会话目录(支持模板变量自动替换)
    • scripts/verify_test_session.py:验证测试会话完整性(包含计划-执行一致性检查)
    • scripts/verify_all_sessions.py:批量验证 tests/ 下的所有会话(可选严格模式)
    • scripts/verify_skill.py:一键自检本 skill(必需文件、脚本可用、模板关键占位符自动填充)

常见问题与最佳实践

为避免 SKILL.md 过长,常见问题与最佳实践下沉到 references:

  • references/FAQ.md
  • references/PROJECT_TESTING_BEST_PRACTICES.md

What This Skill Can Do

AI-generated examples showing real capabilities

Ready to use this skill?

Visit the original repository to get the full skill configuration and installation instructions.

View on GitHub

Related Skills