翻譯|行業(yè)資訊|編輯:黃竹雯|2019-09-10 14:41:32.090|閱讀 646 次
概述:軟件開發(fā)行業(yè)最新的流行語(yǔ)之一是AI(人工智能)。但這究竟意味著什么?在軟件測(cè)試自動(dòng)化環(huán)境中,AI如何與其更廣泛的定義不同?
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
當(dāng)我們談?wù)揂I及其姐妹術(shù)語(yǔ)機(jī)器學(xué)習(xí)時(shí),我們通常想表達(dá)什么呢?接下來(lái)我們將討論下我們?nèi)绾问褂肁I和機(jī)器學(xué)習(xí)來(lái)推進(jìn)軟件測(cè)試的最新技術(shù)。
人工智能是市場(chǎng)上最有重量感的流行語(yǔ)之一。“人工智能”會(huì)讓人想起像全能超級(jí)計(jì)算機(jī)這樣的東西,他們一心想要?dú)缛祟悾灰訟lexa或Siri的方式提供語(yǔ)音控制協(xié)助;電腦棋對(duì)手;或自動(dòng)駕駛汽車。
維基百科定義人工智能研究作為“ ...的研究‘智能代理’:即感知周圍環(huán)境,并采取最大限度地發(fā)揮其成功地實(shí)現(xiàn)其目標(biāo)的幾率行為有關(guān)的任何設(shè)備。”但是在我看來(lái),這有些抽象,我傾向于把AI作為該計(jì)算機(jī)程序或機(jī)器思考(自身的原因)和學(xué)習(xí)(以有益的方式收集數(shù)據(jù)和修改未來(lái)行為)的能力。在這個(gè)定義中,我們開始在AI對(duì)軟件意味著什么的背景下看到更有意義的東西開發(fā)工具和技術(shù)。
同樣重要的是要意識(shí)到“AI”的范圍會(huì)隨著時(shí)間而變化。例如,在某一時(shí)刻,光學(xué)字符識(shí)別(OCR)被認(rèn)為是AI中最先進(jìn)的技術(shù)。或者來(lái)自Siri和Alexa的問答回答,一度被認(rèn)為是最先進(jìn)的,但是現(xiàn)在卻基本上被認(rèn)為是理所當(dāng)然的存在,并不被認(rèn)為是人工智能了。軟件測(cè)試工具也會(huì)發(fā)生同樣的事情 - 隨著新功能的發(fā)展,現(xiàn)在的自動(dòng)化創(chuàng)新在未來(lái)將會(huì)成為現(xiàn)實(shí)。但就目前而言,讓我們來(lái)思考一下2018年的軟件測(cè)試自動(dòng)化中的人工智能。
人工智能在軟件開發(fā)中的應(yīng)用仍處于起步階段,自主程度遠(yuǎn)低于自動(dòng)駕駛系統(tǒng)或語(yǔ)音輔助控制等更為發(fā)展的領(lǐng)域,盡管它仍然朝著自主的方向前進(jìn)測(cè)試。AI在軟件測(cè)試工具中的應(yīng)用側(cè)重于使軟件開發(fā)生命周期更容易。通過應(yīng)用推理,解決問題,以及在某些情況下,機(jī)器學(xué)習(xí),AI可用于幫助自動(dòng)化和減少開發(fā)和測(cè)試中的平凡和繁瑣任務(wù)的數(shù)量。
AI在軟件開發(fā)中的亮點(diǎn)在于應(yīng)用它來(lái)消除這些限制,使軟件測(cè)試自動(dòng)化工具能夠?yàn)殚_發(fā)人員和測(cè)試人員提供更多價(jià)值。AI的價(jià)值來(lái)自于減少開發(fā)人員或測(cè)試人員在最平凡的任務(wù)中的直接參與。(在應(yīng)用業(yè)務(wù)邏輯等方面仍然非常需要人工智能)
例如,考慮大多數(shù)測(cè)試自動(dòng)化工具為您運(yùn)行測(cè)試并提供結(jié)果。大多數(shù)人不知道要運(yùn)行哪些測(cè)試,因此他們運(yùn)行所有測(cè)試或一些預(yù)定的設(shè)置。那么,如果啟用AI的機(jī)器人可以查看當(dāng)前的測(cè)試狀態(tài),最近的代碼更改,代碼覆蓋率和其他指標(biāo),決定運(yùn)行哪些測(cè)試,然后運(yùn)行它們呢?引入基于變化數(shù)據(jù)的決策是應(yīng)用AI的一個(gè)例子(順便說一句,Parasoft做到了這一點(diǎn))。該軟件有效地能夠在決策過程中取代開發(fā)人員/測(cè)試人員。將此應(yīng)用于CI / CD管道的好處是顯而易見的。
那么,機(jī)器學(xué)習(xí)呢?機(jī)器學(xué)習(xí)可以通過應(yīng)用算法來(lái)增強(qiáng)AI,這些算法允許工具通過收集測(cè)試產(chǎn)生的大量數(shù)據(jù)自動(dòng)改進(jìn)。
機(jī)器學(xué)習(xí)研究是整體AI研究的一個(gè)子集,側(cè)重于基于先前觀察到的數(shù)據(jù)的決策。這是人工智能整體的一個(gè)重要方面,因?yàn)橹悄苄枰趯W(xué)習(xí)改進(jìn)時(shí)修改決策。但是,在軟件測(cè)試工具中,并不總是需要機(jī)器學(xué)習(xí) - 有時(shí)候最好使用工具手動(dòng)微調(diào)人工智能工具以適應(yīng)組織,然后每次都可以應(yīng)用相同的邏輯和推理,無(wú)論如何結(jié)果。
在其他情況下,數(shù)據(jù)收集是決策過程的關(guān)鍵,機(jī)器學(xué)習(xí)可能非常有價(jià)值,最初需要一些數(shù)據(jù),然后隨著收集更多數(shù)據(jù)而改進(jìn)或適應(yīng)。例如,隨著時(shí)間的推移,代碼覆蓋率,靜態(tài)分析結(jié)果,測(cè)試結(jié)果或其他軟件度量可以向AI通知軟件項(xiàng)目的狀態(tài)。
這是Parasoft研究和開發(fā)的一個(gè)重要領(lǐng)域。令人興奮的是,我們目前的產(chǎn)品只是一個(gè)開始,我們對(duì)AI和ML的持續(xù)研究繼續(xù)為將這些技術(shù)集成到我們的產(chǎn)品中帶來(lái)新的方法。以下是我們已經(jīng)將它們引入的幾種實(shí)例。
第一個(gè)例子是Parasoft Jtest,我們的Java開發(fā)人員軟件測(cè)試解決方案,包括靜態(tài)分析,單元測(cè)試,覆蓋和可追溯性等。在這里應(yīng)用AI,我們發(fā)布了自動(dòng)測(cè)試用例生成,幫助開發(fā)人員填補(bǔ)空白從稀疏的JUnit線束開始。
Parasoft Jtest的IDE插件通過簡(jiǎn)單的一鍵式操作為單元測(cè)試提供了有用的自動(dòng)化,可用于創(chuàng)建,縮放和維護(hù)單元測(cè)試。通過使用支持AI的Jtest,用戶可以實(shí)現(xiàn)更高的代碼覆蓋率,同時(shí)減少構(gòu)建全面且有意義的Junit測(cè)試用例套件所需的一半時(shí)間和精力。
這樣做的一種方法是更容易創(chuàng)建存根和模擬以隔離被測(cè)代碼。底層AI使Jtest能夠觀察被測(cè)單元以確定其對(duì)其他類的依賴性,并且當(dāng)創(chuàng)建這些依賴項(xiàng)的實(shí)例時(shí),它建議向用戶模擬它們以創(chuàng)建更多獨(dú)立的測(cè)試。自動(dòng)創(chuàng)建必要的模擬和存根可以減少測(cè)試創(chuàng)建中最耗時(shí)的部分之一的工作量。
Parasoft Jtest還會(huì)自動(dòng)檢測(cè)現(xiàn)有測(cè)試套件未涵蓋的代碼,并遍歷源代碼的控制路徑,以確定需要將哪些參數(shù)傳遞到測(cè)試方法中,以及如何初始化sub / mocks以達(dá)到那段代碼。通過啟用此AI,Jtest可以自動(dòng)生成新的單元測(cè)試,應(yīng)用修改的參數(shù)以增加整個(gè)項(xiàng)目的整體代碼覆蓋率。
將機(jī)器學(xué)習(xí)添加到組合中的另一個(gè)好例子是Parasoft SOAtest的Smart API Test Generator(智能API測(cè)試生成器),它超越了記錄和回放測(cè)試,利用AI和機(jī)器學(xué)習(xí)將手動(dòng)UI測(cè)試轉(zhuǎn)換為完整的自動(dòng)化API測(cè)試場(chǎng)景。
Smart API測(cè)試生成器使用推理來(lái)理解在執(zhí)行UI時(shí)進(jìn)行的不同API調(diào)用中的模式和關(guān)系。根據(jù)該分析,構(gòu)造了一系列API調(diào)用,表示在UI流程中進(jìn)行的底層接口調(diào)用。然后,它通過觀察不同API資源的內(nèi)容并將其作為模板存儲(chǔ)在 專有數(shù)據(jù)結(jié)構(gòu)中來(lái)應(yīng)用機(jī)器學(xué)習(xí)。 通過檢查用戶庫(kù)中的其他測(cè)試用例來(lái)更新此內(nèi)部結(jié)構(gòu),以便在執(zhí)行API時(shí)學(xué)習(xí)不同類型的行為,例如,斷言或在正確的位置添加特定標(biāo)頭。
這里AI的目標(biāo)是創(chuàng)建更高級(jí)的測(cè)試(不僅僅是重復(fù)用戶正在做的事情,就像你進(jìn)行簡(jiǎn)單的記錄和回放測(cè)試一樣)。該工具可識(shí)別流量中的模式,創(chuàng)建觀察參數(shù)的綜合數(shù)據(jù)模型,生成自動(dòng)API測(cè)試,并將學(xué)習(xí)模式應(yīng)用于其他API測(cè)試以增強(qiáng)它們并幫助用戶創(chuàng)建更高級(jí)的自動(dòng)化測(cè)試方案。由此產(chǎn)生的自動(dòng)化API測(cè)試更加完整,可重復(fù)使用,可擴(kuò)展且適應(yīng)變化。
未來(lái)會(huì)發(fā)生什么呢?我們正在這個(gè)領(lǐng)域積極研發(fā),繼續(xù)追求人工智能和機(jī)器學(xué)習(xí)的進(jìn)一步應(yīng)用,以增強(qiáng)我們的軟件測(cè)試工具套件。有許多研究途徑,但最終目標(biāo)很明確:幫助團(tuán)隊(duì)更有效地開發(fā)和測(cè)試他們的代碼,以便快速創(chuàng)建更高質(zhì)量的軟件。
想要了解Parasoft、Parasoft SOAtest、Parasoft Jtest更多信息或資源的朋友,請(qǐng)
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: