用途:针对用户已有的 Simulink 覆盖率结果,解释决策、条件、MCDC、关系边界、饱和/溢出、查找表执行等各类目标为何缺失、未满足或未覆盖,并给出每个目标的处置建议。它把两个问题分开:某结果是可达的吗(用 SLDV 死逻辑检测作形式化证明),以及可达情况下为何未被测试、若死逻辑是否为有意设计(由代理结合输入追踪与模型结构给出判断,始终作为建议)。
支持的覆盖率来源:cvsim 结果、.cvt 文件、开启覆盖率的仿真(Simulink.SimulationOutput)、Simulink Test 的 ResultSet,统一解析为 cvdata/cvdatagroup。多单元时会先询问解释哪一个;有单次与累计视图时默认累计。
使用方式:脚本放在技能 scripts/ 目录,用 evaluate_matlab_code 调用且 project_path 指向该目录;不要用 addpath、restoredefaultpath、savepath 修改路径。流程分三步:1)resolveCoverageData + getCoverageSummary 汇总;2)收集未覆盖结果,若含决策/条件/MCDC 则 detectDeadLogicObjectives + markSldvDeadLogic 做精确键连接;3)traceObjectiveInputs 追踪所属模块输入,据此生成测试场景或覆盖过滤器建议。
限制:技能只读取已有结果,不采集覆盖率,也不编写或生成测试;需 MATLAB R2023a+、Simulink Coverage,SLDV 用于死逻辑检测,Simulink Check/Model Slicer 用于输入追踪;引擎不可用时会如实说明,不伪造证据。写 .cvf 过滤器或改模型须先获明确批准;不得将“可安全过滤”当作事实结论。