翻譯|行業(yè)資訊|編輯:胡濤|2023-12-29 10:28:05.530|閱讀 74 次
概述:關(guān)于人工智能以及它如何改變我們做事的方式,人們已經(jīng)說(shuō)了很多。當(dāng)談到軟件測(cè)試時(shí),人工智能的地位是什么?這篇文章重點(diǎn)介紹了人工智能如何幫助實(shí)現(xiàn)強(qiáng)大的軟件測(cè)試。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
關(guān)于人工智能以及它如何改變我們做事的方式,人們已經(jīng)說(shuō)了很多。當(dāng)談到軟件測(cè)試時(shí),人工智能的地位是什么?這篇文章重點(diǎn)介紹了人工智能如何幫助實(shí)現(xiàn)強(qiáng)大的軟件測(cè)試。
人工智能 (AI) 的出現(xiàn)繼續(xù)改變著技術(shù)格局。它在軟件開(kāi)發(fā)的多個(gè)方面的應(yīng)用不斷增長(zhǎng)。軟件測(cè)試是人工智能應(yīng)用可以推進(jìn)的軟件開(kāi)發(fā)領(lǐng)域之一。
軟件測(cè)試對(duì)于確保發(fā)布的軟件產(chǎn)品既滿足合規(guī)標(biāo)準(zhǔn)又滿足用戶的質(zhì)量要求至關(guān)重要。然而,由于人工智能的使用存在許多變化,我們將深入探討人工智能在軟件測(cè)試中的含義。
讓我們來(lái)看看吧。
人工智能是數(shù)字市場(chǎng)上最流行的流行語(yǔ)之一。“人工智能”讓人聯(lián)想到諸如全能超級(jí)計(jì)算機(jī)一心要?dú)缛祟悺lexa 或 Siri 等語(yǔ)音控制輔助、計(jì)算機(jī)國(guó)際象棋對(duì)手以及自動(dòng)駕駛汽車等形象。
維基百科將人工智能研究定義為“ ……對(duì)“智能代理”的研究:任何能夠感知環(huán)境并采取行動(dòng)以最大程度地成功實(shí)現(xiàn)其目標(biāo)的機(jī)會(huì)的設(shè)備。” 但這有點(diǎn)太抽象了。
我喜歡將人工智能視為計(jì)算機(jī)程序或機(jī)器思考(自身推理)和學(xué)習(xí)(收集數(shù)據(jù)并以有益的方式修改未來(lái)行為)的能力。
正是在這個(gè)定義中,我們開(kāi)始看到人工智能對(duì)軟件開(kāi)發(fā)工具和技術(shù)意味著什么更有意義的東西。
更多的軟件版本意味著更多的軟件測(cè)試
隨著全球開(kāi)發(fā)人員數(shù)量持續(xù)激增,預(yù)計(jì)會(huì)有更多軟件版本進(jìn)入軟件市場(chǎng)。證實(shí)了這一預(yù)期,預(yù)測(cè)顯示全球開(kāi)發(fā)者人數(shù)預(yù)計(jì)將從 2020 年的 2450 萬(wàn)增加到 2024 年的 2870 萬(wàn)。
這預(yù)示著我們將在未來(lái)幾年繼續(xù)看到更多軟件的發(fā)布。隨著軟件版本數(shù)量的預(yù)期增長(zhǎng),需要自動(dòng)化軟件測(cè)試。
軟件測(cè)試是對(duì)軟件基礎(chǔ)設(shè)施進(jìn)行一系列功能和非功能測(cè)試場(chǎng)景的過(guò)程。這是一個(gè)評(píng)估軟件的過(guò)程,以確保它能夠有效地完成其設(shè)計(jì)目的。當(dāng)團(tuán)隊(duì)測(cè)試軟件時(shí),他們可以發(fā)現(xiàn)并解決運(yùn)行時(shí)缺陷、可擴(kuò)展性問(wèn)題、安全漏洞等。
軟件測(cè)試過(guò)程通常很嚴(yán)格,因此需要自動(dòng)化。然而,要使軟件自動(dòng)化變得超級(jí)高效和無(wú)縫,就需要結(jié)合人工智能。
軟件測(cè)試自動(dòng)化中的人工智能
人工智能在軟件開(kāi)發(fā)中的應(yīng)用仍在不斷發(fā)展,但與自動(dòng)駕駛系統(tǒng)或語(yǔ)音輔助控制、機(jī)器翻譯和機(jī)器人等更先進(jìn)的工作領(lǐng)域相比,目前人工智能在軟件自動(dòng)化測(cè)試中的使用水平較低。
人工智能在軟件測(cè)試工具中的應(yīng)用重點(diǎn)是使軟件開(kāi)發(fā)生命周期(SDLC)變得更容易。通過(guò)推理、解決問(wèn)題以及在某些情況下機(jī)器學(xué)習(xí)的應(yīng)用,人工智能可以幫助自動(dòng)化并減少開(kāi)發(fā)和測(cè)試中平凡而乏味的任務(wù)量。
您可能想知道,“測(cè)試自動(dòng)化工具不是已經(jīng)做到了這一點(diǎn)嗎?” 當(dāng)然,測(cè)試自動(dòng)化工具已經(jīng)具有人工智能功能,但它們也有局限性。
人工智能在軟件開(kāi)發(fā)中的亮點(diǎn)在于它可以消除這些限制,使軟件測(cè)試自動(dòng)化工具能夠?yàn)殚_(kāi)發(fā)人員和測(cè)試人員提供更多價(jià)值。人工智能的價(jià)值來(lái)自于減少開(kāi)發(fā)人員或測(cè)試人員直接參與最平凡的任務(wù)。我們?cè)趹?yīng)用商業(yè)邏輯、戰(zhàn)略思維、創(chuàng)意等方面仍然非常需要人類智能。
例如,考慮到大多數(shù)(如果不是全部)測(cè)試自動(dòng)化工具都會(huì)為您運(yùn)行測(cè)試并交付結(jié)果。大多數(shù)人不知道要運(yùn)行哪些測(cè)試,因此他們運(yùn)行所有測(cè)試或某些預(yù)定的測(cè)試集。
如果支持 AI 的機(jī)器人可以查看測(cè)試狀態(tài)的當(dāng)前狀態(tài)、最近的代碼更改、代碼覆蓋率和其他指標(biāo),然后決定運(yùn)行哪些測(cè)試并為您運(yùn)行它們,會(huì)怎么樣?
基于不斷變化的數(shù)據(jù)做出決策是應(yīng)用人工智能的一個(gè)例子。好消息!Parasoft 處理此級(jí)別的自動(dòng)化軟件測(cè)試。
那么,機(jī)器學(xué)習(xí)呢?
機(jī)器學(xué)習(xí) (ML) 可以通過(guò)應(yīng)用算法來(lái)增強(qiáng)人工智能,這些算法允許工具通過(guò)收集測(cè)試產(chǎn)生的大量數(shù)據(jù)來(lái)自動(dòng)改進(jìn)。
機(jī)器學(xué)習(xí)研究是整體人工智能研究的一個(gè)子集,重點(diǎn)是基于先前觀察到的數(shù)據(jù)的決策管理。這是人工智能整體的一個(gè)重要方面,因?yàn)殡S著學(xué)習(xí)的進(jìn)步,智能需要修改決策。然而,在軟件測(cè)試工具中,機(jī)器學(xué)習(xí)并不總是必要的。有時(shí),最好手動(dòng)微調(diào)支持人工智能的工具,以適應(yīng)使用該工具的組織,然后每次都可以應(yīng)用相同的邏輯和推理,無(wú)論結(jié)果如何。
在其他情況下,數(shù)據(jù)收集是決策過(guò)程的關(guān)鍵,而機(jī)器學(xué)習(xí)可能非常有價(jià)值,它最初需要一些數(shù)據(jù),然后隨著收集到更多數(shù)據(jù)而進(jìn)行改進(jìn)或適應(yīng)。例如,代碼覆蓋率、靜態(tài)分析結(jié)果、測(cè)試結(jié)果或其他軟件指標(biāo),隨著時(shí)間的推移,可以讓人工智能了解軟件項(xiàng)目的狀態(tài)。
人工智能和機(jī)器學(xué)習(xí)是 Parasoft 持續(xù)研發(fā)的重要領(lǐng)域。我們的研究結(jié)果不斷帶來(lái)令人興奮的新方法,將這些技術(shù)集成到我們的產(chǎn)品中。以下是我們利用它們的幾種方法。
使用軟件測(cè)試 AI 提高靜態(tài)分析的采用率
成功采用靜態(tài)分析工具的障礙之一是管理大量警告并處理結(jié)果中的誤報(bào)(不是真正錯(cuò)誤的警告)。分析遺留或現(xiàn)有代碼庫(kù)的軟件團(tuán)隊(duì)很難通過(guò)靜態(tài)分析獲得初步結(jié)果,并且會(huì)因這種經(jīng)驗(yàn)而放棄進(jìn)一步的努力。不知所措的部分原因是現(xiàn)代靜態(tài)分析工具可能存在的標(biāo)準(zhǔn)、規(guī)則(檢查器)、建議和指標(biāo)的數(shù)量。
軟件開(kāi)發(fā)團(tuán)隊(duì)有獨(dú)特的質(zhì)量要求。對(duì)于檢查器或編碼標(biāo)準(zhǔn),沒(méi)有一刀切的建議。每個(gè)團(tuán)隊(duì)都有自己對(duì)誤報(bào)的定義,通常意味著“不在乎”而不是“這在技術(shù)上是不正確的”。Parasoft 的解決方案是應(yīng)用人工智能和機(jī)器學(xué)習(xí)來(lái)優(yōu)先考慮靜態(tài)分析報(bào)告的結(jié)果,以改善用戶體驗(yàn)和此類工具的采用。
Parasoft 使用一種方法來(lái)快速將靜態(tài)分析工具輸出中的結(jié)果分類為團(tuán)隊(duì)想要看到的內(nèi)容或團(tuán)隊(duì)想要抑制的內(nèi)容,方法是審查少量結(jié)果并根據(jù)與相關(guān)的元數(shù)據(jù)構(gòu)建分類器這些發(fā)現(xiàn)。
該分類器基于以前對(duì)靜態(tài)分析結(jié)果的分類結(jié)果,在歷史上抑制不相關(guān)的警告以及對(duì)有意義的結(jié)果進(jìn)行優(yōu)先優(yōu)先級(jí)排序以在代碼庫(kù)內(nèi)進(jìn)行修復(fù)。
最終結(jié)果分為兩種:
通過(guò)引導(dǎo)開(kāi)發(fā)人員注意最有可能應(yīng)用于其項(xiàng)目的警告,極大地改善了用戶體驗(yàn)。我們還實(shí)施了一個(gè)熱點(diǎn)檢測(cè)引擎以及一個(gè)基于人工智能的先進(jìn)模型,用于將違規(guī)行為分配給符合其最佳技能和經(jīng)驗(yàn)的開(kāi)發(fā)人員,并從他們過(guò)去修復(fù)的違規(guī)行為中學(xué)習(xí)。通過(guò)這些創(chuàng)新,組織可以立即減少采用和使用靜態(tài)分析的手動(dòng)工作。
使用人工智能自動(dòng)生成單元測(cè)試和參數(shù)化
第一個(gè)示例位于Parasoft Jtest中,這是我們?yōu)?Java 開(kāi)發(fā)人員提供的軟件測(cè)試解決方案,包括靜態(tài)分析、單元測(cè)試、覆蓋率和可追溯性等。在這里應(yīng)用人工智能,我們發(fā)布了自動(dòng)測(cè)試用例生成,這可以幫助開(kāi)發(fā)人員填補(bǔ)從稀疏的 JUnit 工具開(kāi)始時(shí)的空白。
Parasoft Jtest 的 IDE 插件通過(guò)簡(jiǎn)單的一鍵操作來(lái)創(chuàng)建、擴(kuò)展和維護(hù)單元測(cè)試,為單元測(cè)試實(shí)踐添加了有用的自動(dòng)化功能。通過(guò)使用支持 AI 的 Jtest,用戶可以實(shí)現(xiàn)更高的代碼覆蓋率,同時(shí)顯著減少構(gòu)建全面且有意義的 Junit 測(cè)試用例套件所需的時(shí)間和精力。
實(shí)現(xiàn)此目的的一種方法是更輕松地創(chuàng)建存根和模擬以隔離測(cè)試中的代碼。底層 AI 使 Jtest 能夠觀察被測(cè)單元以確定其對(duì)其他類的依賴關(guān)系。當(dāng)創(chuàng)建這些依賴項(xiàng)的實(shí)例時(shí),它建議用戶模擬它們以創(chuàng)建更多隔離的測(cè)試。
自動(dòng)創(chuàng)建必要的模擬和存根可以減少測(cè)試創(chuàng)建中最耗時(shí)的部分之一的工作量。
Parasoft Jtest 還會(huì)自動(dòng)檢測(cè)現(xiàn)有測(cè)試套件未覆蓋的代碼,并遍歷源代碼的控制路徑,以找出哪些參數(shù)需要傳遞到被測(cè)方法中,以及需要如何初始化 subs/mocks 才能達(dá)到該代碼。通過(guò)啟用此 AI,Jtest 可以自動(dòng)生成新的單元測(cè)試,應(yīng)用修改后的參數(shù)來(lái)增加整個(gè)項(xiàng)目的整體代碼覆蓋率。
使用 AI 和 ML 自動(dòng)化 API 測(cè)試生成和維護(hù)
另一個(gè)很好的例子是Parasoft SOAtest的智能 API 測(cè)試生成器,它添加了機(jī)器學(xué)習(xí)。它超越了記錄和回放測(cè)試,利用 AI 和機(jī)器學(xué)習(xí)將 UI 測(cè)試轉(zhuǎn)換為完整、自動(dòng)化的 API 測(cè)試場(chǎng)景。
智能 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)用。
然后,它通過(guò)觀察不同 API 資源的情況并將其作為模板存儲(chǔ)在專有數(shù)據(jù)結(jié)構(gòu)中來(lái)應(yīng)用機(jī)器學(xué)習(xí)。通過(guò)檢查用戶庫(kù)中的其他測(cè)試用例來(lái)更新此內(nèi)部結(jié)構(gòu),以了解練習(xí) API 時(shí)的不同類型的行為,例如斷言或在正確的位置添加特定標(biāo)頭。
人工智能的目標(biāo)是創(chuàng)建更高級(jí)的測(cè)試,而不僅僅是重復(fù)用戶正在做的事情,就像簡(jiǎn)單的記錄和回放測(cè)試一樣。智能 API 測(cè)試生成器的工作原理如下:
由此產(chǎn)生的自動(dòng)化 API 測(cè)試更加完整、可重用、可擴(kuò)展且能夠適應(yīng)變化。
使用機(jī)器學(xué)習(xí)來(lái)自我修復(fù) Selenium 測(cè)試的執(zhí)行
自動(dòng)驗(yàn)證 UI 層是測(cè)試策略的另一個(gè)關(guān)鍵組成部分,以確保產(chǎn)品在投入生產(chǎn)之前得到充分驗(yàn)證。Selenium 框架已廣泛用于 UI 測(cè)試,但用戶仍然面臨常見(jiàn)的 Selenium 測(cè)試可維護(hù)性和穩(wěn)定性挑戰(zhàn)。這就是人工智能技術(shù)(尤其是機(jī)器學(xué)習(xí))可以提供幫助的地方,它可以在運(yùn)行時(shí)提供自我修復(fù),以解決與 UI 測(cè)試執(zhí)行相關(guān)的常見(jiàn)可維護(hù)性問(wèn)題。
我們通過(guò) Parasoft Selenic 提供此功能,它可以在定期執(zhí)行 Selenium 測(cè)試期間“了解”您的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。Selenic 引擎監(jiān)視每次運(yùn)行并捕獲有關(guān)被測(cè)應(yīng)用程序的 Web UI 內(nèi)容的詳細(xì)信息。它提取 DOM 元素、它們的屬性、定位器等,并將它們與 UI 驅(qū)動(dòng)的測(cè)試執(zhí)行的操作關(guān)聯(lián)起來(lái)。Selenic 采用 Parasoft 專有的數(shù)據(jù)建模方法,將該信息存儲(chǔ)在其人工智能引擎內(nèi)。該模型不斷更新,分析所有測(cè)試的歷史執(zhí)行情況,以繼續(xù)變得“更智能”。
當(dāng)網(wǎng)頁(yè)的 UI 元素被顯著移動(dòng)或修改而導(dǎo)致測(cè)試失敗時(shí),這可以節(jié)省關(guān)鍵的時(shí)間。借助 Selenic,引擎使用的 AI 啟發(fā)式方法可以將這些已更改的元素與模型表示的歷史數(shù)據(jù)“匹配”,并自動(dòng)生成可抵抗更改的“智能定位器”,以在運(yùn)行時(shí)恢復(fù) Selenium 測(cè)試的執(zhí)行。有關(guān)這些變化的信息會(huì)通過(guò)模型自動(dòng)傳播,并且未來(lái)一代的新定位器會(huì)根據(jù)這些變化進(jìn)行調(diào)整。
除此之外,Selenic 還可以自我修復(fù)不同類型的“等待條件”,解決與被測(cè)系統(tǒng)性能特征相關(guān)的不穩(wěn)定性問(wèn)題。它還測(cè)量與在網(wǎng)頁(yè)上運(yùn)行每個(gè)測(cè)試用例相關(guān)的時(shí)間,并將其與先前運(yùn)行捕獲的歷史平均值進(jìn)行比較。如果偏差超過(guò)特定閾值,則會(huì)在報(bào)告內(nèi)標(biāo)記警報(bào),以通知用戶重大變化。
測(cè)試影響分析 (TIA) 評(píng)估對(duì)生產(chǎn)代碼所做的更改的影響。它有助于揭示受代碼更改影響的測(cè)試用例。TIA 的主要好處是,它無(wú)需在修改后對(duì)整個(gè)代碼庫(kù)運(yùn)行測(cè)試。這可以節(jié)省時(shí)間和成本,同時(shí)保持您的開(kāi)發(fā)流程高效運(yùn)行。
您可以在執(zhí)行手動(dòng)測(cè)試期間受益于 TIA 技術(shù),也可以利用基于 TIA 的工具與 CI/CD 管道的集成。這可以優(yōu)化自動(dòng)化測(cè)試的運(yùn)行,并向開(kāi)發(fā)人員提供有關(guān)更改對(duì)其項(xiàng)目質(zhì)量的影響的更快反饋。根據(jù)產(chǎn)品的性質(zhì)和要執(zhí)行的測(cè)試類型,您可以利用 Parasoft 的 AI 增強(qiáng)技術(shù)來(lái)優(yōu)化.NET 和 C# 靜態(tài)分析測(cè)試、Java 單元測(cè)試、Selenium Web UI 測(cè)試和API 測(cè)試的執(zhí)行。
軟件市場(chǎng)的爆炸式增長(zhǎng)表明,將繼續(xù)發(fā)布更多軟件來(lái)解決我們?nèi)粘I(yè)務(wù)中的問(wèn)題。然而,為了讓軟件高效運(yùn)行并盡快進(jìn)入市場(chǎng),軟件測(cè)試需要自動(dòng)化和人工智能。這就是 Parasoft 發(fā)揮作用的地方。
在 Parasoft,我們提供人工智能驅(qū)動(dòng)、機(jī)器學(xué)習(xí)驅(qū)動(dòng)的軟件測(cè)試解決方案,將質(zhì)量集成到軟件開(kāi)發(fā)過(guò)程中,以在 SDLC 的早期預(yù)防、檢測(cè)和修復(fù)缺陷。
了解更多有關(guān)Parasoft產(chǎn)品咨詢,歡迎咨詢
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn