AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化

这篇具有很好参考价值的文章主要介绍了AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

去年年初,我们开源 AutoDev 的初衷是:

AutoDev 是一款基于 JetBrains IDE 的开源 AI 辅助编程插件。AutoDev 能够与您的需求管理系统(例如 Jira、Trello、Github Issue 等)直接对接。在 IDE 中,您只需简单点击,AutoDev 会根据您的需求自动为您生成代码。您所需做的,仅仅是对生成的代码进行质量检查。

而今我们在朝这一目标的努力又更进一步了:一键生成精准的单元测试。在这篇文章中,我们将介绍从 1.4 版本(适用于团队的 Team AI)到 1.5.3 版本的一些特性:

  • 精准的自动化测试生成。增强了静态代码分析能力,使得生成的构造函数更加准确;优化针对于 Spring 项目区分如何测试 Controller、Service 的 prompt;提供不同类型的测试模板能力。

  • 本地模型强化。提供了适合于 AutoDev 的 AutoDev Coder 数据集与模型;支持本地的数据记录功能,方便于进行数据蒸馏;支持部分的系统 prompt 覆盖,即你可以更好的使用自己的模型。

  • 多语言注释文档。新增 JavaScript、Rust、 Python 语言的支持,并且优化了 Kotlin 的文档生成逻辑。

  • 自动流程优化。添加了 PrePush Review,即在 commit 之前,你可以使用 AI 来 review;大大简化提交信息生成的上下文,区分文件变更、依赖变更等场景,使生成的 token 更少。

欢迎来加入我们:https://github.com/unit-mesh/auto-dev/,构建自己的 AI 辅助全流程编码助手。

在开发的过程中,我们选取了 ArchGuard 作为 AutoDev 全流程 AI 辅助的试点,ArchGuard 是一个使用 Kotlin 编写的开源架构治理平台。在过程中持续积累数据和经验,以更好地支撑 Kotlin 语言的使用体验。

精准测试生成

AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化,自动化,运维

结合在 ArchGuard 项目中生成了 90 个测试类 200+ 测试的用例经验,我们持续优化了的测试生成逻辑(估计还有一些 bug)。

因此,在 AutoDev 中有概率直接生成直接可用的单元测试。

精准上下文

在当前的版本里,测试的上下文除了会包含相关的类信息,还有完整的输入和输出类信息。即通过静态代码分析,获取 Service 相关的信息,也会获取每个函数的输入和输出等等信息。当一个被测试类是一个 Spring 相关的类,会判断是否是 Controller 和 Service,再给定一些测试规则。

代码实现参考 JavaTestContextProvider、 KotlinTestContextProvider 的实现。

单元测试模板:团队 AI

在 ArchGuard 中,由于不可知的历史原因,需要编写一些特殊的注解 —— 而模型并非每次都能生成想要的。考虑到,这样的情况也会出现在大部分的项目中。因此,针对于 Controller 和 Service 与其它测试,你可以自定义单元测试的模板。

每个项目的测试逻辑是不一样的,加上我们推荐采用 prompt 即代码的方式来管理,你更可以将它分享给你的团队。

相关文档:https://ide.unitmesh.cc/customize/custom-test-template.html 。

API 测试数据精准生成

相似的,在使用 AutoDev 的 API 测试数据生成功能时,我们也结合静态代码分析优化了对应的上下文能力,可以直接生成可用的测试数据。

详细见: JavaTestDataBuilder 和 KotlinTestDataBuilder 相关实现。

2. 针对本地模型优化

AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化,自动化,运维

现在,只需要通过打开 AutoDev 配置页的 AutoDev Coder ,你可以针对私有化的模型做更多的配置。

公开模型数据的蒸馏

为了更好的测试公开的大语言模型,以及进行内部模型与工具的适配。我们在新版本中添加了 Recording Instruction In Local 的功能,即您可以记录与 AI 交互的数据,并以此作为内部模型微调与评估的样本。

同时,还方便于进行对应的 AutoDev Debug。

插件 prompt 覆盖

通过配置页,同样可以配置诸如 Explain code、 Refactor code、 Fix issue、 Generate test四个基本的 AutoDev Chat 相关的 prompt。

在进一步优化和构建内部的上下文之后,也将使用模板的方式释放出更多上下文接口。

3. 多语言文档

AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化,自动化,运维

在文档上,现在可以支持 Python、 Rust、 JavaScript 语言的注释文档生成。同时,由于 OpenAI 经常为 Kotlin 类生成无用的函数注释,我们也针对这个功能进行了优化,只选取类前的注释代码。

4. 自动流程优化

自动化是 AutoDev 追求的主要特性,我们也在今年针对于日常开发流程初了更多的设计。在这个版本里,主要提供两个新特性。

PrePush 检视

AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化,自动化,运维

即在代码提交前,你可以让 AI 来辅助你进行一些初步的 review,以避免出现一些不必要的错误。

更流畅的提交信息生成

AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化,自动化,运维

在 ArchGuard 项目中使用 AutoDev 重构时,我们生成了 167 次的提交信息,占所有功能的 1/3 。也因此,我们花了更多的时间在生成更好的提交信息上 —— 如何更好地控制 token。

其它

未来我们还将关注于:

  • 流程自动化的强化。即支持更好的向前和向后流程接入,加速开发人员的编码速度。

  • 交互体验优化。我们已经在代码库中引入了更好的加载和出错显示,未来也将持续丰富,毕竟没有 UX,交互上都是靠抄。

  • 测试覆盖率的提升。在过去的一段时间里,由于 UI 测试速度缓慢,并且在 IDE 架构复杂,AutoDev 的测试覆盖率是相对较低。而在静态分析相关的场景,则需要进行充分的测试,所以我们在为 AutoDev 添加更多的单元测试,以使得它更加稳定。

如果你也有兴趣,欢迎来挖坑:https://github.com/unit-mesh/auto-dev/ 。文章来源地址https://www.toymoban.com/news/detail-792974.html

到了这里,关于AutoDev 1.5.3:精准的自动化测试生成、本地模型强化与流程自动化优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python自动化测试——在线生成接口文档

    目录 前言 API 文档导入生成 在项目详情页点击左侧 API 功能,进入 API 管理页面,直接点击下拉框选择导入 API  自动生成文档 通过使用接口文档工具 Eolink 演示如何自动生成文档 使用 API Factory 产品根据数据库生成 API 文档 结语 接口文档是项目开发中必需的说明文档,接口文

    2024年02月07日
    浏览(43)
  • API自动化测试【postman生成报告】

    PostMan生成测试报告有两种: 1、控制台的模式 2、HTML的测试报告 使用到一个工具newman Node.js是前端的一个组件,主要可以使用它来开发异步的程序。 一、控制台的模式 1、安装node.js 双击node.js进行安装,安装成功后在控制台输入node -v,检查是否安装成功。 2、安装newman 1)在

    2024年02月06日
    浏览(37)
  • Python+selenium自动化生成测试报告

    前言 批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的。 unittest里面是不能生成html格式报告的,需要导入一个第三方的模块:HTMLTestRunner 一、导入HTMLTestRunner 1.这个模块下载不能通过pip安装了,只能下载后手动导

    2024年02月04日
    浏览(40)
  • 软件测试/测试开发丨利用ChatGPT 生成自动化测试脚本

    自动化测试脚本可以模拟用户与应用程序的交互,例如点击按钮、输入数据、导航到不同的页面等等,以验证应用程序的正确性、性能和稳定性。 自动化测试在回归测试、冒烟测试等测试流程中都可以极大地起到节省时间、节省人力的作用,所以目前自动化测试工程师,也是

    2024年02月05日
    浏览(45)
  • 使用python测试框架完成自动化测试并生成报告-实例练习

    558 pytest -v -s PyTest.py --alluredir=./result/   在测试执行期间收集结果  559 allure serve ./result/   测试完成后查看实际报告, 在线看报告   

    2024年02月07日
    浏览(41)
  • 最强自动化测试框架Playwright(21)-测试生成器inspector

    运行该命令时,将打开两个窗口,一个浏览器窗口,可以在其中与要测试的网站进行交互,另一个是Playwright Inspector窗口,可以在其中记录测试,然后将其复制到编辑器中。 使用该命令运行测试生成器,后面为要为其生成测试的网站的 URL。URL 是可选的 运行命令并在浏览器窗

    2024年02月13日
    浏览(38)
  • Jmeter接口自动化生成测试报告html格式

    jmeter自带执行结果查看的插件,但是需要在jmeter工具中才能查看,如果要向领导提交测试结果,不够方便直观。 笔者刚做了这方面的尝试,总结出来分享给大家。 这里需要用到ant来执行测试用例并生成HTML格式测试报告。 一、ant下载安装 1.1、下载地址: http://ant.apache.org/bi

    2024年02月16日
    浏览(38)
  • jmeter生成html格式接口自动化测试报告

    jmeter自带执行结果查看的插件,但是需要在jmeter工具中才能查看,如果要向领导提交测试结果,不够方便直观。 笔者刚做了这方面的尝试,总结出来分享给大家。 这里需要用到ant来执行测试用例并生成HTML格式测试报告。 1.1、下载地址: http://ant.apache.org/bindownload.cgi 1.2、版本

    2024年02月07日
    浏览(44)
  • 从0到1精通自动化测试,pytest自动化测试框架,allure2生成html报告(史上最详细)(九)

    allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest框架,也可以集成到Jenkins上展示高大上的报告界面。 环境准备: python3.6 windows环境 pycharm pytest-allure-adaptor allure2.7.0 java1.8 pip安装 pytest-allure-adaptor,github地址:https://github.com/allure-framework/allure-pytest 如

    2024年02月11日
    浏览(30)
  • 接口自动化测试框架(pytest+allure+aiohttp+ 用例自动生成)

    近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。 接口测试是比较讲究效率的,测试人员会希望很快能得到结果反馈,然而接口的数量一般都很多,而且会越来越多,所以提高执行效率很有必要 接口测试的用例其实

    2024年02月07日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包