软件开发人员可以用人工智能创建更好的程序
时间:2020-02-24 09:20

  从事软件开发的公司,无论是为了外部客户还是为了自己的内部需求,都面临着各种各样的挑战。缺乏熟练的开发人员阻碍了创建高质量软件的努力。开发项目经常出错。许多人迟到了,超出了预算,或者在实现目标之前就被取消了。尽管程序员和其他专业人员付出了最大的努力,但完成的应用程序可能会受到bug的阻碍。根据德勤(Deloitte)的一份新报告,能够减轻这些障碍的一个因素是人工智能(AI)。

  德勤表示,人工智能可以在几个方面帮助软件开发。ai支持的工具可以减少开发人员需要键入的击键次数的一半。他们可以在检查或测试代码之前捕获bug和漏洞。它们可以自动生成一些质量所需的测试。

  通常由开发人员执行的某些工作可以被自动化。机器学习和自然语言处理可以分析源代码和其他开发数据,包括项目进度、延迟、应用程序缺陷和应用程序修复的记录。德勤表示,人工智能可以帮助开发人员编写更准确的代码,并创建更好的需求文档。

  项目需求。需求管理是收集、验证和最终用户对程序的需求的过程。但是如果管理不当,这个过程可能导致软件项目超出预算,面临延迟,或者完全失败。

  使用人工智能,数字助理可以分析需求文档,发现歧义和不一致,并提供改进。在自然语言处理的支持下,这些工具可以检测诸如不完整的需求、不可度量的量化(缺少单元或偏差)、复合需求和转义子句等问题。据德勤(Deloitte)说,据报道,使用这类工具的公司能够将需求审查时间缩短50%以上。

  作为开发人员类型,ai支持的代码完成工具可以为代码的最后几行提供。一些工具甚至可以根据相关性显示可用的代码段列表。ai支持的代码审查工具可以理解代码的意图并查找常见错误,从而检测bug并代码更改。视频游戏公司育碧表示,机器学习的使用帮助它在测试前捕获了70%的bug。

  运行测试不同场景的自动化软件测试工具已经存在许多年了。但是现在AI不仅可以帮助公司自动运行测试,还可以生成测试用例。基于ai的工具还可以识别真正的缺陷,而不是假阳性,并确定它们的根本原因。

  例如,一家私人股本公司使用ai工具自动生成用于验证一个软件项目的一半以上的测试用例。另一个例子是,一家中型软件公司在其传统工具无法适应不同场景的情况下,转而使用基于ai的测试工具。该公司能够获得与旧工具相同的测试覆盖率,但所需时间要少得多。

  ai支持的工具通过分析来自以前的代码发布和应用程序日志的统计数据,例如,一家电子商务公司使用机器学习来验证软件部署和回滚,实现了更快的应用程序交付,并且在生产中从故障恢复的平均时间减少了75%。

  在另一个示例中,一家在线公司使用机器学习工具来分析潜在的应用程序运行时设置并自动部署最佳配置。这个过程帮助公司削减了一半的云成本,并使应用程序性能提高了一倍多。

  公司也在使用人工智能来改善软件项目管理。基于ai的工具使用高级分析来预测新软件项目所需的技术任务、工程资源和时间线。例如,French telco Orange的创新团队使用ai支持的项目管理工具来自动化耗时的手工过程,即根据项目范围或特性集的变化来更新项目时间表。

  德勤表示,越来越多支持软件开发的基于人工智能的工具开始进入市场。在过去的18个月里,供应商已经发布了几十个ai驱动的软件开发工具。提供人工智能软件开发工具的初创公司在截至2019年9月的12个月里筹集了7.04亿美元。

  不过,德勤表示,依赖人工智能来改善软件开发确实存在一些缺陷。针对源代码软件的工具并非没有错误或漏洞,它们可能会鼓励开发人员无意中在代码中引入错误和安全风险。部署代码推荐工具的公司在提高生产率之前可能会看到生产率下降,因为这些工具需要经过一些培训才能有效地工作。

  “专家们早就预言了编程的终结,”德勤表示。“有些人预测,电脑最终会编写自己的程序;另一些人则认为,计算机编程的任务将让位给通过机器学习来教授计算机的过程。这两种情况都在一定程度上正在发生。

  但德勤补充称,在未来几年,大多数软件将由人来开发。“人工智能增强的软件开发工具是一个很好的例子,说明人工智能如何增强而不是取代工人。技术领导者肩负着帮助他们的组织创造未来的,而熟练地使用人工智能来改进软件开发实践可以支持这一。”

      大红鹰娱乐