通义灵码用户说:“人工编写测试用例需要数十分钟,通义灵码以毫秒级的速度生成测试代码,且准确率和覆盖率都令人满意”

news2025/2/25 5:30:38

通过一篇文章,详细跟大家分享一下我在使用通义灵码过程中的感受。

一、定义

通义灵码,是一个智能编码助手,它基于通义大模型,提供代码智能生成、研发智能问答能力。

image

在体验过程中有任何问题均可点击下面的连接前往了解和学习。

通义灵码官网

通义灵码安装教程

通义灵码产品手册

二、入门

当下市面上主流的智能编码助手有很多,下表是我工作中使用过的。

助手名称

是否免费

起步价格

简介

GitHub Copilot

否,有免费计划

4美元/月

由 OpenAI Codex 语言模型驱动,迄今为止市场上最好的智能编码助手之一。

Amazon CodeWhisperer

否,有免费计划

19美元/月

由机器学习提供支持的创新的代码生成器,经过大量开源代码数据集的训练,可以根据注释和现有代码提出从片段到完整功能的任何建议。

Tabnine

否,有免费计划

15美元/月

基于海量开源代码数据集的智能代码补全,通过提供智能完成建议和识别潜在错误来帮助提高工作效率并提高代码质量。

Replit

否,有免费计划

7美元/月

基于浏览器的 IDE 而闻名,该 IDE 允许在文档和本机托管中进行共同编码。

AskCodi

否,有免费计划

7.99美元/月

由 OpenAI Codex 提供支持,可以生成代码、回答你的编程问题,甚至提供有用的代码建议。

Codiga

否,有免费计划

14美元/月

基于 AI 的静态代码分析工具,可帮助开发人员编写更好、更快、更安全的代码。

Bugasura

否,有免费计划

5美元/月

一款人工智能驱动的错误跟踪工具,旨在简化你的错误管理流程。 

AI Helper Bot

否,无免费计划

5美元/月

一款强大的、人工智能驱动的 SQL 查询生成器。

Android Studio Bot

免费

是 Android Studio 中内置的AI驱动的编码助手。

TONGYI Lingma

免费

基于通义大模型,提供代码智能生成、研发智能问答能力。

在开始入门操作前,需要准备好环境,也就是程序的安装。当前通义灵码兼容在两大主流编程工具Visual Studio Code、JetBrains IDEs下进行直接安装,后面新增了 Visual Studio 端。下面就分别介绍如何一步一步完成安装。

  • Visual Studio Code

点击前往官方下载Visual Studio Code,如果你已经安装过该工具,此步可忽略。为了在使用中产生不必要的异常,这里直接下载官网最新稳定版。如图:

image

安装程序完成下载后,直接点击运行,安装完成后效果如图:

image

软件默认界面纯英文显示,如想更换成中文,官方提供了插件,只需点击应用——搜索chinese,选择安装即可。如图:

image

完成安装后,重启客户端。你就拥有了一个中文显示的界面了。如图:

image

安装通义灵码同样的需要点击应用,搜索通义灵码或者TONGYI Lingma。点击安装即可。如图:

image

安装完成后及时生效,无需重启。软件导航栏多出了一个通义灵码的图标。如图:

image

这里有一点非常好,就是如果你电脑上有其他的编码工具并且已登录过通义灵码对应的阿里云账号,此时完成安装通义灵码后也同时完成了登录,免去了再次登录的麻烦。

  • JetBrains IDEs

点击前往官网下载IntelliJ IDEA,如果你已经安装过该工具,此步可忽略。为了在使用中产生不必要的异常,这里直接下载官网最新稳定版。如图:

image

完成下载后,直接点击运行安装,步骤很简单,一直点下一步即可,这里就不赘述。完成安装后的效果如图:

image

image

软件界面默认是全英文的,如果你想换成中文,只需要安装一个插件即可。软件左侧导航栏点击Plugins,搜索Chinese,选择语言包那个,点击install。如图:

image

完成安装后,点击界面上的 Restart IDE,重启客户端即可。这样一个中文菜单显示的界面就配置好了。如图:

image

回到正题,同样是插件市场,搜索通义灵码或者TONGYI Lingma,点击安装即可。如图:

image

完成安装后,同样需要重启客户端。上面演示的是在线安装,官方同时提供了ZIP离线安装包,工具上点击导航-插件,点击设置图标,下拉菜单中单击从本地安装插件,选择下载的 zip 文件后安装。

下图是安装完插件后,通义灵码显示的效果。

image

三、测评

1、功能使用维度

1)代码智能生成:行/函数级代码续写、行间描述生成代码、生成单元测试、生成代码注释、解释代码

  • 解释代码

VS Code中在代码中点击快捷指令按钮便可实现解释代码功能,速度非常快,基本就是点击即生成,解释也准确。如图:

image

JetBrains中需要选定解释的代码而后右键,通过选择功能实现。如图:

image

image

从图上比较可以看出,稍微有点差异的地方是,VS Code首先给出的是精简的解释,而JetBrains给出的是详细的解释。

  • 生成注释

image

image

在生成注释方面,两者基本一致,注释都准确。

  • 生成单元测试

image

image

在生成单元测试中,两者也没有什么差异,都是准确的。但从显示效果来看,VS Code的代码更美观。

  • 代码补全

在JetBrains中,可以通过快捷键Alt+P实现代码的补全,非常方便且准确。如图:

image

但有一说一,当下代码补全还不太智能,甚至有点臃肿。虽然补全的代码是对的,但会出现过多的日志。如图:

image

2)研发领域问答:调试和排查建议、研发领域智能问答

在回答同一个问题时,两者给出了完全不同的答案。VS Code的回答基本满足需求,即给出了实例也顺带简略了下步骤;JetBrains中的回答就有点完全照搬产品手册内容了,不甚了解产品的新人看到这里多少会有点蒙。如图:

image

image

3)灵码独有特异功能:对阿里云的资源 SDK/OpenAPI、对阿里云帮助文档有很好的支持

任选一个代码段,通过Ctrl+Shift+S进行搜索,可以很快速的找到50个代码实例以及参考文档,当然,这里选取的是阿里云的资源API,可以看到示例还是非常丰富的。从数据范围可以看出,这些示例均来自Github和StackOverflow,还是非常具有代表性的。如图:

image

参考文档方面数据量就显得很少了,虽然数据范围大了,但结果却很少。这里建议增加搜索引擎搜索,不仅限于阿里云论坛内部。如图:

image

image

2、产品设计维度

1)视觉体验:非常友好,整个界面清爽。

2)交互形式:交互方式很智能,比如检测到未登录,就会在右下角友情提示并提供了登录按钮。如图:

image

此外,当此时浏览器已登录了阿里云账号,点击登录时会自动关联,无需额外再次登录,很方便快捷。如图:

image

3)快捷键:产品首页对快捷键标识很清晰。智能问答 Ctrl+Shift+L、搜索Ctrl+Shift+S。有点差异的地方是,VS中搜索的快捷键被另存为占用,如需保持同JetBrains一致,需要自定义。

4)快捷入口:非常好地设计了快捷图标作为入口。图一是VS的,显示导航栏左侧;图二是JetBrains的,显示在右侧。

image

image

此外,VS Code中还内嵌了一个非常方便的快捷指令,通过点击可一键实现解释代码、生成单元测试、生成注释功能。如图:

image

3、交互体验维度

1)触发时机:整体的生成动作还是蛮自然的,能够根据用户的输入和上下文理解,自动生成相应的代码片段。

2)响应延时:基本没有延时,遇到回答问题时可能会有1-2s的思考时间。

3)按键数量:typing的次数将大大减少,尤其对于代码补全,通过一个快捷键即可完成很多次的typing。通过自动补全和代码片段生成,用户可以更快地完成输入,从而提高效率。

4)接受量:有多少内容(可以是字符数)被采纳

目前测试对于JAVA的内容采纳会多一些,对Python、C#等其他语言采纳会少,这个差异也许跟当下版本有关,后续优化肯定是可以解决的。

4、内容生成维度

1)生成的长度:生成的内容需要相对完整,并易于判断。

其实这个要根据不同的场景来综合评判,单一场景下的结论容易不准确。当前版本的通义灵码对于代码解释准确度可以到99%,内容长度略长,可以做精简;同时内容易读性很高。比如下图:

image

2)生成的正确性:是否有模型幻觉,出现答非所问

目前测试没有出现答非所问的情况,虽然偶尔一两次会出现回答不准确,但整体正确性还是蛮高的。比如下图:

image

3)生成的代码的优良率:生成的代码,需要符合几个特点:易读、可复用性、可扩展性、健壮性

简单用python实现了石头剪刀布的小游戏,运行没问题。如图:

image

但在实现画五星红旗的程序中,出现了未定义的方法。其实是多写了一个字母,应该是drawStar()。如图:

image

4)补全的“智能”程度:代码的智能程度、问题回答智能程度、生成出来的单元测试的有效性

这部分测试如果用数据来表示,那就是代码的智能程度为90%、问题回答智能程度88%、单元测试有效性92%。

四、总结

在体验通义灵码的过程中,我们发现它的续写代码功能非常强大。它能够根据当前的代码上下文,预测出可能的代码走向,给出合适的代码片段,极大地提高了编程效率。同时,它也能自动识别编程语言,并给出相应的代码解释,对于学习编程的新手来说非常有帮助。

除了续写代码功能,通义灵码的生成测试代码功能也十分出色。相较于人工编写测试用例需要数分钟甚至数十分钟的时间,通义灵码可以以毫秒级的速度生成测试代码,且准确率和覆盖率都令人满意。

在兼容性方面,通义灵码支持 JetBrains 全家桶和 Visual Studio Code 等多种开发工具,同时也支持 Java、Python、JavaScript、TypeScript、C/C++ 等30多种主流编程语言,可自动识别编程语言并生成代码解释。

在体验过程中,我们也发现通义灵码的一些潜在优点。例如,它可以打通阿里云开发工具和云资源的使用场景,提供代码智能化评审和软件构建问题智能排查能力。此外,基于持续迭代的通义大模型,通义灵码的未来版本还将不断提升开发者体验和研发效率。

但是,体验过程中还可以发现存在的一些不足之处,比如:

  • 通义灵码可以生成测试代码,但其测试代码的覆盖率和准确率可能不如人工编写测试代码。这需要开发者具备一定的测试经验,才能正确地使用和指导通义灵码进行测试用例的生成。
  • 在某些情况下可能会出现误判或理解错误的情况。例如,在处理复杂的代码逻辑或特殊的编程语法时,通义灵码可能会出现错误或无法完全理解上下文信息,从而导致生成的代码不准确或存在错误。
  • 在不同编码工具上呈现出来的效果存在差异,明明是同一个问题或者需求,在不同的编码工具上可能出现完全不同的答案。
  • 参考文档数据范围有限,为了更好地帮助开发者们解决实际问题,应增加搜索引擎根据关键字来进行搜索,提升文档数量的同时更好地满足解决问题需求。

总之,非常推荐大家体验一下通义灵码,随着使用时间的增加,通义灵码会越来越懂你,成为你的专属AI编码助手,很不错!

下载体验通义灵码:通义灵码_智能编码助手_AI编程-阿里云

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2131249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全实训八(y0usef靶机渗透实例)

1 信息收集 1.1 扫描靶机IP 1.2 收集靶机的端口开放情况 1.3 探测靶机网站的目录 1.4 发现可疑网站 1.5 打开可疑网站 2 渗透 2.1 使用BP获取请求 2.2 使用工具403bypasser.py探测可疑网页 2.3 显示可以添加头信息X-Forwarded-For:localhost来访问 2.4 添加之后转发&#xff…

芯片设计项目管理:国内某知名芯片半导体企业引进 PowerProject,构建国产化项目管理平台

国内芯片设计行业发展快速,随着其行业技术能力的不断扩大,芯片设计涵盖的领域和内容愈加丰富,因此,对专业化的项目管理理念与思路提出了更高的要求。 近日,国内某知名芯片设计企业选择北京奥博思软件技术有限公司&…

jantic/DeOldify部署(图片上色)附带Dockerfile和镜像

1. 克隆代码到DeOldify git clone https://github.com/jantic/DeOldify.git DeOldifyDeOldify源码 2. 安装依赖 这里会安装python以及创建deoldify环境 cd DeOldify conda env create -f environment.yml(base) rootDESKTOP-1FOD6A8:~/DeOldify# conda env create -f environm…

Java开发安全及防护

目录 一、开发安全 二、XSS介绍及防范措施 2.1何为XSS 2.2XSS分类 2.3常用方法 三、SQL注入介绍及防范措施 3.1何为SQL注入 3.2常用方法 四、重放介绍及防范措施 4.1何为重放 4.2常用方法 一、开发安全 在学习安全之前,我们首先学习漏洞,知道漏…

JavaScript控制语句和函数的使用

文章目录 前言一、控制语句 1.if条件语句2.switch多分支语句3.for循环语句4.while循环语句5.do...while循环语句6.break 与 continue 关键字二、函数 1.函数的定义2.函数的调用总结 前言 JavaScript 的控制语句和函数的使用,基本上同理于 Java。该篇文章主要展示如何…

力扣之1783.大满贯数量

文章目录 1. 1783.大满贯数量1.1 题干1.2 建表1.3 题解1.4 结果截图 1. 1783.大满贯数量 1.1 题干 表:Players ----------------------- | Column Name | Type | ----------------------- | player_id | int | | player_name | varchar | ----------------------…

深度学习实战89-基于改造后的长短期记忆网络LSTM 的猪肉价格预测模型研究

大家好,我是微学AI,今天给大家介绍一下深度学习实战89-基于改造后的长短期记忆网络LSTM 的猪肉价格预测模型研究。本文围绕基于改造后的长短期记忆网络 LSTM 的猪肉价格预测模型展开研究。首先介绍项目背景,阐述进行猪肉价格预测的重要性。接着详细讲解改造后的 LSTM 模型原…

LibSVM介绍及使用

介绍 LibSVM 是一个广泛使用的开源库,用于支持向量机(SVM)的实现。它由台湾大学的 Chih-Chung Chang 和 Chih-Jen Lin 开发。LibSVM 提供了一种简单易用的接口,支持多种 SVM 变体,包括分类、回归和分布估计。以下是一些…

【数据库】MySQL-基础篇-事务

专栏文章索引:数据库 有问题可私聊:QQ:3375119339 目录 一、事务简介 二、事务操作 1.未控制事务 1.1 测试正常情况 1.2 测试异常情况 2.控制事务一 1.1 查看/设置事务提交方式 1.2 提交事务 1.3 回滚事务 3.控制事务二 1.1 开启事…

C++ namespace(域)

个人主页:Jason_from_China-CSDN博客 所属栏目:C系统性学习_Jason_from_China的博客-CSDN博客 namespace的价值 避免命名冲突:在大型项目或使用多个库的情况下,不同部分可能会定义相同名称的实体(如变量、函数、类等&a…

fpga系列 HDL:简化的FIFO实现

CODE 下面是一个简化的FIFO实现示例,基于Verilog HDL: module fifo (input wire clk, // 时钟信号input wire reset, // 异步复位信号input wire wr_en, // 写使能信号input wire rd_en, // 读使能…

CSS中的位置定位总结

文章目录 静态定位相对定位绝对定位固定定位 静态定位 静态定位(position:static)/默认的文档流布局 块级元素按照书写顺序从上往下依次排列行内/行内块元素按照书写顺序从左到右依次排列,一行放不下才换行文档流中的元素都是紧密排布的,没有大的空隙&…

【机器学习】9 ——最大熵模型的直观理解

系列文章目录 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录前奏例子硬币垃圾邮件代码 前奏 【机器学习】6 ——最大熵模型 例子 硬币 假设我们有一枚硬币,可能是公平的,…

哪些软件可以监控电脑屏幕?四款优秀的屏幕电脑监控软件

你是否曾好奇,员工们在电脑前的忙碌究竟是在提高公司业绩,还是在成为“网上冲浪”高手? 或者,作为家长,你是否想知道孩子们的学习状态是如火如荼,还是在和游戏“斗智斗勇”?不管是办公还是家庭…

图纸加密软件哪个最好用?2024年好用的6款图纸加密软件分享!好用不踩雷!

某知名设计公司的年度发布会上,管理层突然被一个坏消息打断——公司的一份核心图纸被泄露到互联网上,导致重要的合作项目搁浅,直接损失数百万。 这样的事件不是个例,为此,很多企业意识打破图纸加密对保护企业知识产权和…

机械设计基础知识---材料硬度

一、定义 硬度,物理学专业术语,材料局部抵抗硬物压入其表面的能力称为硬度。固体对外界物体入侵的局部抵抗能力,是比较各种材料软硬的指标。由于规定了不同的测试方法,所以有不同的硬度标准。各种硬度标准的力学含义不同&#xf…

业务资源管理模式语言13

解决方案: 创建一个与“Resource”类相关的“Resource Delivery”类来控制资源交付的确认过程。因为交货是与交易相关的,“Resource”类与“Resource Delivery”类是“1 to 1”关系。如果你采用了子模式“Resource Measurement”或者采用了“ItemizeThe…

动手学深度学习(pytorch土堆)-04torchvision中数据集的使用

CIFAR10 CIFAR-10 数据集由 10 个类的 60000 张 32x32 彩色图像组成,每个类有 6000 张图像。有 50000 张训练图像和 10000 张测试图像。 数据集分为 5 个训练批次和 1 个测试批次,每个批次有 10000 张图像。测试批次包含每个类中随机选择的 1000 张图像…

Unity 给模型贴上照片

Unity将真实世界的照片贴图到模型上 原因 模拟仿真,直接使用照片肯定是效果最好的,省下做材质了 直接拖动即可 导入图片到Unity中将图片修改为Sprite模式直接将图片拖动到Scene面板的物体上即可 注意:是将图片拖动到Scene面板的物体上&a…

【Ubuntu】安装常用软件包

安装java 直接输入java,如果没有安装的话会提醒你输入命令安装,类似 Command java not found, but can be installed with: sudo apt install jdkxxxxxxxxxxxxxx然后选一个版本安装就好,我这里选的jdk17,安装完确认一下 ubuntuVM-4-13-ubu…