面灵AI→

AI 测试面试题:测试数据集怎么分层搭、BadCase 怎么管

轮次
面试八股
时间
2026-10
来源
牛客网

《面试题目》

  1. 测试数据集怎么构建?
  2. 数据集为什么要分层,各层解决什么问题?
  3. BadCase 管理方案怎么设计?

《参考解析》

三层数据集:

  • 基础正向集:覆盖大多数用户的日常场景,来源是内部实拍素材与脱敏后的线上样本,用来衡量常规效果。它的作用是给出「这个版本在正常输入下是否退化」的基线。
  • 边界与对抗集:手工构造极端输入(暗光、逆光、快速运动、遮挡、噪点;文本场景则是长文本、错别字、方言、注入指令),用来验证鲁棒性。这一层必须手造,模型自己生成不出真正的边界。
  • 历史 BadCase 集:所有迭代中发现过的问题样本,每次模型升级必须全量复测。这是回归测试里最有价值的部分,因为它记录的是「真实掉过的坑」。

构建时的三件事:清洗(剔除损坏、重复、无效素材)、标注(场景类型 + 预期判定标准,标注口径要写进文档,否则不同人标出来不一致)、脱敏(人脸、车牌、手机号、账户信息)。数据集本身要版本管理,每次变更记录改了什么、为什么改,否则跨版本对比没有意义。

BadCase 管理当资产管理,流程是四步:

  1. 收集:自动化评测脚本先筛可疑样本(低分、置信度低、与基线差异大),再叠加人工巡检与线上采样。
  2. 分类标注:打上失败类型(画面扭曲、虚影、拼接断层 / 答非所问、事实错误、越狱成功)、触发场景、设备参数、模型版本,便于聚类分析。
  3. 入库:素材 + 描述 + 指标数据统一存储,支持检索与按类型抽样。
  4. 闭环:提缺陷给算法修复 → 修复后把这条加入回归集 → 后续每轮迭代自动复测 → 定期统计分布,看高频失败场景反推补测试集。

面试里最容易漏的一句:BadCase 的价值不在「修掉这一条」,而在「同类问题不再出现」。所以要么把它变成回归用例,要么把它抽象成一条评测规则,否则同一个坑会反复踩。

回答这类题的加分项是给量级与节奏:基础集多大、对抗集怎么扩、回归集每轮跑多长时间、多久做一次全量复盘。有数字的答案才像做过。