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