AI工具實現(xiàn)BUG自動檢測功能,更換漏洞識別新風尚
作為一名程序員,最苦惱的莫過于尋找bug,修復bug。然而,人類的腦部具有恒大的健忘性,而且一個軟件的后臺代碼也不是只有十幾行或者上千的數(shù)量那么簡單。所以在很大數(shù)據(jù)代碼中尋找漏洞那是非常痛苦的事情。隨著科技的進步,AI技術(shù)就可以為我們解決這個難題。
以往,軟件漏洞要靠程序員發(fā)現(xiàn)并修補。如今,人工智能技術(shù)正加速發(fā)展,如果排查、修補漏洞的工作由人工智能來完成,將有利于提升效率和質(zhì)量。
從簡單的人工作業(yè)到復雜的法律決定以及醫(yī)療診斷等領(lǐng)域,機器人和人工智能正以驚人的速度取代著人類。雖然人工智能本身和大多數(shù)軟件仍然主要是由人類編寫的,但是有跡象表明這一情況正在發(fā)生改變。
目前已經(jīng)有幾款程序設(shè)計工具能夠自動完成軟件測試。這種未來看起來非常令人激動,但是也會帶來一些問題,比如同行業(yè)遭受侵吞還有多遠?未來是否會出現(xiàn)一個終結(jié)者一樣的世界,程序編寫軟件最終讓人類同行成為失業(yè)者?
我們的計算機編程人員在測試軟件和修復漏洞方面投入了大量的時間和精力。這一過程不僅耗錢、耗時,而且有著高精度的要求,如果你想設(shè)計出高質(zhì)量的軟件,這是非常重要的。測試軟件常用的一種方法就是運行一個程序,要求它執(zhí)行特定的任務并且觀察它如何處理。這種方法被稱為動態(tài)分析,許多工具都能夠幫助完成這一過程。
Facebook最近公布了一款名為Sapienz的工具,實現(xiàn)了這一領(lǐng)域的巨大跳躍。這一工具最初是由倫敦大學學院研發(fā)的,它能夠通過自動測試識別安卓軟件中的漏洞。Sapienz含有一種進化算法,它能夠根據(jù)軟件反應做出新的選擇,它的目標就是發(fā)現(xiàn)最大量的故障并且完成最大量的測試,盡可能高效的完成任務。
Facebook或許很快將迎來DiffBlue的競爭,這是牛津大學衍生的一家公司。該公司根據(jù)一種分析和了解程序運行的人工智能引擎,研發(fā)出幾款自動工具為程序員提供幫助。其中一款能夠找到漏洞并且進行軟件測試,另一款能夠發(fā)現(xiàn)那些可能被黑客利用的弱點。還有一款軟件能夠?qū)δ切┮呀?jīng)過時或者可以提升的編碼進行修正。DiffBlue公司最近獲得了2200萬美元的投資,并且宣稱將把這些工具投放到許多藍籌公司。
我們已經(jīng)研發(fā)出工具致力于尋找程序漏洞。通常,軟件漏洞通常只是手指一次無意的失誤,比如寫“+”時卻寫成了“-”,這與Word文檔的輸入沒有太大的區(qū)別?;蛘哂捎谟嬎銠C科學家計數(shù)的差異,他們從0開始計數(shù)而不是從1開始,這就會導致所謂的差一錯誤。你在程序測試過程中會發(fā)現(xiàn)這些令人討厭的小故障,并且需要重復測試和調(diào)整,直到消除所有故障。
而Sapienz工具的工作方式是這樣的。上班族會在白天進行正常的工作任務,并且報告他們發(fā)現(xiàn)的任何軟件漏洞。在夜間人們下班以后,系統(tǒng)會對計算機編碼進行微小改變,并且檢查這種調(diào)整是否修復了報告的漏洞。每次代碼運行的反饋信息都用于推斷那種變化將成為下一次測試的最佳選擇。
工作人員在雷克雅未克的一個組織對Sapienz進行了長達4個月的測試,涉及到大約200位用戶。那次測試發(fā)現(xiàn)了22個漏洞,而且全都自動修復了。每一次的解決方案都是在夜間完成的,這意味著當程序員早晨到達辦公室的時候,一系列漏洞修復列表正等待著他們。這一技術(shù)將使程序員的工作發(fā)生改變,他們不再需要頻繁的程序檢驗,而且擁有更多的時間進行研發(fā)。工作人員也已經(jīng)表明,同一個系統(tǒng)也能夠應用于其它不同的任務,包括讓程序運行的更快,提高預測軟件的準確度等。
我們很容易就能夠了解到這些程序給軟件研發(fā)人員帶來的好處,那么它們的負面影響是什么?各大公司是否會對他們的IT部門進行裁員?程序員們是否應當開始擔憂自己的前程?我們認為這不會發(fā)生。雖然自動軟件測試工具的崛起有可能讓公司裁減部分低級的程序工作者,但是我們認為軟件研發(fā)部門引進這些工具能夠讓程序員變得更有創(chuàng)造力。他們將有更多的時間研發(fā)而不是維護,這就有可能帶來令人興奮的設(shè)計。
計算機領(lǐng)域的崗位不會消失,但是一些令人厭煩的工作或許會消失。程序員、軟件工程師和編碼員將擁有更具自動化的工具來使自己的工作更簡單、更高效。雖然工作崗位或許不會變化太多,但是我們也必須學會適應技術(shù)的發(fā)展,如果我們不這樣做,我們就會落后于整個社會。