日本精品aⅴ一区二区三区|国产欧美一二三区|国产乱码精品精|国产精品电影在线免费

      1. <blockquote id="utafg"><th id="utafg"></th></blockquote>
    1. <div id="utafg"></div>
        <blockquote id="utafg"><th id="utafg"></th></blockquote>

        <menuitem id="utafg"></menuitem>
      1. 您現(xiàn)在的位置是:首頁(yè) >人工智能 > 2021-05-11 17:54:03 來(lái)源:

        認(rèn)識(shí)那些評(píng)論和編寫(xiě)Facebook代碼片段的機(jī)器人

        導(dǎo)讀 空指針異常就像擁有一個(gè)從未構(gòu)建過(guò)的房子的地址。這意味著程序員已經(jīng)引用了一個(gè)實(shí)際上不存在的對(duì)象,因?yàn)樗鼜奈丛诖a中描述過(guò)。實(shí)際上,空

        空指針異常就像擁有一個(gè)從未構(gòu)建過(guò)的房子的地址。這意味著程序員已經(jīng)引用了一個(gè)實(shí)際上不存在的對(duì)象,因?yàn)樗鼜奈丛诖a中描述過(guò)。實(shí)際上,空指針是非常常見(jiàn)的并且相對(duì)容易修復(fù) - 很容易讓人覺(jué)得無(wú)聊。

        不幸的是,發(fā)現(xiàn)和修復(fù)這些錯(cuò)誤的繁瑣工作仍占用了開(kāi)發(fā)人員的大部分時(shí)間和精力。2016年對(duì)1,000個(gè)Android應(yīng)用程序的評(píng)估 [PDF]發(fā)現(xiàn)空指針比任何其他類(lèi)型的錯(cuò)誤導(dǎo)致更多崩潰,包括非法參數(shù),數(shù)組索引超出范圍異常和錯(cuò)誤令牌。

        為了讓開(kāi)發(fā)人員的工作更有價(jià)值,F(xiàn)acebook現(xiàn)在使用兩種名為Sapienz和SapFix的自動(dòng)化工具來(lái)查找和修復(fù)其移動(dòng)應(yīng)用程序中的低級(jí)錯(cuò)誤。Sapienz通過(guò)許多測(cè)試運(yùn)行應(yīng)用程序,以確定哪些操作會(huì)導(dǎo)致崩潰。然后,SapFix建議對(duì)開(kāi)發(fā)人員進(jìn)行修復(fù),他們會(huì)對(duì)其進(jìn)行審核并決定是否接受修復(fù),提出自己的問(wèn)題或忽略問(wèn)題。

        工程師們于2017年9月開(kāi)始使用Sapienz審查Facebook應(yīng)用程序,并逐漸開(kāi)始將其用于公司的其他應(yīng)用程序(包括Messenger,Instagram,F(xiàn)acebook Lite和Workplace)。今年5月,該團(tuán)隊(duì)將在加拿大蒙特利爾舉行的國(guó)際軟件工程會(huì)議上描述其最近采用的SapFix (他們正在招聘)。

        據(jù)該團(tuán)隊(duì)稱(chēng),到目前為止,Sapienz和SapFix的組合運(yùn)作良好。“這節(jié)省了開(kāi)發(fā)人員的時(shí)間,這是我們的主要目標(biāo),” Facebook工程經(jīng)理馬克哈曼說(shuō)。哈曼也是倫敦大學(xué)學(xué)院的軟件工程教授,他與創(chuàng)始人岳佳和柯茂共同創(chuàng)辦了Sapienz,他們的前創(chuàng)業(yè)公司Majicke是Facebook于2017年2月收購(gòu)的。

        自首次亮相以來(lái),Sapienz每個(gè)月都會(huì)發(fā)現(xiàn)數(shù)百種新方法讓每個(gè)Facebook的應(yīng)用程序崩潰。雖然其中一些崩潰不是開(kāi)發(fā)人員主要擔(dān)心的問(wèn)題,但大約75%的崩潰事件已經(jīng)受到保護(hù)。

        目前,SapFix僅建議修復(fù)空指針,但團(tuán)隊(duì)希望有一天能夠擴(kuò)展該系統(tǒng)以協(xié)助處理許多不同的錯(cuò)誤類(lèi)型。作為其修復(fù)的起點(diǎn),SapFix依賴(lài)于在Facebook開(kāi)發(fā)的另一個(gè)名為Getafix的工具提供的模板 。這些模板基于人類(lèi)開(kāi)發(fā)人員針對(duì)類(lèi)似問(wèn)題所做的先前修復(fù)。

        自動(dòng)化錯(cuò)誤修復(fù),至少對(duì)于某些類(lèi)別的錯(cuò)誤,應(yīng)該讓開(kāi)發(fā)人員可以編寫(xiě)更多代碼或解決更難的問(wèn)題 - 類(lèi)似于處理故事的邏輯和語(yǔ)義而不是修復(fù)拼寫(xiě)和語(yǔ)法錯(cuò)誤。

        加州大學(xué)圣巴巴拉分校的計(jì)算機(jī)科學(xué)教授Giovanni Vigna說(shuō):“我認(rèn)為在未來(lái),這將成為主流,因?yàn)樗哂兄匾饬x。” “而不是支付昂貴的質(zhì)量保證工程師找到瑣碎的錯(cuò)誤,付錢(qián)給他們找到超級(jí)難題。而簡(jiǎn)單的,自動(dòng)化。“

        到目前為止,關(guān)于自動(dòng)化錯(cuò)誤修復(fù)的大部分工作僅限于學(xué)術(shù)實(shí)驗(yàn)室或DARPA競(jìng)賽,但Facebook的進(jìn)展表明這些技術(shù)現(xiàn)在已開(kāi)始進(jìn)入主要科技公司的工作流程。“就真實(shí)部署而言,F(xiàn)acebook的系統(tǒng)是我聽(tīng)過(guò)的第一個(gè),”維尼亞說(shuō)。

        Harman預(yù)測(cè),使用像SapFix這樣的工具,可以在兩到五年內(nèi)消除特定類(lèi)型的錯(cuò)誤 - 這意味著它們將被自動(dòng)化系統(tǒng)完全找到并修復(fù)。本地化為幾行代碼的錯(cuò)誤比更復(fù)雜的代碼更可能位于滅絕列表中。

        瑞典KTH皇家理工學(xué)院軟件技術(shù)教授Martin Monperrus的前景更加保守。他說(shuō)自動(dòng)蟲(chóng)修復(fù)“僅在開(kāi)始時(shí)”,并將其與運(yùn)輸史上的“早期自行車(chē)水平”進(jìn)行比較。

        SapFix當(dāng)然還有改進(jìn)的余地。“它經(jīng)常會(huì)提出不好的解決方案,”哈曼說(shuō)。但是,他補(bǔ)充說(shuō),完美不一定是目標(biāo)。“我們不一定每次都是對(duì)的; 它只需要經(jīng)常足以幫助開(kāi)發(fā)人員。“

        Sapienz幫助的一項(xiàng)任務(wù)是決定運(yùn)行哪些測(cè)試以確定哪些用戶(hù)操作會(huì)導(dǎo)致應(yīng)用程序崩潰。此類(lèi)操作可能包括一次單擊兩個(gè)按鈕,在結(jié)帳時(shí)應(yīng)用多個(gè)優(yōu)惠券代碼,或從列表中選擇多個(gè)選項(xiàng)。提出這些測(cè)試是一個(gè)復(fù)雜的問(wèn)題,因?yàn)檎绻f(shuō),“即使是一個(gè)簡(jiǎn)單的應(yīng)用程序也有比宇宙中的恒星更多的測(cè)試用例。”

        盡管可以通過(guò)稱(chēng)為隨機(jī)模糊測(cè)試的技術(shù)自動(dòng)生成測(cè)試,但這樣做計(jì)算成本高,并且可能產(chǎn)生極長(zhǎng)或其他不切實(shí)際的情況(例如一次觸摸屏幕上的20個(gè)位置)。當(dāng)開(kāi)發(fā)人員手動(dòng)設(shè)計(jì)這些測(cè)試時(shí),他們經(jīng)常會(huì)忽略他們沒(méi)有明確設(shè)計(jì)的案例。

        Sapienz不是依賴(lài)于隨機(jī)生成的或開(kāi)發(fā)人員設(shè)計(jì)的測(cè)試,而是生成可能的測(cè)試列表,并支持那些以最短步驟產(chǎn)生崩潰的測(cè)試。它還優(yōu)先考慮具有更高覆蓋率的測(cè)試,這意味著他們點(diǎn)擊應(yīng)用程序中的更多屏幕。從那里,它略微改變這些測(cè)試(通過(guò)改變點(diǎn)擊或交換一個(gè)步驟)來(lái)提出另一批類(lèi)似的測(cè)試,并重復(fù)該過(guò)程。

        在評(píng)估結(jié)束時(shí),Sapienz將找到快速可靠地崩潰應(yīng)用程序的新方法。使用預(yù)測(cè)模型,Sapienz根據(jù)他們可能的常見(jiàn)和嚴(yán)重程度對(duì)這些崩潰進(jìn)行優(yōu)先排序。系統(tǒng)使用一系列啟發(fā)式規(guī)則來(lái)研究可能產(chǎn)生問(wèn)題的代碼行,并在Facebook的代碼審查工具中注釋這個(gè)位置,允許開(kāi)發(fā)人員看到系統(tǒng)的注釋覆蓋在他們編寫(xiě)的實(shí)際代碼上。

        Facebook的開(kāi)發(fā)者每周進(jìn)行超過(guò)100,000次提交,Android的Facebook應(yīng)用程序包含數(shù)百萬(wàn)行代碼。Sapienz全天候運(yùn)行數(shù)百個(gè)仿真器來(lái)檢查代碼發(fā)布前后的代碼,每天進(jìn)行數(shù)萬(wàn)次測(cè)試。

        “這是這些技術(shù)如何慢慢成為主流的一個(gè)很好的例子,”維尼亞說(shuō)。“我認(rèn)為未來(lái)我們會(huì)看到越來(lái)越多這樣的事情。”