人工智能可以填补软件自动化的空白
人工智能可能会对软件开发产生成熟的影响。人工智能有助于在几天内而不是几个月或几年内创建原型吗?它会教人类开发者如何更好地编码吗?人工智能研究广泛,代码灵活,很难想象当智能程序可以帮助我们与代码交互时,软件开发会是什么样子。
很多开发人员和技术经理没有意识到的是,在过去的几年里,人工智能在实用性上对开发团队有了很大的飞跃。事实上,人工智能辅助软件开发的早期阶段已经到来。
注意差距
很难找到不以持续集成(CI)为目标的组织,自动化技术使这一目标得以大规模实现。在过去的十年里,自动运行测试通过允许开发人员获得对他们的代码更改的即时反馈并做出相应的调整,提高了软件质量。自动化软件管道通过使用生成辅助请求的机器人助手来实现更新的连续交付。
然而,采用这种技术的公司有时会发现,仅靠自动化是不够的。自动化过程中仍然存在必须手动完成的空白,其中大部分围绕着新代码的创建。例如,数百或数千个单元测试可以快速自动执行,但是当开发团队需要数小时或数周来编写自己的测试时,就会出现瓶颈。如果没有验证提交的测试,自动管道将导致垃圾邮件。当添加新代码(和新测试)时,由于需要持续的手工工作,本可以是自动过程的部分被分解了。
优秀的人工智能测试任务
目前已有的代码技术AI通过自动编写可以验证其他自动化管道的测试代码,可以一次性解决这两个问题。这样的任务过去需要开发人员的时间,这使得他们无法做更多实质性的增值工作,比如创建新的功能。面向单元测试的人工智能为更全面地自动化重要但缓慢而繁琐的过程打开了大门。
可以预见,AI创造的测试看起来和人类写的测试不一样,但短时间内就会产生,功能也会和别人一样好。即使它们没有变得更好,也可以确保当它们被捕获时,仍然很容易修复任何代码中断更改。毕竟,正如Martin Fowler在2006年关于持续集成的文章中总结的那样:“经常运行的不完美测试比根本没有编写的完美测试要好得多。”
通过这种方式,人工智能可以开始打破开发人员和信息技术经理在时间、成本和工作质量之间的权衡。人工智能辅助开发可以使开发人员在不影响质量的情况下更快、更经济地创建新产品。通过可靠而快速地完成重复性任务,开发人员可以重启吸引他们工作的创造性任务。
人工智能代码已经在这里了
在一些注重代码质量的行业,比如金融业,AI已经被用来辅助软件开发。例如,高盛最近在代码中使用人工智能来提高其软件开发效率。通过使用人工智能工具为一个有1500行代码的遗留应用程序编写3000多个单元测试,他们在几个小时内创建了一个完整的测试套件。与手工编写每个单元测试平均30分钟的时间相比,这款AI工具编写测试的速度提高了180多倍。总之,银行设法节省了一年多的开发时间。
随着AI技术的不断发展和针对更多用例的解决方案的开发,用于软件开发的AI投资将在各个行业变得越来越普遍。为了实现持续集成和规模增长,很快就需要在开发过程中集成新级别的插件。然而与此同时,AI辅助软件开发的第一次迭代已经到来,这让我们了解了编码的未来。
标签: