首页 > 要闻 > > 正文
2019-11-07 15:48:04

DeepCode从GitHub项目数据中学习 为开发人员提供基于AI的代码审查

导读 我们正在快速接近每个公司实际上都是一家软件公司的地步,这是微软首席执行官萨蒂亚·纳德拉(Satya Nadella)等一些技术高层人士提出的观点

我们正在快速接近每个公司实际上都是一家软件公司的地步,这是微软首席执行官萨蒂亚·纳德拉(Satya Nadella)等一些技术高层人士提出的观点。这就是为什么我们看到大量投资可以帮助开发人员运营的工具 - 去年,例如,微软全押并以75亿美元的价格收购了代码托管和协作平台GitHub,而GitLab筹集了来自大型投资者的巨额资金,包括Alphabet的GV。

但是,使用更多软件会带来更多代码,这需要更多的检查,测试和调试。这就是为什么自动化开发人员操作(DevOps)测试工具对投资者来说也是有吸引力的目标,而在过去的一年里,像Functionalize,Testim和Mabl这样的人都在筹集大笔资金。事实上,自动化软件测试市场在2018年被固定在85亿美元,这一数字可能在五年内增长到接近200亿美元。

正是在这种背景下,瑞士创业公司DeepCode今天宣布了400万美元的种子轮融资,以扩展其机器学习系统以进行代码审查。该轮由Earlybird领导,参与3VC和Btov Partners。

代码审查

在代码合并或部署之前,代码审查流程广泛关注在软件开发的早期阶段发现错误,漏洞,样式违规等等 - 通常在软件测试发生之前发生。“软件测试从外部查看代码,但代码审查使您可以深入了解代码的DNA,”DeepCode联合创始人兼首席执行官Boris Paskalev告诉VentureBeat。

通常,代码审查涉及原始代码作者,他们的同事和管理者之间的协作,以期在发现更高级阶段之前发现明显的错误。项目越大,需要审查的代码行越多,这是一个耗时的过程。有一些选项可用于分析错误的源代码,例如静态分析工具Lint,但这些选项在范围方面往往不是整体的 - 它们专注于一组较小的,有针对性的“烦人且可重复的风格问题,格式化和次要问题,”根据Paskalev。

DeepCode的卖点是它涵盖了更广泛的问题,包括跨站点脚本和SQL注入等漏洞,同时它还承诺建立代码背后的意图,而不是发现简单的语法错误。所有这些基础都是机器学习(ML)系统,它使用来自公共开源项目的数十亿行代码进行培训,这些代码不断学习和更新他们的知识库。

虽然DeepCode可以从任何源代码库中提取代码,但Paskalev告诉VentureBeat,今天的公共知识库主要包含GitHub存储库。

“从开源软件中获取的知识可以帮助开发人员在通常需要的时间内编写干净安全的代码,”Paskalev说。

这些来自现有软件项目的学习包括以前版本的代码和后续更改,DeepCode通过这些更改学习模式,确定特定代码背后的意图,并确定存在错误的位置以及修复方法。

“这创建了所有已知错误及其适当解决方案的实时知识库,然后用于在代码实际发生之前识别代码中的任何错误,”Paskalev解释说。“DeepCode AI引擎将立即为您的软件代码确定并建议最佳解决方案。”

此外,DeepCode利用各种预测/推断算法进一步扩展已知问题,并深入研究原始示例项目中可能尚未修复的代码问题。

开发人员可以将DeepCode连接到云中的GitHub或Bitbucket帐户,但它也支持GitLab内部部署,之后它会审查每个提交并标记潜在问题。值得注意的是,DeepCode还提供了一个API,使开发人员可以在内部集成DeepCode,但这通常针对的是拥有必要资源的大型企业。

所有这些都提出了一个重要问题:DeepCode的自动代码审查智能有多可靠?任何低于100%准确度的东西都意味着开发人员仍然需要手动扫描他们的代码,在这种情况下,这实际上节省了多少时间?根据Paskalev的说法,DeepCode可以节省开发人员大约50%的时间用于处理bug。

“平均而言,开发人员浪费了大约30%的时间来发现和修复漏洞,但DeepCode现在可以节省一半的时间,将来可以节省更多,”他说。“由于DeepCode从全球开发社区获悉,它发现的问题比任何单一审阅者或审稿人都无法识别的问题更多。”

到目前为止的故事

DeepCode成立于2016年,是苏黎世联邦理工学院(瑞士联邦理工学院)的衍生产品,有时被称为欧洲麻省理工学院(MIT)的答案。该公司声称有三位联合创始人,包括CTO Veselin Raychev,他之前是Google的软件工程师,之后加入ETH获得博士学位,以及顾问Martin Vechev,ETH教授。

除了今天的资金消息,DeepCode还宣布了新的定价结构。到目前为止,DeepCode bot仅对开源软件开发项目免费。现在,它将免费用于教育用途以及多达30名开发人员的企业团队 - 显然,这是一个旨在加快小团队采用的举措。除此之外,DeepCode在云中部署时每个开发人员每月收费20美元,每个开发人员收取50美元用于本地支持。

Paskalev不会透露任何公司客户,但它确实提到了一些使用DeepCode的开源存储库,其中包括EmbarkFramework,欧洲环境署(EEA)和PyMedusa。

在此之前,DeepCode筹集了一笔100万美元的种子资金。该银行还有400万美元,该公司表示计划将其支持的语言扩展到Java,JavaScript和Python之外,其中包括C#,PHP和C / C ++等。它还证实了它正在开发其首个集成开发环境(IDE)集成。

“对于所有行业和几乎所有商业模式,编码的性能和质量已成为关键,”Earlybird联合创始人兼合作伙伴Christian Nagel补充说。“DeepCode提供了一个增强程序员开发能力的平台。该团队对代码优化有着深刻的科学理解,并使用人工智能来实现软件开发的下一个突破。“