游乐游手机版
首页/AI热点日报/热点详情

如何借助AI进行测试代码审查的实用技巧与步骤

类型:热点整理2026-06-23
借助大模型进行测试代码CodeReview可自动化扫描语法、风格及安全问题,减轻人工负担。通过GitlabCI触发任务,调用大模型获取即时反馈。实际落地存在仅能分析表层问题、修复建议噪音高等局限。借助RAG构建知识库系统,如FastGPT平台,优化提示词并结合企业微信通知,可提升Review深度与有效性。

前言

成熟测试团队产出的自动化代码量通常相当可观,但由于每位测试人员的习惯和经验不同,代码质量往往参差不齐。过去,这主要依赖专家进行人工Code Review(CR)来把关。如今,借助大模型来做CR已经成为一种趋势,它确实能显著提升CR的效率和有效性。

如何借助AI进行测试代码code review

大模型CR优势

大模型在CR场景中,有几个明显的优势值得关注:

  • 自动化检查:它可以对代码进行自动化扫描,快速定位语法错误、风格问题,甚至是潜在的安全漏洞。这能极大减轻人工审查的负担,让开发者能更专注于代码的逻辑和功能设计。
  • 减少重复工作:传统的人力CR,光是在扫低级错误上就要耗掉大量精力。大模型能有效过滤掉这些基础问题,使得评审者可以聚焦在更有价值的逻辑和架构层面。
  • 快速反馈:如果结合Gitlab CI这类工具,大模型在代码提交后立刻就能执行CR,给出即时反馈,这大大缩短了等待周期。

简单来说,具体实现方式就是在发起Merge Request(MR)时,通过Gitlab CI触发一个任务,借助中间平台调用大模型,最后把反馈结果返回给Gitlab。

给到大模型的提示词,比如:“以下代码是GitLab代码补丁。请以测试专家的角度,从自动化测试用例设计、代码的实现、可改进的领域这几个角度,给出详细的例子进行解释,尽量少离题和耍幽默。”

不过,在实际落地时也发现,这套模式在具体的CR场景里,仍然有一些绕不开的坎儿:

  • 只针对表层问题,无法深度分析:拿UI自动化来说,通用大模型无法区分公共方法和业务相关的方法,这严重限制了CR的深度。
  • 一致性检查困难:代码命名风格、测试数据管理方式、用例写法等,往往带有很强的团队个性化色彩,没有业界统一标准,AI在这方面难免会有误判。
  • 修复建议噪音高:当Review质量没达到100%有效时,在MR里添加的Comments就很难处理,该由谁去Resolve这些修改建议,本身就是一个难题。

借助RAG加强CR

改进思路

  1. 通过构造合适的prompt、构建知识库系统来做规范管理,提供更丰富和标准的信息。这就用到了前序文章中关于RAG的论述。
  2. 评审结果适合通过企信(如钉钉)消息发出,而不是直接写在Gitlab评论里。CR建议仅作为参考,具体的Comments动作和Resolve过程,还是由实际的Review人员来完成。

目前业界的RAG支撑系统很多,我们选择的是FastGPT平台,其他还有Dify、QAnything等,对于CR场景而言没有本质区别。这里就用FastGPT来举例说明如何形成CR思路。

搭建步骤

初始化CR知识库

这一步非常关键,个性化的信息主要通过有效的知识库来实现:

  1. 测试基础方法的信息:明确哪些是最佳方法及其语义。
  2. 对测试代码规范的自定义信息。
  3. 不同业务线的要求,例如提供最佳实践的代码模板。

新建FastGPT项目

  • 公司内部针对FastGPT在界面和交互上进行了小幅改造,但基本遵从FastGPT对应用的定义。
  • 新建的项目要勾选之前创建的知识库。
  • 配置好一个FastGPT应用后,可以根据应用提供API。

选取待CR的Repo

从Gitlab内筛选想要Review的项目ID。

优化提示词

测试代码的提示词可以参考:

假设你是测试开发工程师,现在你的任务是阅读GitLab代码变更,使用中文给出修改建议。建议要求:a.必须使用知识库给出建议;生成的建议语句通顺;b.指明具体位置,使用例子进行解释,只需要给出少量关键代码不要全部输出;d.不要脱离给定的代码;e.不要复述原代码;f.不要给出重复建议;g.评审建议不超过700字符;下面是GitLab代码变更:(后面附上MR的变更代码)

触发Review

调用 GET:https://fastqa.xxxx.com/api/review/work?projectId=xxxxx&mrId=xx 接口即可发起Review。这里需要改造FastGPT代码去抓取Gitlab的MR信息和代码变更。

  • projectId: 项目ID
  • mrId: MR请求ID

在Gitlab CI中添加以下内容:

curl --location "https://fastqa.xxxxx.com/api/review/work?projectId=$CI_MERGE_REQUEST_PROJECT_ID&mrId=$CI_MERGE_REQUEST_IID"

这样一来,在MR请求时就会自动触发Review任务,结果会通过企信机器人通知。

结果查看

Review结束后,企业微信(钉钉)会收到消息。打开通知中的链接就能查看结果。高价值的CR信息,由具体的Review同学或者管理者补充到Gitlab上进行修改。平台会提供标记功能,用于判断Review结果是否有效,以便后续优化。

实际内部CR实践

这里摘取了对公司内部一个真实自动化代码的部分建议。

从初步实践来看:

  1. 确实能产出大量值得采纳的建议。
  2. 也存在一些误报情况,这与AI目前返回数据的不确定性有关,但可以通过调优知识库来持续优化。
来源:https://www.53ai.com/news/finetuning/2024090413209.html

相关热点

继续查看同栏目近期热点。

延伸阅读

补充最近整理过的热点入口。