微软逆天啦,开发出自动揪 Bug 神器

Posted 非著名程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微软逆天啦,开发出自动揪 Bug 神器相关的知识,希望对你有一定的参考价值。

上面这个公号「涩郎」,是我的一个备用号,为了防止万一哪天大号失联,平时一周我也会发三篇左右的我的思考,读书笔记,认知感悟等文章,带领大家一起探索精神与财务自由之路。

大家好,我是校长。

先从一个老故事说起吧。

01

Repairnator:自动修复 bug

2018 年 1 月 12 日下午 12:28,GeoWebCache/geowebcache 项目和往常一样在 github 上提交代码。2 分钟后 travis-ci 上的单元测试以失败告终,测试结果显示有 2 个测试用例报错了。没过多久,2018 年 1 月 12 日下午 1 点 35 分,一名叫 LucEsape 的开发者发布了一个修复补丁。

2018 年 1 月 12 日下午 2:10,开发者接受了补丁,并将其合并到代码库,并评论到:“很奇怪,我以为我已经修好了...... 也许我在其他地方做过。谢谢你补丁!“

这是一个伟大的时刻,因为谁也不曾想到,修复这个 bug 的程序员 LucEsape 是一个机器人。他叫 Repairnator。

Repairnator 是由 KTH 瑞典皇家理工学院的软件技术教授 Martin Monperrus 开发。它会监控开源软件在持续集成期间发现的 bug,并尝试自动修复它们。如果它成功合成了一个有效的补丁,那么 Repairnator 会伪装成人类身份向人类开发者提交此补丁。到目前为止,Repairnator 已经成功生成了 5 个补丁,并被人类开发者永久地合并到代码库中。

这是自动程序修复软件工程研究中新的里程碑。

是不是很有意思呢?

Repairnator 可以自动发现 bug ,并修复 bug。

这是不是我们程序员梦寐以求的工具呢?

但是,换个角度想,可能这也可能并不是好事,是不是,有一种危险和危机存在呢?我们程序员因为这种人工智能工具的存在,可能价值大大降低。

但是,别害怕,我发现这个 Repairnator 并没有那么神奇,它修复的 bug 当中都是非常简单,非常简单的 bug,大多数都是 NPE(空指针异常)的问题。

而且,这不,也没啥下文了。

02

BugLabs

不过,前几天,我看到一条新闻是:微软专家推出 AI 工具 能自动发现代码中的 Bug。

据 mspoweruser 报道,微软的首席研究员 Miltos Allamanis 和高级首席研究经理 Marc Brockschmidt 开发了他们的人工智能 BugLabs,利用深度学习算法可以发现代码中的错误,帮助开发者更准确、更高效地对程序进行调试。

这种工具能够识别一些常见的错误,比如不正确的符号 “<=” 和 “<”,不正确的布尔运算符 “and” 和 “or”,变量滥用等等。为了测试该系统,微软使用了 Python 代码。

微软让两个网络相互竞争,一个旨在将小错误引入现有代码,另一个旨在寻找这些错误。这两个网络变逐渐升级,从而产生了一个善于识别隐藏在真实代码中 Bug 的人工智能。

微软表示,这一系统经过数据训练,可以用来检测并修复代码中的错误。与其它方法相比,经过训练后的模型发现 Bug 的概率最多可以提高 30%。利用该工具,发现了存在 GitHub 开源项目中的 19 个真实存在的代码错误。

这种 AI 工具目前依旧存在误报现象,因此还需要进一步改进。

他们的结论是,他们的方法是有希望的,当然,要使这种检测器在实际使用中可靠,还需要做很多工作。然而,这项工作很有可能最终被商业化。

其实,我感觉利用人工智能技术,开发一个帮助程序员发现 bug 的工具并提供建议,比去修复一个 bug 更靠谱的多。

毕竟,万一查找 bug 的程序里有 bug 怎么办呢?

这样的工具,并不会让程序员失去价值,反而还可以提高开发效率。

大家说呢?

点击下方公众号卡片,关注我

在公众号对话框,回复关键字 “1024”

免费领取副业赚钱实操教程

以上是关于微软逆天啦,开发出自动揪 Bug 神器的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发调试逆天神器之FLEX

这款神器,竟然能自动检索修复Python代码bug

这款神器,竟然能自动检索修复Python代码bug

微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???

程序员门槛再被“神器”降低:只要会英文,就能写代码!

程序员门槛再被“神器”降低:只要会英文,就能写代码!