当前位置: 首页 > 科技观察

如果AI可以测试软件并修复错误,对程序员来说会不会更容易?

时间:2023-03-17 12:13:58 科技观察

10月18日消息,从简单的手动任务到复杂的法律决策和医学诊断,机器人和人工智能正在以惊人的速度接管人类。虽然人工智能本身和大多数软件仍然主要由人类编写,但有迹象表明正在发生变化。已经有几种编程工具可以自动化软件测试。这样的未来看起来很精彩,但也会带来一些问题,比如离同行业有多远被盗用?未来会不会有一个类似终结者的世界,编程软件最终会让我们的人类同行失业?我们的计算机程序员投入了大量时间和精力来测试软件和修复错误。这个过程不仅费钱费时,而且对精度要求很高,如果你想设计出高质量的软件,这一点非常重要。测试软件的一种常见方法是运行一个程序,要求它执行某些任务并查看它是如何执行的。这种方法称为动态分析,许多工具可以帮助完成此过程。Facebook最近宣布了一个名为Sapienz的工具,它在这个领域取得了巨大的飞跃。该工具最初由伦敦大学学院开发,可通过自动化测试识别Android软件中的漏洞。Sapienz包含一种进化算法,可以根据软件响应做出新的选择。它的目标是找到最大数量的故障并执行最大数量的测试以尽可能高效地完成任务。Facebook可能很快就会面临来自牛津大学的公司DiffBlue的竞争。该公司基于分析和理解程序工作原理的人工智能引擎,开发了多种自动化工具来协助程序员。一个发现错误并测试软件,另一个发现可能被黑客利用的弱点。还有一个软件可以纠正过时的或者可以改进的代码。最近筹集了2200万美元资金的DiffBlue表示,它将向许多蓝筹公司推出这些工具。我们开发了专门用于查找程序错误的工具。通常,一个软件的bug通常只是手指无意的失误,比如写“+”时写“-”,这与Word文档的输入没有太大区别。或者由于计算机科学家的计数差异,他们从0而不是1开始计数,这会导致所谓的一次性错误。您会在程序测试期间发现这些令人讨厌的故障,并且您需要重复测试和调整,直到消除所有错误。Sapienz工具就是这样工作的。办公室工作人员会在白天执行他们的正常工作任务,并报告他们发现的任何软件错误。晚上,人们下班后,系统会对计算机代码进行小改动,并检查这些调整是否修复了报告的漏洞。来自每次代码运行的反馈用于推断哪些更改将是下一次测试的最佳选择。Sapienz在雷克雅未克的一个组织进行了为期四个月的测试,涉及约200名用户。该测试发现了22个漏洞,所有漏洞均已自动修复。每次决议都是在一夜之间完成的,这意味着当程序员早上到达办公室时,一份错误修复清单等待着他们。这项技术将改变程序员的工作。他们不再需要频繁的程序检查,有更多的时间进行研发。工作人员还表明,同一系统可以应用于其他不同的任务,包括使程序运行得更快以及提高预测软件的准确性。我们很容易理解这些程序对软件开发人员的好处,那么它们的负面影响是什么?大公司会裁掉他们的IT部门吗?程序员应该开始担心他们的未来吗?我们认为这不会发生。虽然自动化软件测试工具的兴起可能会让企业裁掉一些底层程序员,但我们相信软件研发部门引入这些工具可以让程序员更有创造力。他们将有更多的时间来开发而不是维护,这可能会导致令人兴奋的设计。计算机工作不会消失,但一些无聊的工作可能会消失。程序员、软件工程师和编码人员将拥有更多自动化工具,使他们的工作更轻松、更高效。虽然工作可能不会有太大变化,但我们也必须学会适应技术的发展,如果我们不这样做,我们就会落后于整个社会。以上内容由网易企业信息服务商湖南领先网络科技整理发布。