Back to skills
SKILL.md
Ai System Testing
ASecurityTest AI features (LLM/prompt/agent/RAG): risk modeling, rubric design, tolerant assertions, judge calibration, prompt regression, injection testing. Not for: deterministic features, prompt writing. 测 AI 功能:非确定性风险建模、评测集与 rubric、容错断言、judge 校准、prompt 回归与注入面测试。不用于:传统功能、写 prompt、模型训练。
- 64 stars
- 0 votes
- 0 copies
- 0 views
- Added November 12, 2026
Security analysis
100/100Pro scans all 3 files and shows the line behind each finding
npx -y skills add fishzjp/qa-skills --skill ai-system-testing --agent claude-codeAre you the author of Ai System Testing?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/fishzjp-ai-system-testing)---
name: ai-system-testing
slug: ai-system-testing
displayName: AI 系统测试
version: 0.9.0
description: "Test AI features (LLM/prompt/agent/RAG): risk modeling, rubric design, tolerant assertions, judge calibration, prompt regression, injection testing. Not for: deterministic features, prompt writing. 测 AI 功能:非确定性风险建模、评测集与 rubric、容错断言、judge 校准、prompt 回归与注入面测试。不用于:传统功能、写 prompt、模型训练。"
---
# AI 系统测试(ai-system-testing)
被测对象是 **AI 功能**(LLM 特性、prompt 行为、agent/工具调用、RAG 检索面)时的测试方法论。与传统测试的根本差异只有一个:**输出不确定**——同输入不同输出是常态,传统"期望值精确断言"大面积失效。本 skill 把不确定性本身作为被测对象:风险建模 → 可判定评测设计 → 容错断言 → judge 校准 → 回归与安全边界。
> 诚实条款:LLM 评测存在采样方差。任何评测结论(通过率、得分)**必须带样本量与方差说明**;n=1 的结论只能表述为观察,不得表述为达标。设计红线沿用 `../core/executability.md`——评测任务同样要"可判定",判分点不可判定 = 评测无效。
> **定位**:本 skill 是**被测域**(SUT 是 AI 系统)的承接方,不是流水线的固定阶段——功能域十轴决策(`../core/test-type-matrix.md`)照常执行;AI 特有风险(不确定性 / 幻觉 / 注入 / 成本与延迟)由本 skill 补上。**触发判据是被测对象含 AI 行为,不是任务里出现"测试"二字**。
- **输入**:AI 功能的需求/PRD、prompt(或系统提示词配置)、样本输出(真实或预录)、agent 工具调用记录(如适用)、检索语料边界(RAG,如适用)
- **输出(落盘)**:`{项目}/测试报告_AI评测_{日期}.md`(功能名写入报告头 §1;用户/任务指定文件名时以其为准)——评测集 + rubric + 判分结果 + **方差披露节**(样本量/通过率区间/已知盲区);prompt 回归分析(工作流三);注入面移交包(工作流五,交安全责任方)。报告格式与字段口径按 `../core/report-template.md`(此时加载)。**验收/回归结论一律以"证据 + 选项"呈现,通过/上线/定级的判定权在产品与安全责任方,不在测试**
- **边界**:传统确定性功能 → 各既有 skill(十轴决策);prompt 的编写与优化本身 → 开发职责,本 skill 只测其行为;模型训练/微调 → 训练方;生产环境事故 → 运维/专项
## When to Use
- 被测功能含 LLM 调用(生成、摘要、分类、抽取、翻译、代码生成等)或 prompt 驱动行为
- agent/工作流产品的工具调用正确性、循环与卡死面需要测试
- prompt(或模型版本、温度参数、检索语料)发生变更,需要回归测试
- 需要为 AI 功能设计评测集、判分 rubric 或验收标准
- 怀疑 AI 功能存在注入、越权、提示泄露等安全面风险
## When NOT to Use
- 被测对象是传统确定性功能(同输入必同输出)→ 按 `../core/test-type-matrix.md` 十轴走既有 skill
- 帮用户写 prompt / 优化 prompt 效果 → 开发职责(本 skill 只定义"怎么测",不定义"怎么写")
- 模型训练、微调、数据标注 → 训练方职责
- 已确认缺陷的根因定位(AI 功能输出的错误样例定性后)→ `bug-analysis`
- 纯性能/压测(吞吐、延迟分布)→ 移交包走 `../core/test-type-matrix.md` 性能轴
## 工作流零:AI 特性风险建模(前置必做)
对被测 AI 功能按五面建风险清单(每条挂证据与优先级,接 `../core/risk-model.md` 两因子):
1. **非确定性面**:同输入漂移(温度/模型版本/检索变化);后果 = 断言脆断与验收波动
2. **正确性面(幻觉)**:编造事实、引用不存在来源、参数幻觉——按"可验证锚点"测试(输出中的事实必须能在输入/语料中定位)
3. **安全面**:注入(用户输入劫持指令)、越权(工具调用超出授权)、提示泄露——见工作流五
4. **成本与延迟面**:token 成本、延迟分布——纳入验收口径(如实声明阈值来源);**调用量与下游直驱程度是影响放大因子**(日均调用越高、越直接驱动生产决策,回归标准越严)
5. **数据回流面**:用户数据进入 prompt/语料的路径——隐私与回归影响(变更语料 = 变更行为)
## 工作流一:评测集与 rubric 设计
1. **黄金标准**:每条评测样本先定义"可判定判分点"——判分点必须满足:第三方依此能独立判定通过/失败(同 `../core/executability.md` 可执行性标准)。"摘要写得不错"不是判分点;"摘要包含全部 3 个关键金额且无编造条目"是。
2. **样本来源**:真实历史 case 优先(脱敏);边界样本(最长输入、多语言、注入尝试)显式列入——**评测集不含边界样本 = 验收盲区**。
3. **rubric 模式库**:`此时加载 references/eval-design-patterns.md`(判分点模板、断言模式库、样本设计清单)。
4. **评测集自身要测**:对判分点做锚点对照(预埋已知好/坏样本,judge 或人工评分必须能分辨——分不开 = rubric 无效,回炉)。
## 工作流二:容错断言(非确定性输出的断言策略)
按"确定性从高到低"优先选择断言模式(完整模式库见 `references/eval-design-patterns.md` 第 3 节):
- **结构断言**(最高确定性):JSON schema、字段存在性、格式约束——能硬断言的绝不采样评审
- **关键字段精确断言**:金额、ID、日期等不可漂移字段——逐字相等
- **内容包含断言**:关键事实/关键词在输出中(容忍措辞漂移)
- **阈值断言**:数值型判分(相似度、命中率)设阈值,阈值来源必须注明(业务约定或历史分布分位数,禁止拍脑袋)
- **多数投票**:n 次采样按多数判定(n≥3,采样参数记录在案)——用于"应当稳定"的行为
- **judge 评审**(最低确定性,最后手段):长文本语义质量——judge 必须校准(工作流四),judge 结论必须挂逐点证据
- **禁止**:对自然语言长文本做逐字断言(脆断无价值);对"应当稳定"的行为用单次采样定生死
## 工作流三:prompt 回归
**prompt 变更 = 代码变更**,纳入回归纪律:
1. **Diff 分析**:prompt 改了什么(指令增删/格式约束/少样本示例变更)→ 推导受控行为面
2. **回归集选取**:受控行为面的既有评测样本 + 变更意图的正反样本;**判分点期望值按变更意图重算时必须显式留痕**(区分"评测集错了"与"被测行为被有意改变");全量回归仅在模型/温度等全局变更时执行
3. **回归判定**:按工作流二选断言模式;**回归结论必须带方差披露**(样本量、两次运行结果差异),单次跑绿不构成回归通过
4. **版本锚定**:prompt 版本、模型版本、温度、检索语料版本四元组记录进报告——不可复现的评测 = 无效评测
## 工作流四:judge 选择与校准
- **judge 选择**:自动指标(结构/包含)> 专用小模型 > 通用强模型 > 人工——每降一档,校准义务加重
- **校准意识(κ 降维版)**:judge 与人工判定的一致性抽检(≥20 条);**发现 judge 不可信的信号**见 `references/judge-calibration.md`(锚点失分、宽容偏置、位置依赖、自我偏好——judge 评审自己族生成内容必须披露)
- **judge 不可信的处置**:换 judge / 改判分点为可机械判定 / 降级为人工——不得带着未校准 judge 出报告
## 工作流五:注入与越权面(移交包)
1. **注入测试**:在用户输入中植入指令劫持尝试(忽略前文/泄露系统提示/调用未授权工具),记录输出行为
2. **越权测试**:以受限角色诱导工具调用越权参数,核对实际调用参数与授权边界——**缺陷定性对象是授权边界的执行(agent 侧),用户诱导只是触发器**
3. **产出移交包**《注入面测试移交_{功能}_{日期}.md》:尝试清单 × 输出行为 × 影响评估——**移交安全责任方处置,本 skill 不做安全结论**(测试证据分级按 `../core/evidence.md`)
4. **工具调用行为面的计数口径**:正确调用 / 越权调用 / 无进展异常 三列分立计数,并核对**会话累计次数 vs 声明上限**(累计超限而未熔断 = 熔断失效发现,单列上报);逐条判定引用会话轮次与授权条款出处
5. 循环/卡死面:工具调用次数上限、无进展循环检测——与 agent 编排方约定熔断语义
## 与既有流水线衔接
- **编排入口**:"帮我完整测这个 AI 功能"是端到端诉求 → `qa` 编排;阶段 2 策略照常产 type_scope,阶段 3 用例与阶段 5 执行涉及 AI 行为的判分点、断言强度与方差披露按本 skill 执行
- **E2E 断言降级策略**:AI 功能嵌在 E2E 流程时,能硬断言的(结构、关键字段、副作用落库)保持硬断言;语义类断言降级为"采样评审 + 阈值",在 `../core/pipeline-integration.md` 门禁中注明采样率与阈值来源
- **测试策略**:AI 功能在 `../core/test-type-matrix.md` 中的定位 = **被测域**(SUT 是 AI 系统),非新增类型轴——十轴决策照常,AI 特有风险由本 skill 承接
- **沉淀**:稳定的评测集、judge 校准结论、注入尝试模式——满足"三个月判据"交 `qa-memory`(评测资产按项目治理政策管理,勿入公开仓)
## 速查
| 场景 | 动作 | 禁止 |
|------|------|------|
| 需求方要"验收 AI 摘要功能" | 工作流一定义可判定 rubric + 边界样本 | 用"看起来不错"类不可判定判分点 |
| 单次输出不理想就报 Bug | 复采样(n≥3)+ 判定是能力缺陷还是采样波动 | n=1 定生死 |
| prompt 改了一句话 | 工作流三回归(带方差披露) | "改的是 prompt 不用回归" |
| judge 打分两极摇摆 | 校准抽检,判定 judge 不可信 → 回炉 | 未校准 judge 直接出结论 |
| 输出里出现疑似注入响应 | 工作流五移交包,交安全方 | 自行定性"无风险" |
| 出具评测/安全/验收结论 | 以证据+选项呈现,**判定权在产品与安全责任方** | 替用户拍板放行、定级或宣布达标 |
## 反模式
| 反模式 | 后果 | 替代 |
|--------|------|------|
| 逐字断言自然语言输出 | 偶发漂移即假失败,测试无人信 | 结构/包含/阈值断言阶梯 |
| n=1 采样下结论 | 把采样波动当能力变化,误报漏报 | n≥3 + 方差披露 |
| 评测集全是顺样本 | 验收通过但上线即翻车 | 边界样本显式列入(注入/极值/多语言) |
| 未校准 judge 当裁判 | 宽容偏置使垃圾输出过审 | 锚点对照抽检,不可信即回炉 |
| 评测结论无方差说明 | 不可复现、不可审计 | 样本量 + 通过率区间强制披露 |
Files in this skill
- SKILL.md
- references/eval-design-patterns.md
- references/judge-calibration.md
Attribution
Related skills
View all in testing →Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.