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

发布时间 2023-12-18 09:48:27作者: 红文

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

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

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

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

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

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

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

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

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

 

 

 

 

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

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

 

 

 

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

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

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

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

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

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