首页 / 资讯中心 / 文章详情

CT-AI 1.0中文版大纲:AI测试学习路径与模型验收检查单

CT-AI 1.0中文版大纲:AI测试学习路径与模型验收检查单 ★ FEATURED ARTICLE
简介这份《ISTQB-人工智能测试大纲》面向软件测试工程师、AI质量保障人员及备考ISTQB CT-AI认证的读者版本为CT-AI-1.0-CN-1.0共90页。内容从人工智能定义、分类与质量特征讲起覆盖机器学习总览、数据清洗与特征工程、精确率/召回率/F1等功能表现度量并延伸到神经网络结构、训练过程、深度学习测试与模型泛化验证。后半部分聚焦AI系统测试策略与黑盒、白盒、灰盒方法详细讨论可解释性、公平性、鲁棒性和安全性等专属质量特征还涉及测试环境搭建及用AI辅助测试用例设计与自动化。压缩包内为1个PDF文件约4.03MB便于查阅检索已有1190人学习。读者可据此建立十一章知识框架对照学习目标查漏补缺适合从基础概念入门到专项技术进阶的读者按章学习也方便团队内部培训与测试方案评审时快速定位相关知识点。1. 拿到这份九十页大纲先别急着背它解决的是 AI 测试没抓手的问题模型迭代速度比测试方案跑得快这是多数团队第一次做人工智能测试时的共同感受需求评审时没人说得清这个模型的验收标准到底是什么上线前只能拿历史数据集跑一遍指标看着漂亮线上照样翻车。这份 CT-AI 1.0 中文版大纲版本号 CT-AI-1.0-CN-1.02023 年 2 月发布补的正是这块空缺——它不提供工具提供的是一套把深度学习测试、模型测试拆成可考核条目的知识框架从数据准备、功能表现度量一路讲到蜕变测试、对抗攻击和测试环境搭建。它适合三类人做功能测试想转 AI 方向的工程师、要给模型定验收口径的测试负责人、以及准备考认证的人。九十页里真正能直接抄进项目的是第四、五、八、九章前三章是概念对齐第十章讲环境第十一章换了视角讲怎么用 AI 反哺测试。下面按骨架—落地—技术—踩坑—进阶的顺序拆。2. 拆骨架11 章、前 10 章 1311 分钟学时怎么对应到一条测试流水线先把目录当成一张地图看。前 10 章讲的是怎么测 AI 系统第 11 章讲怎么用 AI 做测试方向完全相反很多人读到第十章才发现这一点前面花了大量时间在找一个不存在的工具清单。大纲在每章标题后面标了建议学时这个数字不是排版凑数的它直接反映该章的考核权重和内容密度。2.1 十章技术内容分三层基础层、模型层、系统层把前 10 章按抽象层次归一下会清楚很多层级对应章节标注学时解决什么问题基础层第 1 章 人工智能介绍105 分钟术语对齐有限 AI / 通用 AI、预训练模型、AIaaS 合约基础层第 2 章 AI 系统质量特征106 分钟把灵活性、自治、进化、偏差、透明度翻译成可测项模型层第 3 章 机器学习总览145 分钟三种学习范式、工作流、过拟合与欠拟合模型层第 4 章 机器学习-数据230 分钟数据准备、训练/验证/测试集划分、标注质量模型层第 5 章 功能表现度量120 分钟混淆矩阵与派生指标、基准套件模型层第 6 章 神经网络和测试65 分钟感知机、神经网络覆盖度量系统层第 7 章 AI 系统测试概述115 分钟测试级别划分输入数据、模型、组件、集成、系统、验收系统层第 8 章 测试 AI 专属质量特征150 分钟自学习、自治、偏差、非确定性、可解释性系统层第 9 章 方法与技术245 分钟对抗攻击、数据中毒、结对、背靠背、A/B、蜕变、探索性系统层第 10 章 测试环境30 分钟仿真环境与数据集构建前 10 章标注时长加起来是 1311 分钟约 22 学时按每天投入 2 小时算纯阅读加练习大概两周。这个量级说明一件事它不是速查手册是需要配练习走一遍的教材。提示第 10 章只给了 30 分钟但它对应的是环境搭建这种最耗时间的活。学时少不等于不重要恰恰说明大纲只要求你知道要准备什么具体怎么搭是你的工程判断。2.2 按学时密度排学习顺序比按目录顺序读更划算按目录从头读到尾是最常见的低效路径。前三章概念多、练习少一口气读完容易产生我都懂了的错觉到第四章数据准备才发现前面的分类模型根本没建立起来。我一般会按下面的顺序推第一步第 3 章和第 5 章连着读共 265 分钟。先有机器学习工作流的概念再看度量怎么算这两块是后面所有测试设计的地基。读完必须能做一件事拿到一份混淆矩阵说出这个模型在哪个业务场景下不能用。第二步第 4 章单独拿出来230 分钟是全书第二重的章节。数据准备、数据集质量问题、标注方式、错误标注数据这四块对应的是实际项目里最容易出事、又最容易被跳过的地方。第三步第 7、8 章共 265 分钟。这两章开始进入系统视角测试级别怎么分、概念漂移怎么测、可解释性怎么验是测试方案文档里最常被引用又最常写得空洞的部分。第四步第 9 章245 分钟全书最重。对抗攻击、数据中毒、蜕变测试、A/B 测试全是能直接变成用例设计手法的东西值得单独留一整段时间配练习。第五步第 1、2、6 章补概念第 10 章快速过一遍。第 6 章的神经网络覆盖度量只有 65 分钟但如果你要测的是深度学习模型这一节里的覆盖思路值得反复看——传统代码覆盖率在神经网络上基本失效得换一套衡量测到了什么的语言。2.3 认知水平分级决定你复习的粒度大纲第 0 章专门讲了可考核的学习目标和知识认知水平这套体系通常把学习目标分成记忆、理解、应用三级业内习惯用 K1、K2、K3 指代。K1 只要求你认得术语并能复述定义K2 要求你能解释概念之间的关系、做对比和归类K3 要求你把它用在具体场景里做计算、做设计、做判断。这个分级对复习节奏的影响很实际。按 K1 要求的内容比如什么是有限人工智能背一遍术语表就够了花两小时做思维导图是浪费。按 K3 要求的内容比如给定一份混淆矩阵为指定业务场景选择合适的功能表现度量光看定义没用必须自己拿几组真实数据算一遍再解释为什么在这个场景下召回率比精确率重要。判断某一段是 K1 还是 K3有个简单的信号凡是章节里带动手练习或实践练习标记的基本都是 K3。目录里能数出来的练习点包括第 3 章的过拟合与欠拟合演示、第 4 章的机器学习数据准备与训练测试集识别、第 5 章的模型评估、第 6 章的简单感知器实现、第 8 章的模型可解释性、第 9 章的结对测试与蜕变测试、第 9 章的探索性测试与 EDA。这几个点必须动手其余内容阅读加笔记即可。注意不要在没有练习环境的情况下硬啃第 4、9 章。这两章的练习需要真实数据集和可运行的模型光看文字描述收获不到三成。3. 从数据到度量把第 4、5 章压成一张模型验收表第 4 章和第 5 章合计 350 分钟是全书里最能直接转化成工程动作的部分。前者管喂进去的东西对不对后者管出来的数字能不能信。这两块合起来就是一份模型验收表的雏形。3.1 数据准备阶段的四个检查点大纲第 4 章把数据准备拆成几个挑战数据获取、数据清洗、特征处理、数据集划分再加上第 4.3 到 4.5 节的数据集质量、数据质量对模型的影响、有监督学习的数据标注。落到项目里我会把它压缩成四个必须留证据的检查点检查点判定依据不通过时的处理缺失与异常关键特征缺失率、异常值占比是否有量化统计缺失率超阈值先做插补方案评审不允许直接丢行类别分布各标签样本量、长尾类别占比严重不平衡时验收指标必须换成召回率、F1 或 PR 曲线标注一致性抽 5%–10% 样本做双人重复标注算一致率一致率低于约定阈值时先修订标注规范再重标数据集划分训练/验证/测试是否隔离时间序列是否按时间切发现同源泄漏必须重切历史指标全部作废第三项最容易被忽略。大纲第 4.5.2 节专门讲了数据集中的错误标注数据错误标注不是脏数据它是有规律的噪声如果标注规范本身有歧义模型学到的就是标注员的个人偏好测试集和训练集用的是同一批标注员指标自然好看换一批人就崩。所以我一般在数据准备阶段就要一份一致率数字没有这个数字后面的指标一律不看。数据集划分这块第 4.2 节讲了训练、验证、测试集在工作流中的位置。常见做法是 60/20/20 或 70/15/15但只要是带时间属性的数据日志、交易、传感器序列随机切分就是自欺欺人。正确做法是按时间点切训练集用早期数据测试集用后期数据这样测出来的才是模型面向未来的表现。3.2 混淆矩阵与派生度量五个指标各自会在什么时候骗你第 5 章的重心是混淆矩阵和由它派生的各类功能表现度量。这是全书最像计算题的一章也是考试和实战重合度最高的部分。先把混淆矩阵摆出来真正例TP、假正例FP、真负例TN、假负例FN。四宫格本身没有意义意义在于从里面推出什么。指标计算方式适用场景什么时候会骗你准确率(TPTN) / 总数类别均衡、错判代价相近类别极度不平衡时全判多数类也能拿到高分精确率TP / (TPFP)误报代价高如告警系统靠牺牲召回换来的高分漏掉的真问题看不见召回率TP / (TPFN)漏报代价高如缺陷检出放宽判定阈值就能刷上去误报会爆F12×精确率×召回率 / (精确率召回率)需要单一数值做横向对比掩盖了两端的不对称业务上不能只看它混淆矩阵本身四宫格原始计数任何二分类验收多分类时退化成 N×N不再直观这里有个血泪经验验收会上最容易吵起来的不是模型好坏而是用哪个指标。有经验的团队会在需求阶段就把指标和阈值写进验收准则第 8.8 节测试目标和验收准则讲的就是这件事——验收准则必须在测试设计之前定不能在看到结果之后定。大纲第 5.2 节还提到分类、回归、聚类各有各的度量族。回归看的是误差量级和分布不是对错判断聚类没有标签衡量的是簇内紧致度和簇间分离度跟分类指标完全不能混用。第 5.3 节专门讲功能表现度量的局限性第 5.4 节讲怎么选第 5.5 节讲基准套件。这三节连起来读核心意思只有一个指标是工具不是结论。3.3 基准套件为什么不能直接抄第 5.5 节的基准套件很多人理解成找一套公开数据集跑个分然后跟排行榜比一比。这个理解在实际项目里会翻车。公开基准的分布、标注规范、采集设备都和你自己的数据不同在基准上 95% 的模型换到你的业务数据上可能只剩 70%。基准套件的正确用法是三条一是做选型参考同一批候选模型在同一基准上的相对排序有参考价值二是做回归护栏模型迭代后在同一基准上不能出现明显退化三是做能力边界探测找出模型在哪类样本上系统性失败。绝对分数本身没有意义相对变化和失败模式才有。提示如果团队只有一份数据集至少按时间或按来源切成两份互不重叠的子集一份调参一份验收。全部数据都参与过调参的模型指标再高也不能作为上线依据。4. 测试技术与方法对抗样本、蜕变关系、背靠背与 A/B 的选用边界第 9 章占 245 分钟是全书画篇幅最大的一章也是最能体现AI 测试和传统测试不是一回事的地方。传统测试靠预期结果比对AI 系统里预期结果本身就难确定所以这一章给的是一批没有明确 oracle 也能测的手法。选错手法比不测更糟下面按适用边界拆开。4.1 对抗攻击与数据中毒先做威胁建模再写用例第 9.1 节把这两类风险放在一起讲很有道理因为它们都是主动构造恶意输入的思路区别在于攻击面不同对抗攻击针对推理阶段在正常输入上叠加人眼不可见的扰动让模型判错数据中毒针对训练阶段在训练数据里掺入特定样本让模型在特定触发条件下产生指定输出。落到测试设计上第一件事不是造样本是威胁建模。要问清楚三个问题这个模型的输入来自哪里攻击者能不能接触到输入通道模型的输出会影响什么决策误判的代价是钱、是安全、还是仅仅体验训练数据的来源是否可控有没有第三方数据混入。三个问题的答案决定了要不要做对抗测试、做到什么强度。实践里有个常见误区把对抗测试做成跑一遍现成的攻击库报告里贴几张对比图。这种测试的结论无法复现也无法指导修复。有价值的做法是固定扰动预算比如像素值改动幅度上限、固定评估样本集、记录攻击成功率随扰动强度的变化曲线。曲线比单点数字有用得多它告诉你模型的鲁棒性边界在哪。数据中毒的测试更偏流程审查训练数据的采集链路有没有校验、第三方数据源有没有做分布比对、模型上线后有没有监控异常触发模式。这类测试很难用用例覆盖更多是查证据。4.2 蜕变测试没有参照物时批量造 oracle 的办法第 9.5 节讲的蜕变测试是这一章里最实用的一节也是我最常在项目里用的手法。思路是当你说不出正确答案是什么时就找一种输入变换使得输出必须满足某种必然关系。这个关系叫蜕变关系它替代了传统测试里的预期结果。举个具体例子图像分类模型。你可以定义这样几条关系图片整体亮度做小幅调整分类结果不应改变图片水平翻转后对左右对称类别的分类结果不应改变同一张图片做两次相同的预处理输出应当完全一致这条测的是确定性。每一条关系都能对任意输入自动生成一个测试对不需要人工标注答案测试规模可以做到很大。下面这段代码是关系校验的最小实现可以直接套进任意分类模型的测试脚本import numpy as np def check_brightness_mr(model, img, eps0.10, tol0.02): 蜕变关系输入亮度整体上调 eps 后预测类别应保持不变 且最高置信度漂移不超过 tol。 model: 需实现 predict_proba(x) - shape (n, n_classes) img: float32 数组取值已归一化到 [0, 1] eps: 扰动强度控制单次变换幅度太大就不再是小扰动 tol: 置信度漂移容忍度按模型稳定性经验设定 base model.predict_proba(img[None, ...])[0] shifted np.clip(img * (1 eps), 0.0, 1.0) # 单方向推避免正负扰动互相抵消 pert model.predict_proba(shifted[None, ...])[0] same_label base.argmax() pert.argmax() drift_ok abs(base.max() - pert.max()) tol return same_label and drift_ok, base.max(), pert.max() def run_mr_suite(model, samples, eps0.10, tol0.02): 批量跑关系返回失败样本下标便于后续做失败模式聚类 failed [] for i, img in enumerate(samples): ok, _, _ check_brightness_mr(model, img, eps, tol) if not ok: failed.append(i) return failed这段代码的逻辑说明核心是把变换前后的输出必须满足某种关系写成布尔判定任何一个样本不满足就记为关系违例。参数上有两个地方需要调eps决定扰动强度取值过大会让变换本身变成分布外样本测出来的失败不一定是模型问题一般从 0.05 到 0.15 之间扫一遍看趋势tol是置信度漂移容忍度对输出层做过温度缩放的模型要相应放宽。实践中最有价值的是失败样本的下标列表。把这批样本和它们的原始类别放在一起做分布统计经常能发现模型对某一类样本特别敏感这比一个关系违例率 3.2%的汇总数字有用得多。第 9.5.1 节配了实践练习建议至少构造三条不同性质的关系不变量关系变换后输出不变、单调关系输入某个量增大输出某个量单调变化、收敛关系输入趋近某个极限输出趋近某个值。三类关系的检错能力完全不同只做不变量关系会漏掉很多问题。4.3 结对测试、背靠背与 A/B三种对比的选用边界第 9.2 到 9.4 节连着讲了三种对比型手法名字相近但适用场景差别很大混用会导致结论无效。结对测试是把同一批输入同时喂给两个独立实现或两个不同模型比对输出差异。它适合的场景是有一个可信参照比如模型重构前后、新旧两版推理引擎、规则系统和模型系统并行。前提是两个实现的输出格式可比且差异要能分类——是类别不同、还是置信度不同、还是完全一致不同类别的处置方式不一样。背靠背测试更严格一点强调两个测试者或两个团队独立设计用例然后交叉执行。它针对的是用例设计者的思维盲区在 AI 系统里主要用来覆盖不同的数据切片思路——一个人只想到正常光照的样本另一个人专挑低照度合起来覆盖才够。A/B 测试是线上分流对比它测的不是模型对不对而是业务指标有没有变好。这里最大的坑是把 A/B 测试当成模型正确性验证A/B 只能告诉你新版在真实流量下的业务表现测不出模型在长尾样本上的失效因为长尾样本在分流里本来就少。正确做法是离线做功能表现度量与蜕变测试线上做 A/B 看业务指标两条线各自出结论。第 9.7 节为基于人工智能的系统选择测试技术给了一个选择框架核心判断维度是有没有可信 oracle、能不能构造输入变换、有没有可对比的第二实现、能不能上真实流量。四个维度对应四种手法硬套会浪费大量时间。5. 踩坑排查五条在模型测试里翻车后的记录大纲给的是知识框架落到项目里还有一层知道该做但做错了的坑。下面五条是按现象、原因、解决整理的实录基本覆盖了从数据到结果判读的完整链路。5.1 数据与标注侧的三条坑一用准确率验收不平衡数据集上线后少数类完全失效。现象是离线验收报告准确率 96%评审顺利通过上线两周后业务方反馈某类样本几乎全部识别错误。原因很直接测试集里该类样本只占 3%模型全判多数类也能拿到 97% 的准确率验收指标本身就没区分能力。解决办法是把验收指标换成召回率加 F1并且在需求阶段就查明各类别占比占比低于 10% 的类别必须单独出指标不允许只看总体数字。这条对应大纲第 5.3 节讲的度量局限性读的时候觉得是常识做的时候十有八九会忘。坑二随机切分时间序列数据离线指标虚高线上断崖下跌。现象是离线测试集指标 0.92线上灰度只有 0.71差异大到怀疑部署出了问题。排查下来是数据集切分的问题日志类数据按随机 8:2 切分训练集里混进了时间上晚于测试集的样本模型实际上看过未来。解决办法是所有带时间属性的数据一律按时间点切分训练集截止时间必须早于测试集起始时间中间留一段隔离期防止特征穿越。切完重跑离线指标掉到 0.74和线上基本吻合——指标掉了才是好事说明测的是真实能力。坑三标注一致性没量化模型学到的是标注员偏好。现象是模型在测试集上表现优秀换一批新标注的数据复测同一批样本的判定一致率只有 78%。原因是标注规范里边界情况没定义清楚两个标注员各标一半数据模型学到的是两边规范的交集测试集又恰好来自同一批标注。解决办法是抽 5%–10% 样本做双人重复标注算出一致率作为数据质量门禁指标低于阈值先改规范再重标重标完成前不出验收结论。大纲第 4.5.2 节把这类问题叫数据集中的错误标注数据本质是有规律的噪声不清掉会一直传导到指标上。5.2 执行与结果判读侧的两条坑四把 softmax 输出当概率用拿置信度阈值当通过率。现象是设了 0.9 的置信度阈值报告里写90% 以上样本高置信度通过业务方据此认为模型很可靠实际误判样本里有相当比例落在高置信度区间。原因是 softmax 输出是相对得分不是校准过的概率模型完全可以在错的时候也很自信。解决办法是先做概率校准温度缩放或保序回归再用校准后的输出设定阈值或者干脆不用置信度做通过判据改用基于间隔top1 与 top2 差值的判据。无论用哪种都要在报告里写清楚这个数字的含义不能让它被误读成正确率。坑五可解释性测试只交一张热力图评审时吵不出结论。现象是可解释性测试做了图也贴了但评审会上没人能判断这个解释算不算合格最后变成看图说话。原因是没有判定准则热力图本身只是一种可视化不构成测试结论。解决办法是把可解释性测试拆成可判定的检查项模型关注区域是否落在业务定义的关键区域内可用标注框做交并比、同一输入多次解释结果的稳定性、相似输入的解释是否一致、解释结果与人工判断的吻合率。每一项给出量化结果和阈值第 8.6 节和第 8.6.1 节的实践练习就是往这个方向走的。注意这五条的共同点是指标或证据看起来有但定义不清。AI 测试里最贵的成本不是跑测试是事后解释一个说不清来源的数字。6. 进阶用法把大纲条目改写成团队内部的 AI 测试检查单大纲读第二遍的时候我的用法会变不再按章节读而是把每个可考核条目改写成一条检查项塞进团队的测试准入准出流程。这个转换动作本身不难难的是判断哪些条目值得变成门禁、哪些只适合做背景知识。6.1 条目到检查项的转换规则转换时守三条规则一条检查项必须对应一个可观测的证据没有证据的不写检查项要绑定触发时机是需求评审、数据交付、模型交付还是上线前每条检查项要写清楚不通过时谁负责处理。按这个规则从第 4、5、7、8 章抽出来的检查项大致是这样检查项触发时机需要的证据不通过时类别分布已统计长尾类别已识别数据交付分布统计表数据方补齐或调整验收指标标注一致性已量化数据交付双标一致率报告修订规范后重标训练/验证/测试集隔离已验证模型交付切分脚本与时间边界说明重切历史指标作废验收指标与阈值已在需求阶段确定需求评审验收准则文档不进入测试执行概念漂移监控已配置上线前监控指标与告警阈值配置补充后再上线可解释性检查项已量化模型交付关注区域吻合率等量化结果补充分析这张表的价值不在于全而在于每一条都能追到一个证据文件。做季度复盘时翻证据比翻会议记录快得多。6.2 用学习目标反查覆盖一份自查方法第二件事是反查。把大纲里带练习标记的章节列出来逐条问自己这个练习我在自己项目的数据上做过一遍没有做过的话结论是什么没做过的话是缺数据还是缺环境我一般会用一张很土的自查表左边写大纲条目编号中间写本季度是否覆盖右边写证据位置。第 4 章的三个练习、第 5 章的模型评估练习、第 8 章的可解释性练习、第 9 章的结对与蜕变练习这几个是必查项。覆盖了但拿不出证据的一律按未覆盖处理——这条规则救过我一次某个季度报告里写着已做蜕变测试真去翻记录只有一份会议纪要没有任何失败样本的分析结果。第三件事是给自己留后悔药每做完一轮模型测试把当轮用的指标定义、阈值、数据集版本号、切分方式写成一个短文档存档。模型迭代三轮之后你一定会遇到为什么上次这个指标是 0.88 这次是 0.83这种问题没有存档就只能靠回忆而回忆在评审会上不成立。从那以后我每次拿到一份新的模型验收报告都强制先翻三样东西指标定义、数据集版本、切分方式。这三样缺任何一个后面的数字我都不看。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站