如何借助AI进行测试代码code review
成熟测试团队会产出大量自动化代码因测试人员的经验和习惯原因代码质量可能参差不齐通常需要依靠专家code review(CR)来确保产出的测试代码质量借助大模型进行CR已经成为一种趋势可以提高CR效率和有效性。大模型 CR优势自动化检查利用大模型对代码进行自动化检查可以快速识别出语法错误、代码风格问题、潜在安全漏洞等。这种自动化过程减少了人工审查的工作量使开发者能够更加专注于代码的逻辑和功能问题。减少重复工作传统的人工CR往往会耗费大量时间在识别低级错误上而大模型可以有效过滤这些错误从而让审查者能够关注更有价值的逻辑和设计问题。快速反馈结合Gitlab CI等工具大模型能够在代码提交后立即执行CR并提供即时反馈大大缩短了反馈周期。简单来讲可发起Merge RequestMR请求的时候使用Gitlab CI触发该任务借助中间平台调用大模型并给到反馈信息回到Gitlab。给到的提示词例如以下代码是GitLab代码补丁。请以测试专家的角度,从自动化测试 用例设计;代码的实现;可改进的领域;这几个角度,给出详细的例子进行解释尽量少离题和耍幽默。这种模式在CR具体场景内仍然会存在一些问题只针对表层问题无法深度分析拿UI自动化举例通用大模型无法识别公共方法和业务相关的方法这样给CR的深度会造成很大限制一致性检查代码风格命名测试数据的管理方式case写法有较多的个性化的内容因团队而异没有业界的统一标准这方面AI难免会有误判修复建议噪音高在review质量不够100%有效情况下放入MR 的comments会非常困难由谁去Resolve 提出的修改建议也是一个难题借助RAG加强CR改进思路通过构造合适的prompt将约束条件构建知识库系统来做规范管理提供更加丰富和标准的信息这里就要用到前序文章中对RAG的论述Review结果适合通过企信(钉钉)消息发出而不是直接在gitlab评论上CR建议只供参考具体的Comments动作和Resolve过程由实际的Review人员来进行现有业界的RAG支撑系统很多这里我们选择的是FastGPT的平台其他还有DifyQAnything等对CR场景没有太大区别这里以fastGPT作为举例说明如何形成CR思路搭建步骤初始化CR知识库这里非常重要个性化的信息主要通过有效的知识库 来实现测试基础方法的信息明确哪些是最佳方法以及语义对测试代码规范自定义信息不同业务线的要求例如给到最佳实践的代码模板新建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?projectIdxxxxxmrIdxx 接口即可发起Review此处我们改造fastGPT代码去抓取Gitlab的MR信息和代码变更projectId:项目IDmrId:MR请求ID在Gitlab CI中添加以下内容curl --location https://fastqa.xxxxx.com/api/review/work?projectId$CI_MERGE_REQUEST_PROJECT_IDmrId$CI_MERGE_REQUEST_IID一键获取完整项目代码这样MR请求的时候就会触发Review任务结果触发企信机器人。结果查看Review结束的时候企业微信 (钉钉)会收到消息打开企业微信(钉钉)通知中的链接就可以查看结果高价值的CR信息具体review同学或者mgr可以补充到gitlab上进行修改使用平台人员标记Review结果是否有效便于后续优化实际内部CR实践摘取对公司内某一个真实自动化代码的一些建议从初步实践的情况看:确实可产出大量值得采纳的建议存在一些误报情况和AI目前返回数据的不确定性相关但可通过调优知识库进行优化本文引入了大模型进行测试代码Code Review的思路然后介绍了如何较低成本搭建基于FastGPT通用大模型的的CR系统我们相信机器审查代码是一个非常有价值的赛道随着AI的不断增强CR的能力有望变得更完善希望文本能给大家带来启发感兴趣的读者也可以留言参与讨论可以持续关注本公众号关于AI实践的文章。总结感谢每一个认真阅读我文章的人作为一位过来人也是希望大家少走一些弯路如果你不想再体验一次学习时找不到资料没人解答问题坚持几天便放弃的感受的话在这里我给大家分享一些自动化测试的学习资源希望能给你前进的路上带来帮助。软件测试 面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。视频文档获取方式这份文档和视频资料对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴我走过了最艰难的路程希望也能帮助到你以上均可以分享点下方小卡片即可自行领取。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2563350.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!