颠覆性AI技术可以克服成本,速度和质量之间的折衷

颠覆性AI技术可以克服成本,速度和质量之间的折衷
Daniel是Diffblue的首席科学家和联合创始人。他拥有15年的构建软件验证工具的经验,并且是CBMC验证框架的主要作者。 Daniel还是牛津大学计算机科学教授。

曾经管理过一个项目的任何人都可能不得不在高速,高质量或低成本交付之间做出决定:俗话说,您只能选择两个。对于软件交付而言,这通常与对其他任何事物一样正确,但是数字化转换和不断交付更新的压力越来越大,这已使速度成为大多数组织的默认要求。这样就可以在质量和成本之间做出选择,而这通常取决于测试的决定。

测验—特别是单元测试—几十年来,它一直是软件交付生命周期(SDLC)中未被重视的阶段。它’从历史上看,它是缓慢的,资源密集型的,并且不如开发新功能有趣,这也许就是为什么为许多开发人员编写单元测试的主要动机是 外部压力,例如管理或客户需求,而不是他们自己的信念’值得做。在执行代码覆盖率目标的组织中,强制进行的手动测试可能很像被告知要吃蔬菜,因为它们’re good for you. 

随着组织看到测试对质量的积极影响并因此赋予更高的价值,尽管测试取得了一些进展,但成本仍然很高,并且似乎正在上升。在里面 凯捷《 2017年世界质量报告》–2018,接受调查的高级IT主管表示,他们希望到2020年将IT总预算的32%分配给测试,高于目前的26%。 

随着测试成本及其重要性的增加,预算与质量之间的决策会变得更加困难吗?也许不是:新的,具有颠覆性的AI技术最终可能使人们质疑我们是否必须首先做出这一选择。

使用敏捷软件满足更短的时间范围

自从 敏捷宣言 敏捷软件开发方法写于2001年,它鼓励了越来越短的开发周期和更快的应用程序更新交付,并且不断变化的消费者期望已使这一新标准成为现实。 

具有灵活软件架构的云原生公司通常可以实现雄心勃勃的上市时间目标。相比之下,大型企业会沉迷于在单元测试通常缺少测试套件之前编写的遗留代码。否则,这些测试套件将有助于重构过程,并且可以在不破坏旧代码的情况下发布频繁的更新。 31%的金融服务IT领导者对2019年做出了回应 数字房地产调查 说他们看到公司有问题’的传统基础架构,并认为它限制了他们采用新技术和体验技术革命的全部好处的能力。  

要保持竞争力,就需要找到一种方法来满足竞争对手和法规所规定的快速时间限制,同时仍要提供质量足够高的产品。 

唐’忽略测试的重要性

对于那些对测试的好处不满意的人,不进行测试的成本可能会提供更有力的依据。单元测试是最基本,最基础的测试形式,可以捕获其中的错误。 SDLC的最早阶段,这可以为企业节省成千上万英镑,甚至可以节省数百万英镑(甚至 更多,具体取决于错误)与在以后的阶段实施修复程序相比。除了修复回归错误的直接财务成本外,用户依赖的功能的停机有时还会对用户信任度和您的公司造成无法弥补的损害’s reputation. 

那里’还要记住在短期内跳过测试的长期成本。没有经过明确记录的测试而编写的任何新代码距离成为旧代码本身仅需几年的时间。这就是产生技术债务的方式。当前几天 发行新功能可以使一切都不同,这种技术上的负担会使您迅速从领先地位转到落后于产品组合。

拥抱不断的整合与发展

对于采用自动化的组织来说,自动化是一个福音,但是实现自动化的技术却并非如此。’t new. 詹金斯,它是促进持续集成和持续交付(CI / CD)的开源自动化服务器,其当前核心功能早在2011年就已发布;在过去的八年中,其技术产品变化不大。 

相反,组织和个人层面的文化转变增加了对现有自动化工具的采用:人们的态度正在朝着对自动化需求和对测试更高评估的认识开始。一种 2018年 survey on developer trends Digital Oceans的调查发现,接受调查的开发人员中有58%已经在使用持续集成解决方案。在尚未使用持续集成或交付解决方案的企业中,有43%的企业表示他们计划迁移到CI / CD。 

随着态度的转变,对这些自动化工具的需求也越来越高。尤其是要实现连续交付,潜在用户之间必须要有一种新的思维方式,即接受提交代码后再运行测试,应该存在这些测试以及对所有失败的测试立即采取行动的想法。将此与过去的态度进行比较,在过去的情况下,开发人员在编写软件时并不关心测试,然后稍后通常由其他人来进行质量检查。

自动化技术已经使业务受益

自动化的采用已经帮助减轻了在成本,速度,质量之间进行权衡的选择的打击。 《加速:构建和扩展高性能技术组织》一书的作者发现,采用自动化的团队确实倾向于更快地交付更高质量的代码。

尽管对速度有不可否认的帮助,但自动化也往往具有成本效益,专门用于测试的自动化是快速识别和解决代码质量问题的好方法。在相同的 凯捷《 2017年世界质量报告》–2018 如上所述,有60%的受访者表示测试自动化提高了他们检测缺陷的能力。自实施自动化以来,有57%的人通过使用自动化提高了测试用例的重用率,而54%的人看到了自实施自动化以来的测试周期时间减少。

因此,随着自动化已经提高了速度,质量和成本,下一个重大进步必定是测试过程中当前最大的瓶颈:自动化单元测试本身的创建。 

展望AI编码的未来

在过去的三年中,人工智能已经足够先进,可以开发具有实际业务应用程序的代码。通过使用数学推理和学习引擎,这种类型的技术可以在现有代码库中搜寻每条路径,并自动生成针对各种结果(包括边缘和极端情况)的单元测试。在此之前,即使是重视单元测试的组织也不得不失去他们的开发人员’给他们时间,还是以高成本外包。 

人工智能代码 通过使开发人员能够自动生成单元测试以及当前正在开发的代码,可以帮助开发人员预防错误并解决许多挑战,包括缩短产品的软件开发生命周期。与使用外包测试相比,这提供了即时反馈,甚至比使用外包测试更有用,因为在开发人员编写源代码的同时,它们也可供参考。对于开发人员而言,这种同时进行的方法意味着不会产生兴趣衰减,也无需转移焦点或试图记住编写代码时的想法。 

它还可以使软件设计师,开发人员和IT经理了解更改或迁移到未知旧代码的影响。自动化的单元测试使他们能够对开发过程做出更明智的决策。

对于CIO,CTO,经理和团队负责人来说,代码AI可以识别您的产品在风险方面表现好坏的方面,以及哪些方面可能被视为更高或更低的质量。当显示现有代码未覆盖的地方并自动生成测试以增加覆盖范围时,这特别有用。

测试与预算之间的成本与质量之间的权衡影响董事会讨论和IT策略的时间太长了。对于今天要竞争的任何组织而言,两者都非常重要,因此必须在它们之间做出决定。幸运的是,事情正在不断发展:借助现有的CI / CD工具以及使用AI自动生成代码的单元测试,它可以’企业拥有这一切变得越来越容易。

有兴趣听行业领导者讨论这样的话题并分享用例吗? 参加同居 5G博览会物联网技术博览会, 区块链博览会, 人工智能 & 大数据 Expo和 网络安全& 云 Expo 世界大赛即将在硅谷,伦敦和阿姆斯特丹举行。

查看评论
发表评论

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *