腾讯云AI代码助手:AI辅助编写测试用例,测试从此不求人

news2024/12/26 10:47:41

目录

引言

开发环境介绍

实例:编写测试用例

帮助与提升

建议

结语


引言

        在软件开发过程中,编写测试用例是确保代码质量的重要环节。然而,对于新手编程学习者来说,撰写高质量的测试用例可能是一个巨大的挑战。AI 代码助手作为一个智能编程辅助工具,正是为了解决这一难题而设计的。

        目前市面上类似产品也不少,例如蚂蚁CodeFuse百度文心快码Comate华为云Astro等,相比这些产品,腾讯云AI代码助手有如下优势:

  1. 语言和框架支持:腾讯云AI代码助手支持广泛的编程语言和框架,与市场上其他AI助手相比,具有更广泛的适用性。
  2. 集成开发环境(IDE)支持:腾讯云AI代码助手特别强调了对VS Code和JetBrains IDE的支持,这可能对使用这些IDE的开发者更有吸引力。
  3. 内部使用情况:腾讯云AI代码助手在腾讯内部有超过50%的研发在使用,这表明它在实际应用中得到了验证和信赖。
  4. 研发效率提升:所有AI助手都强调了提升研发效率,但腾讯云AI代码助手特别提到了技术对话和代码补全,这可能意味着它在交互性和代码生成方面有特别的优势。
  5. 安全性和隐私:腾讯云AI代码助手的介绍中没有明确提到安全性和隐私保护措施,这是在选择AI助手时需要考虑的一个重要因素。

        腾讯云 AI 代码助手利用先进的自然语言处理和机器学习技术,能够自动生成代码片段和测试用例。这一工具不仅能帮助开发者节省时间,还能提升代码的规范性和可读性。对于编程新手来说,腾讯云 AI 代码助手提供的测试用例生成功能尤为有用,它可以帮助新手快速了解如何撰写有效的测试用例,避免常见的错误,并在学习过程中逐步提高测试能力。因此,腾讯云 AI 代码助手不仅是编程学习者的良师益友,更是提升编程效率和质量的重要工具。

开发环境介绍

        首先需要我们在IDE中安装腾讯云AI代码助手的插件,现已支持JetBrains、VS Code和Android Studio。这里我们选用VS Code,打开插件市场,搜索腾讯云AI代码助手便可找到对应插件。

        安装完成后需要跳转到腾讯云网页登录授权。实名验证完毕后即可正常使用。腾讯云AI代码助手有两种交互方式,一种是直接在左侧打开问答窗口通过对话获得帮助。

        另一种是通过代码提示的方式提供建议,例如根据注释描述以及上下文,生成业务逻辑代码与函数;补全内容包含常见的特征、对象判空、循环定义、异常捕捉、日志定义等根据光标前后的上下文代码或注释生成代码建议或是函数定义描述,根据上下文补合理的业务逻辑。只需要按TAB键即可接受建议。

实例:编写测试用例

        目前腾讯云AI代码助手已支持C/C++、HTML、Java、Python、Node.js、TypeScript、Go、Rust、Swift、Dart,这里我们尝试在Python环境下编写测试用例。首先我们点击左侧的问答窗口,让AI为我们生成一个测试框架。

        按照AI的提示,我们首先安装unittest和pytest包。只需要将命令复制到终端即可完成安装。安装完毕后将代码区的代码复制到空白py文件中,这就是我们的模板文件。

        这段代码使用Python的unittest框架定义了一个简单的单元测试。首先导入 unittest 模块,提供了创建和运行单元测试的类和方法。之后定义TestExample 类这个类继承自 unittest.TestCase,表示它是一个可以被 unittest 框架运行的测试用例。test_additiontest_subtraction都是测试方法,我们自己编写的测试方法也应该有类似的格式。assertEqual() 用于检查实际结果和预期结果是否一致。要运行这个测试脚本,需要使用pytest test_example.py而不是使用python命令。最后的输出将显示测试是否成功通过,或者是否存在失败或错误。

        接下来我们需要针对指定程序进行单元测试。现在打开我们被测程序,将刚才的py文件放入其目录下。现在我们想要测试mapper文件下的find_admin()这个函数,于是我们在刚才的测试文件中编写单元测试。

        首先必须要在测试文件中调用被测程序的文件。之后在TestExample类中通过注释要求AI生成测试函数。换行之后,AI的提示就出现了,这里只需要一直按TAB持续生成。很轻易地就获得了测试用例,并且还按照等价类划分成了正负两个测试用例。第一个测试方法代表运行正确的情形,第二个代表运行错误的情形。self.assertEqual(mapper.find_admin("admin"), 1)表示使用 self.assertEqual() 断言方法,检查 mapper.find_admin("admin") 的返回值是否等于 1。同样地,self.assertEqual(mapper.find_admin("admin1"), -1)表示检查 mapper.find_admin("admin1") 的返回值是否等于 -1。

不过这里需要注意的是AI助手并不能主动读取文件内容,特别是非代码内容,所以并不能一味依赖AI助手完成所有的工作。当find_admin()运行正确的时候会返回Admin对象而不是1,所以我们还要进行一定的修改。显然mapper.find_admin(“admin”)的结果是一个Admin对象,那么我们就需要比较它的密码是否和约定的一致。查看数据可以发现admin的密码是123456,所以这里改成self.assertEqual(mapper.find_admin(“admin”).password, 123456)

接下来按照之前的提示运行pytest testcase.py即可获得结果

完整代码如下:

import unittest
import mapper

class TestExample(unittest.TestCase):
    #为mapper.find_admin()添加测试用例
    def test_find_admin(self):
        self.assertEqual(mapper.find_admin("admin"), 1)
        self.assertEqual(mapper.find_admin("admin1"), -1)

if __name__=="__main__":
    unittest.main()

帮助与提升

合理使用腾讯云 AI 代码助手编写测试用例能够大大简化开发流程我们只需要简单地输入代码片段或描述需要测试的功能,腾讯云 AI 代码助手会自动生成相应的测试用例。不仅如此,AI还可以生成的测试用例进行修改和优化,确保测试覆盖了各种可能的场景和边界情况。我们只需要运行测试用例,即可验证代码的正确性和稳定性,而免去复杂繁琐的设计工作

建议

AI工具虽好,在使用腾讯云 AI 代码助手时,需要注意以下几点:

  1. 理解生成的测试用例:虽然 AI 工具可以生成测试用例,但理解测试用例的逻辑和目的才能使我们学习和改进测试技能,这是保证测试工作准确高效的基础
  2. 手动验证和优化通过上面的例子可以发现,自动生成的测试用例可能并不完美,应根据实际需求进行调整和优化,确保测试的全面性和准确性。
  3. 持续学习常必须要强调的是,AI工具是辅助而非替代,开发者应不断学习测试方法和技巧,以提升自身的测试能力,否则很容易陷入AI的逻辑无法独立思考。

结语

        事实上,单元测试只是实际开发流程中的开始,借助腾讯云 AI 代码助手我们还可以尝试编写更复杂的测试用例,例如多模块集成测试、性能测试和安全测试等。通过这些才能进一步提高代码的健壮性。腾讯云 AI 代码助手作为一个强大的工具,能够持续提供有力的支持,但终究需要我们自身不断地实践和学习,才能真正掌握测试的技术

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

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

相关文章

基于Android aosp系统的云手机chromium浏览器定制

chromium定制浏览器 chromium源码下载get属性c或者c层常见指纹检测指标 chromium源码下载 最新有点时间研究了一些 网上定制chromium 浏览器的方案,大部分都是基于window的, 修改点无非以下监测点。自己本身做Android系统开发,就想着能否做一…

【AI大模型】Langchain探秘之旅:深入Prompt世界,解锁多种PromptTemplate的实战奇技!

文章目录 前言一、Langchain 概述1. 概述2. 应用场景3. 案例 二、Prompt1.Prompt 介绍2.PromptTemplatea.PromptTemplate 案例单个参数多个参数多个参数-结合字典解包 b.使用jinja2与f-string来实现提示词模板格式化 3.ChatPromptTemplatea.ChatPromptTemplate 介绍b.ChatPromp…

2024年8月一区SCI-海市蜃楼优化算法Fata morgana algorithm-附Matlab免费代码

引言 本期介绍了一种基于地球物理的高效优化方法名为海市蜃楼优化算法Fata morgana algorithm,FATA的元启发式算法。通过模拟海市蜃楼的形成过程,FATA分别设计了海市蜃楼滤光原理(MLF)和光传播策略(LPS)。该成果于2024年8月最新上线在JCR 1区&#xff0…

C#重要知识归纳总结

C#教程 C# 结构体(Struct) | 菜鸟教程C# 结构体(Struct) 在 C# 中,结构体(struct)是一种值类型(value type),用于组织和存储相关数据。 在 C# 中&#xff0c…

学习c语言第二十二天(c语言文件操作)

1. 为什么使用文件? 我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了&…

工地人员定位系统的功能和作用

工地人员定位系统是一种基于实时定位技术的管理系统,旨在为施工单位提供安全、高效的管理服务。该系统可以对工人进行实时监控与管理,极大地提高了工地施工安全性和工作效率,降低了工伤事故频率。通过使用该系统,施工单位能够实时…

解决mqtt在线或离线监听问题的多种方法

目录 前言 优缺点: 1.创建 DeviceMqttCallBacked类,实现 MqttCallbackExtended 接口,添加带cleintId参数的构造方法。 2. 在Mqtt连接成功之后,设置回调类。 3.执行上述代码,查看emqx界面 4.从emqx上踢除设备 5…

html+css 实现hover酷炫发光按钮

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…

“5G+Windows”推动全场景数字化升级:美格智能5G智能模组SRM930成功运行Windows 11系统

操作系统作为连接用户与数字世界的桥梁,在数字化迅速发展的时代扮演着至关重要的角色,智能设备与操作系统的协同工作,成为推动现代生活和商业效率的关键力量。其中,Windows系统以其广泛的应用基础和强大的兼容性成为全球最广泛使用…

服务器启动jar包的时候报”no main manifest attribute“异常(快捷解决)

所以,哥们,又出现问题咯.没事,我也出现了,哈哈哈哈哈,csdn感觉太麻烦了,所以搞了一篇这个. 没得事,往下看,包解决的. 希望可以帮助到各位,感谢阅览! 小手点个赞,作者会乐烂哈哈哈哈哈哈😆😆😆&#x1f606…

Linux中多线程压缩软件 | Mingz

原文链接:Linux中多线程压缩软件 本期教程 软件网址: https://github.com/hewm2008/MingZ安装: git clone https://github.com/hewm2008/MingZ.git cd MingZ make cd bin ./mingz -h使用源码安装: 若是你的git无法使用安装&am…

【IEEE出版 | 高校主办】第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024)

第三届人工智能、物联网和云计算技术国际会议(AIoTC 2024) 2024 3rd International Conference on Artificial Intelligence, Internet of Things and Cloud Computing Technology 2024年9月13-15日 | 中国武汉 重要信息 大会官网:www.ic…

Jboss 漏洞

一.CVE-2015-7501 访问/invoker/JMXInvokerServlet 开启下载存在漏洞 二.CVE-2017-7504 三CVE-2017-12149 启动vulhub环境,访问/invoker/readonly出现如下界面,说明存在漏洞 使用工具连接 四.Administration Console弱⼝令 访问/admin-console/login…

高职物联网智慧农业实训室建设方案

一、项目概述 随着物联网技术的迅猛发展及其在农业领域的广泛应用,智慧农业已经成为推动农业现代化的关键力量。近年来,国家高度重视物联网技术在农业领域的应用与发展,出台了一系列相关政策支持智慧农业建设。如《数字乡村发展战略纲要》明…

Dubbo框架实现RPC远程调用

项目背景介绍 这个技术我是直接在项目中运用并且学习的,所以我写笔记最优先的角度就是从项目背景出发 继上一次API网关完成了这个实现用户调用一次接口之后让接口次数增多的操作之后,又迎来了新的问题。 就是我们在调用接口的时候需要对用户进行校验&…

苍穹外卖day12(day15)---数据统计——Excel报表(项目完结)

工作台 接口设计 新建admin/WorkSpaceController /*** 工作台*/ RestController RequestMapping("/admin/workspace") Slf4j Api(tags "工作台相关接口") public class WorkSpaceController {Autowiredprivate WorkspaceService workspaceService;/*** 工…

★WIN10计算器程序员版的使用说明(详细)

主界面 拉动边框的角: 1.进制转换 HEX(hexadecimal):显示十六进制,DEC(decimal):显示十进制,OCT(octonary):显示八进制,BIN(binary):显示二进制 例如: 选中HEX 0~9,A…

Genymotion adb shell

Genymotion 账户是 qq邮箱 参考 Ubuntu 20.04 安装 Android 模拟器 Genymotion https://www.zzzmh.cn/post/553cd96d4e47490a90b3302a76a93c0d Genymotion adb shell adb shell C:\Program Files\Genymobile\Genymotion\tools>adb shell lsusb Bus 001 Device 001: ID …

【Bug分析】Keil报错:error: #18:expected a “)“问题解决

【Bug分析】Keil报错:error: #18:expected a “)”问题解决 前言bug查找bug解决方法小结 前言 keil编译时出现一个问题,缺少一个右括号。然后仔细查看代码,并没有括号缺失。 如下,代码括号正常。 bug查找 站内文章…

多机部署, 负载均衡-LoadBalance

目录 1.负载均衡介绍 1.1问题描述 1.2什么是负载均衡 1.3负载均衡的一些实现 服务端负载均衡 客户端负载均衡 2.Spring Cloud LoadBalancer 2.1快速上手实现负载均衡 2.2负载均衡策略 自定义负载均衡策略 3.服务部署(Linux) 3.1服务构建打包…