AI工具实现BUG自动检测功能,更换漏洞识别新风尚
扫描二维码
随时随地手机看文章
作为一名程序员,最苦恼的莫过于寻找bug,修复bug。然而,人类的脑部具有恒大的健忘性,而且一个软件的后台代码也不是只有十几行或者上千的数量那么简单。所以在很大数据代码中寻找漏洞那是非常痛苦的事情。随着科技的进步,AI技术就可以为我们解决这个难题。
以往,软件漏洞要靠程序员发现并修补。如今,人工智能技术正加速发展,如果排查、修补漏洞的工作由人工智能来完成,将有利于提升效率和质量。
从简单的人工作业到复杂的法律决定以及医疗诊断等领域,机器人和人工智能正以惊人的速度取代着人类。虽然人工智能本身和大多数软件仍然主要是由人类编写的,但是有迹象表明这一情况正在发生改变。
目前已经有几款程序设计工具能够自动完成软件测试。这种未来看起来非常令人激动,但是也会带来一些问题,比如同行业遭受侵吞还有多远?未来是否会出现一个终结者一样的世界,程序编写软件最终让人类同行成为失业者?
我们的计算机编程人员在测试软件和修复漏洞方面投入了大量的时间和精力。这一过程不仅耗钱、耗时,而且有着高精度的要求,如果你想设计出高质量的软件,这是非常重要的。测试软件常用的一种方法就是运行一个程序,要求它执行特定的任务并且观察它如何处理。这种方法被称为动态分析,许多工具都能够帮助完成这一过程。
Facebook最近公布了一款名为Sapienz的工具,实现了这一领域的巨大跳跃。这一工具最初是由伦敦大学学院研发的,它能够通过自动测试识别安卓软件中的漏洞。Sapienz含有一种进化算法,它能够根据软件反应做出新的选择,它的目标就是发现最大量的故障并且完成最大量的测试,尽可能高效的完成任务。
Facebook或许很快将迎来DiffBlue的竞争,这是牛津大学衍生的一家公司。该公司根据一种分析和了解程序运行的人工智能引擎,研发出几款自动工具为程序员提供帮助。其中一款能够找到漏洞并且进行软件测试,另一款能够发现那些可能被黑客利用的弱点。还有一款软件能够对那些已经过时或者可以提升的编码进行修正。DiffBlue公司最近获得了2200万美元的投资,并且宣称将把这些工具投放到许多蓝筹公司。
我们已经研发出工具致力于寻找程序漏洞。通常,软件漏洞通常只是手指一次无意的失误,比如写“+”时却写成了“-”,这与Word文档的输入没有太大的区别。或者由于计算机科学家计数的差异,他们从0开始计数而不是从1开始,这就会导致所谓的差一错误。你在程序测试过程中会发现这些令人讨厌的小故障,并且需要重复测试和调整,直到消除所有故障。
而Sapienz工具的工作方式是这样的。上班族会在白天进行正常的工作任务,并且报告他们发现的任何软件漏洞。在夜间人们下班以后,系统会对计算机编码进行微小改变,并且检查这种调整是否修复了报告的漏洞。每次代码运行的反馈信息都用于推断那种变化将成为下一次测试的最佳选择。
工作人员在雷克雅未克的一个组织对Sapienz进行了长达4个月的测试,涉及到大约200位用户。那次测试发现了22个漏洞,而且全都自动修复了。每一次的解决方案都是在夜间完成的,这意味着当程序员早晨到达办公室的时候,一系列漏洞修复列表正等待着他们。这一技术将使程序员的工作发生改变,他们不再需要频繁的程序检验,而且拥有更多的时间进行研发。工作人员也已经表明,同一个系统也能够应用于其它不同的任务,包括让程序运行的更快,提高预测软件的准确度等。
我们很容易就能够了解到这些程序给软件研发人员带来的好处,那么它们的负面影响是什么?各大公司是否会对他们的IT部门进行裁员?程序员们是否应当开始担忧自己的前程?我们认为这不会发生。虽然自动软件测试工具的崛起有可能让公司裁减部分低级的程序工作者,但是我们认为软件研发部门引进这些工具能够让程序员变得更有创造力。他们将有更多的时间研发而不是维护,这就有可能带来令人兴奋的设计。
计算机领域的岗位不会消失,但是一些令人厌烦的工作或许会消失。程序员、软件工程师和编码员将拥有更具自动化的工具来使自己的工作更简单、更高效。虽然工作岗位或许不会变化太多,但是我们也必须学会适应技术的发展,如果我们不这样做,我们就会落后于整个社会。