首页 > 编程语言 >解决程序员单元测试效率问题,AI是助力神器

解决程序员单元测试效率问题,AI是助力神器

时间:2023-12-18 09:58:04浏览次数:34  
标签:AI 代码 单元测试 程序员 测试用例 单测 我们

我们说了很久的AI智能,那到底作为一种智能化的工具能给我们带来什么样的帮助呢?

今天我就从一名程序员的角度来分析一下,实际上AI到底能解决我们什么问题?

首先介绍一下单测,单侧的全称叫做单元测试。就是我们在写完代码以后,给我们的最小的模块或者函数来写测试用例。

测试用例,主要是用来测试某个模块或者函数是不是符合预期的。比如一个计算函数,当参数固定的情况下,它的数值也是固定的,那么我就可以写一个单元测试函数来测试这个函数是不是符合预期。

单元测试主要是保证接口函数或者模块的功能是符合预期的。这个复合预期不仅是能够保证在第一次写代码上线的时候符合预期,更重要的是在随后的其他同学对这个模块进行修改的时候也能符合预期。

所以相对正规一点的公司都会有单元测试的要求。以我们公司为例,单元测试的覆盖率要求是在80%以上,并且要求单元测试的通过率是百分之百的。

很多写过单测的同学知道,写单元测试往往不像想象中那么简单。很多时候我们单元测试的代码量甚至比代码本身的数量还要多。另外就是很消耗时间,我们可能写代码需要一周,写单元测试可能就需要三四天。

所以在我们刚刚引入单元测试的时候,我们花了非常多的精力来写单元测试。

代写单元测试的技术含量并没有想象中的那么高,并且很多都是模板化的编写方式,主要就是一种体力劳动。那设想一下,这种情况,如果用AI来写单元测试,则效率会高了很多。

 

 

 

 

通过AI来写单测用例,一般只要把整个函数代码贴到相关的工具里面,那么它就可以自动的给我们的单元代码写出单元测试用例。

这个能在效率上至少提升2/3。我自己的测试,原来可能需要三天来写单元测试,在AI的帮助下用一天应该就差不多了。

 

 

 

不仅用我们传统的AI工具,甚至很多ide也集成了单元测试的一些插件,用起来会更加的方便。比如ide idea就集成AI的单元测试工具,可以非常方便的针对代码自动的生成单元测试用例。

我们阿里巴巴公司也出款了一款AI代码的插件。不仅能够写单元测试,还能够自动的写代码,自动的结合上下文产生出代码。

当然现在我们所说的这些工具还不是特别完善,特别是跟上下文的结合能力非常的弱。这种生成出来的单侧可能还需要再进一步再改动改动。相信过不了多久,AI应该就能够自动灵活的识别是我们的上下文帮我们生成写出即可运行的单测。

如果到了这个地步,那这个程序员的生产力提升就够恐怖了,可能写代码花一星期生成全部的用例只需要1分钟。

所以AI人工智能这一块的确在我们的生产环境里面有了解决问题的场景。而且随着AI大模型的学习能力的进阶,喂养更多的上下文数据,AI的能力会越来越强大。

不管未来怎么变化,善用AI工具的人一定是在这个世界上能够分到一块蛋糕的人。

 

标签:AI,代码,单元测试,程序员,测试用例,单测,我们
From: https://www.cnblogs.com/nengwenhuiwu/p/17910376.html

相关文章

  • 转行程序员4年半,被裁了
    大家好,这里是程序员晚枫。今天给大家分享一位朋友的故事:历史专业毕业后转行程序员,工作4年半后被裁员了。以下文章中的【我】,都是指这位朋友。2019年夏天从历史专业毕业后,开始从事程序员的工作,到今天是4年半了。今天想和大家聊一下,我为什么被裁员了。工作经历很复杂最开始干......
  • #yyds干货盘点# LeetCode程序员面试金典:组合总和 Ⅳ
    题目给你一个由不同整数组成的数组nums,和一个目标整数target。请你从nums中找出并返回总和为target的元素组合的个数。题目数据保证答案符合32位整数范围。 示例1:输入:nums=[1,2,3],target=4输出:7解释:所有可能的组合为:(1,1,1,1)(1,1,2)(1,2,1)......
  • #yyds干货盘点# LeetCode程序员面试金典:最长特殊序列 II
    题目给定字符串列表strs,返回其中最长的特殊序列的长度。如果最长特殊序列不存在,返回-1。特殊序列定义如下:该序列为某字符串独有的子序列(即不能是其他字符串的子序列)。s的子序列可以通过删去字符串s中的某些字符实现。例如,"abc"是"aebdc"的子序列,因为您可以删除......
  • 程序员的思维修炼 读书笔记02
    第三章认识你的大脑R型对直觉,问题解决和创造性非常重要,L型让你细致工作并实现目标。人类具有超强的感知能力,其中许多无法有效地用语言表达。例如,你可以立刻认出大量熟悉的人的面孔,无论他们是否改变了发型、穿着,或者肥了10磅,还是过了20年。但是,尝试描述你最亲密爱人的脸庞,你......
  • Open-World Object Manipulation using Pre-trained Vision-Language Models
    概述提出MOO:ManipulationofOpen-WorldObjects用预训练的VLM在图像中标记instruction的object的坐标,传入policy进行控制,可以zero-shot泛化到novelobject,还支持手指、点击输入指令。问题机器人泛化到训练中没有见过或者操作过的object。perception-planning-control的pi......
  • AI换脸利器!Roop下载分享
    ​前段时间给大家介绍过换脸界最强的Rope,感兴趣的小伙伴可以戳戳手指传送门:https://blog.csdn.net/S_eashell?spm=1011.2415.3001.5343 今天要说的Roop看起来和Rope师出同门,但两者之间并没有直接关系,换脸的效果也各有千秋在讲解前,先附上一张经过roop“调教”后的寡姐,啊,不是~......
  • 最好用的AI换脸软件,rope下载介绍
     随着AI技术的广泛运用,市面上的换脸软件也多了起来,今天给各位介绍其中的王者Rope!先上两个动图,给大伙看看效果  rope是如何实现这种自然的效果呢?这得益于机器学习技术的不断发展,rope经过深度神经网络的无数次迭代优化,最终得出的模型可以自动学习和识别视频中的人脸特征,它......
  • offline RL | Pessimistic Bootstrapping (PBRL):在 Q 更新中惩罚 uncertainty,拉低 OOD
    论文题目:PessimisticBootstrappingforUncertainty-DrivenOfflineReinforcementLearning,ICLR2022,6688spotlight。pdf版本:https://arxiv.org/abs/2202.11566html版本:https://ar5iv.labs.arxiv.org/html/2202.11566openreview:https://openreview.net/forum?id=Y4c......
  • 《程序员修炼之道:从小工到专家》有感(八)
    《程序员修炼之道:从小工到专家》是一本对程序员职业发展有着深刻指导意义的书籍,其中“保持身心健康”这一观点对于我们如何成为一个优秀的程序员有着重要的启示。在当今社会,程序员面临着巨大的工作压力和竞争压力,往往需要长时间坐在电脑前,这容易导致身体和心理健康问题的......
  • 理解 Paimon changelog producer
    介绍目的Chaneglogproducer的主要目的是为了在Paimon表上产生流读的changelog,所以如果只是批读的表是可以不用设置Chaneglogproducer的.一般对于数据库如MySQL来说,当执行的语句涉及数据的修改例如插入、更新、删除时,MySQL会将这些数据变动记录在binlog中。相......