
🧠 记忆锚点:固定数据与版本,既测确定性契约也测概率分布;看分层退化,不只看平均分。
💡 答案要点
回归测试挑战:
- LLM 输出有随机性,不能简单对比
- 测试用例维护成本高
- 评估标准主观性强
测试框架:
┌─────────────────────────────────────────────────────────┐
│ AI 应用回归测试框架 │
└─────────────────────────────────────────────────────────┘
测试集 → 执行 → 评估 → 报告
↓ ↓ ↓ ↓
黄金用例 批量运行 自动评分 对比分析测试用例设计:
| 类型 | 说明 | 示例 |
|---|---|---|
| 黄金用例 | 标准问题 + 标准答案 | "北京天气?" → "北京今天晴..." |
| 边界用例 | 极端或异常情况 | 超长输入、特殊字符 |
| 对抗用例 | 故意攻击测试 | Prompt 注入、越狱尝试 |
| 回归用例 | 历史 Bug 复现 | 之前修复的问题 |
评估方法:
python
# 语义相似度评估
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
def semantic_similarity(text1, text2):
emb1 = model.encode(text1)
emb2 = model.encode(text2)
return cosine_similarity([emb1], [emb2])[0][0]
# 测试用例
test_cases = [
{"input": "北京天气", "expected": "北京今天晴朗...", "threshold": 0.8},
{"input": "上海气温", "expected": "上海今天 25 度...", "threshold": 0.8},
]
for case in test_cases:
actual = llm.generate(case["input"])
score = semantic_similarity(actual, case["expected"])
assert score >= case["threshold"], f"相似度 {score} 低于阈值"面试话术:
"黄金集应按真实任务和风险分层,并持续加入线上失败案例。语义相似度只能覆盖部分质量,阈值必须用人工标注校准;安全集只能证明已测攻击下的表现,不能保证‘不会被越狱’,还需红队、权限隔离和持续监控。"