首页 科技 > 正文

人工智能可以填补软件自动化的空白

人工智能对软件开发的可能影响已经成熟。人工智能会在几天内(而不是几个月或几年内)帮助创建原型吗?它会教人类开发者如何更好地编码吗?人工智能研究广泛,代码灵活,很难想象当智能程序可以帮助我们与代码交互时,软件开发会是什么样子。

很多开发者和技术经理没有意识到的是,在过去的几年里,人工智能对于开发团队来说,在实用性上有了很大的飞跃。其实AI辅助软件开发的前期已经到来。

注意差距

很难找到没有持续集成(CI)目标的组织,自动化技术使这一目标得以大规模实现。在过去的十年中,自动化测试通过允许开发人员获得对他们代码更改的即时反馈并做出相应的调整,提高了软件的质量。自动软件管道通过使用生成辅助请求的机器人助手来实现更新的持续交付。

然而,采用这种技术的公司有时会发现仅仅自动化是不够的。自动化过程中仍然存在一些必须手工完成的缺口,其中大部分都围绕着新代码的创建。例如,数百或数千个单元测试的自动化执行可以很快完成,但当开发团队需要数小时或数周来编写自己的测试时,就会出现瓶颈。如果没有测试来验证提交,自动管道将导致垃圾邮件。当添加新的代码(和新的测试)时,本可以是自动过程的部分由于持续的手工工作而被打破。

出色的人工智能测试任务

目前,现有的代码技术AI可以通过自动编写可以验证其他自动化流水线的测试代码,一次性解决这两个问题。这样的任务过去需要开发人员的时间,这使得他们无法做更多实质性的增值工作,比如创建新功能。单元测试的人工智能为重要但缓慢而繁琐的过程的更全面自动化打开了大门。

可以预见的是,AI创建的测试看起来与人类编写的测试不同,但它们将在极短的时间内产生,并且它们的功能一样好,如果不是更好的话。可以确保在捕获到任何代码被破坏的更改时,仍然很容易修复它们。毕竟,正如Martin Fowler在他2006年关于持续集成的文章中总结的那样:“经常运行的不完美的测试要比根本没有编写的完美测试好得多。”

通过这种方式,AI可以开始打破开发人员和IT经理一直遭受的时间、成本和工作质量之间的权衡。人工智能辅助开发可以让开发者在不影响质量的情况下,更快更经济地创造新产品。通过可靠而快速地完成重复性任务,开发人员可以开始吸引他们再次工作的创造性任务。

代码人工智能已经出现了

在一些重视代码质量的行业,比如金融行业,AI已经被用来辅助软件开发。例如,高盛最近在代码中使用AI来提高其软件开发效率。使用人工智能工具为一个具有1500行代码的遗留应用程序编写了3000多个单元测试,他们在几个小时内创建了一个完整的测试套件。与平均30分钟手工编写每个单元测试的时间相比,这个AI工具编写测试的速度提高了180倍以上。总而言之,银行设法节省了一年多的开发时间。

随着AI技术的不断发展和更多用例的解决方案的开发,投资AI进行软件开发在各个行业会越来越普遍。为了实现持续集成和规模增长,很快就需要将新级别的插件集成到开发过程中。但与此同时,人工智能辅助软件开发的第一次迭代已经在这里,这让我们对编码的未来有了一个想法。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。