QAC中文网站 > 使用教程 > QAC质量门禁怎么设置 QAC质量门禁未通过时怎么定位问题
QAC质量门禁怎么设置 QAC质量门禁未通过时怎么定位问题
发布时间:2026/07/30 18:36:23

  QAC质量门禁的作用,是在代码进入主分支前拦住新增缺陷。它并不是简单统计“总共有多少条告警”,而是把当前CI分析与基线构建比较,再按规则判断哪些问题不能放行。处理“QAC质量门禁怎么设置QAC质量门禁未通过时怎么定位问题”,先把基线和筛选条件定准,后面的排查会清楚很多。

  一、QAC质量门禁怎么设置

 

  常见做法是将QAC项目连接到Validate,在项目或流的CI构建页面配置门禁条件,再由流水线运行CI分析。

 

  1、先准备基线构建

 

  CI门禁需要知道“哪些问题是这次新增的”。因此,项目至少要有一次完整集成构建作为比较基线。

 

  ①确认QAC项目已经连接到Validate。

 

  ②同步项目文件、编译参数和预处理宏。

 

  ③执行一次完整分析。

 

  ④运行集成构建并上传结果。

 

  ⑤在Validate中确认基线构建状态正常。

 

  ⑥再开始配置CI差异分析。

 

  运行CI构建还需要对应的Build许可证。没有基线时,任务可能完成分析,却无法正确比较新增问题。

 

  2、在Validate中填写门禁条件

 

  ①进入目标【Project】或【Stream】。

 

  ②打开【CI Builds】页面。

 

  ③找到【Quality Gate】设置区域。

 

  ④点击编辑图标。

 

  ⑤输入用于筛选缺陷的查询条件。

 

  ⑥保存后创建一次测试构建。

 

  门禁条件使用与【Issues】页面相同的查询方式,可以按规则体系、问题状态、规则编号等信息筛选。

 

  例如只拦截某个规范中仍处于待分析或待修复状态的问题,可设置类似条件:

 

  taxonomy:'MISRA C 2023(C99)'reference:mand status:+Analyze,Fix

 

  配置质量门禁需要项目管理权限。流默认继承项目级条件,单独修改后才会使用自己的门禁规则。

 

  3、把门禁接入CI流水线

 

  ①在构建节点完成代码编译。

 

  ②同步最新编译数据库或构建日志。

 

  ③为当前任务生成唯一构建名称。

 

  ④执行CI构建命令。

 

  ⑤读取命令返回码。

 

  ⑥返回码不符合要求时终止流水线。

 

  命令可以写成:

 

  qacli validate cibuild-P<项目目录>-b<构建名称>

 

  构建名称建议带上分支、提交号或流水线编号。名称重复时,后面查看历史结果会很乱。

 

  4、不要把门禁条件设得过宽

 

  刚开始配置时,别把所有规则、全部历史问题都放进门禁。

 

  可以按以下顺序逐步收紧:

 

  (1)先拦截新增的高严重级别问题。

 

  (2)再加入强制编码规则。

 

  (3)稳定后补充复杂度和其他质量指标。

 

  (4)旧问题继续放在基线中治理。

 

  一上来要求存量问题全部清零,很多项目会长期无法通过,门禁也容易被团队直接绕开。

 

  二、QAC质量门禁未通过时怎么定位问题

 

  流水线显示失败后,先看QA·CLI返回码。不同返回码代表的问题完全不同,不能都当成代码缺陷处理。

 

  1、先看返回码属于哪一类

 

  常见返回码包括:

 

  (1)返回码0:分析完成,没有触发异常。

 

  (2)返回码4:CI构建成功,但发现了新增诊断。

 

  (3)返回码6:没有取得可用于比较的基线。

 

  (4)返回码7:质量门禁未通过。

 

  (5)返回码15:无法连接Validate服务器。

 

  (6)返回码18:许可证获取失败。

 

  (7)返回码29:质量门禁无法应用。

 

  其中,返回码4只说明出现新增问题,不一定表示门禁失败;返回码7才表示新增问题命中了当前门禁条件。

  2、从CI构建进入失败问题列表

 

  ①登录Validate。

 

  ②打开目标项目或流。

 

  ③进入【CI Builds】。

 

  ④找到失败的构建名称。

 

  ⑤查看右侧显示的门禁条件。

 

  ⑥点击失败问题链接进入【Issues】页面。

 

  系统会按当前门禁条件过滤出导致失败的问题。此时重点看规则编号、文件、代码行、状态和首次出现的构建,不用在全部告警中慢慢翻。

 

  3、确认问题是不是本次代码引入

 

  ①查看问题所在文件是否属于本次修改。

 

  ②检查对应代码行的提交记录。

 

  ③对比基线构建中是否已有同类问题。

 

  ④确认构建节点使用了正确分支。

 

  ⑤核对编译器、宏和包含路径。

 

  ⑥重新同步后再分析一次。

 

  如果CI环境与集成构建环境不一致,同一份代码也可能产生不同结果。编译器版本、安装路径和项目配置最好保持统一,尤其别让本地基线用一套宏,流水线又用另一套。

 

  4、返回码6或29怎么处理

 

  返回码6通常不是代码质量问题,而是比较基础没有准备好。

 

  ①确认项目已有完整集成构建。

 

  ②检查当前项目是否连接到正确的Validate项目。

 

  ③查看基线构建是否成功完成。

 

  ④重新拉取项目配置。

 

  ⑤再运行CI构建。

 

  返回码29则要检查门禁查询是否有效。字段名称、规则体系名称或查询语法写错后,门禁可能无法执行。

 

  三、定位后怎样处理并重新验证

 

  找到失败问题后,要判断是代码缺陷、误报,还是经过评估后可以接受的偏差。

 

  1、按问题状态完成处置

 

  ①确认问题对应的规则和代码上下文。

 

  ②真实缺陷直接修改代码。

 

  ③误报填写分析依据。

 

  ④允许偏差时记录理由和审批信息。

 

  ⑤将问题状态更新为已修复、已引用或延期。

 

  ⑥重新运行CI分析。

 

  门禁条件里若只包含【Analyze】和【Fix】状态,问题完成引用或延期处理后,通常就不会继续命中同一条筛选条件。是否允许这样处理,要以项目质量流程为准。

 

  2、重新构建时清理旧结果

 

  ①清理当前QAC分析数据。

 

  ②重新同步项目文件。

 

  ③确认修改已经进入构建工作区。

 

  ④使用新的构建名称运行CI任务。

 

  ⑤查看返回码和门禁结果。

 

  ⑥确认失败问题不再出现。

 

  旧工作区、旧编译数据库和旧分析结果混在一起,很容易造成“代码已经改了,门禁还在报”的假象。排查这种情况时,干净构建通常比连续重跑更有效。

 

  3、定期检查门禁规则

 

  ①查看门禁失败频率。

 

  ②统计经常触发的规则。

 

  ③检查规则是否符合当前项目阶段。

 

  ④清理失效的查询条件。

 

  ⑤新规范启用前先在测试流验证。

 

  质量门禁不是设完就不再动。项目规则、语言版本和缺陷状态发生变化后,门禁条件也要一起调整。

  总结

 

  “QAC质量门禁怎么设置QAC质量门禁未通过时怎么定位问题”的重点,是把新增问题、基线结果和门禁条件分开看。返回码看清楚,失败链接点进去,问题范围很快就能缩小。希望本文能为大家配置和排查QAC质量门禁提供参考,如需进一步了解相关内容,欢迎联系咨询。

135 2431 0251