【譯者注:這是國外一篇介紹軟件測試中應(yīng)用AI技術(shù)的文章匿刮,下一代的軟件測試工具一定是AI技術(shù)賦能的典蜕,全方位的簡化測試過程和提高測試效率笤喳〖湫#】
根據(jù)2019-2020年世界質(zhì)量報(bào)告勺疼,基于人工智能的測試正在興起教寂,為了讓測試變得更“聰明”、更高效执庐,企業(yè)在軟件測試中采用基于AI的工具和過程酪耕。通常情況下,軟件測試中應(yīng)用AI會(huì)使整個(gè)測試過程更快耕肩、更清晰因妇、更容易,以及更省錢猿诸。
測試自動(dòng)化用于支持 “持續(xù)測試” 過程已經(jīng)很多年了婚被,但目前需要更有效的工具和技術(shù),比如在軟件應(yīng)用和測試中嵌入AI梳虽,這是交付高質(zhì)量和確保卓越用戶體驗(yàn)的需要址芯。
1. 什么是基于AI 的測試?
基于AI的測試是一種利用人工智能和機(jī)器學(xué)習(xí)(ML)算法來有效測試軟件產(chǎn)品的測試技術(shù)窜觉,其目標(biāo)是使測試過程更加智能和高效谷炸。在測試中采用人工智能和機(jī)器學(xué)習(xí)進(jìn)行邏輯推理和解決問題,可以改善整個(gè)測試過程禀挫。此外旬陡,在這種測試方法中,AI測試工具使用數(shù)據(jù)和算法來設(shè)計(jì)和執(zhí)行測試语婴,而不需要任何人工干預(yù)描孟。
2. AI在軟件測試中的演進(jìn)
在過去20年里,軟件測試有了很大的進(jìn)步砰左,從手工測試到自動(dòng)化測試匿醒,Selenium被認(rèn)為是最好的測試自動(dòng)化工具之一,測試的發(fā)展歷程令人鼓舞缠导。然而廉羔,在當(dāng)今快節(jié)奏的IT世界中,軟件測試領(lǐng)域也必須在方法方面進(jìn)行創(chuàng)新僻造,提出經(jīng)過充分研究并行之有效的憋他、新的測試方法和技術(shù)孩饼。
AI算法可以完全模擬人類智能,機(jī)器學(xué)習(xí)允許計(jì)算機(jī)在沒有任何人工干預(yù)的情況下自主學(xué)習(xí)竹挡。人工智能和機(jī)器學(xué)習(xí)都涉及到特定的算法捣辆,這些算法可以訪問數(shù)據(jù),通過提取模型從數(shù)據(jù)中學(xué)習(xí)此迅,從而做出決策,并用于軟件測試旧巾。
不少公司爭相開發(fā)能夠利用AI和ML算法有效測試軟件產(chǎn)品的工具耸序。我們還看到,企業(yè)從基于AI的測試中受益良多鲁猩,因?yàn)樗鼘⒅С指旌统掷m(xù)的測試坎怪,完全自動(dòng)化,無需任何人工干預(yù)廓握,還可以改善產(chǎn)品的ROI(投資回報(bào)率)搅窿。
3. 軟件測試中采用AI的好處
視覺驗(yàn)證
AI具有模式識(shí)別和圖像識(shí)別能力,可以對(duì)應(yīng)用程序的界面進(jìn)行視覺測試隙券、檢測視覺方面的缺陷男应。這有助于確保所有的視覺元素都是引人入勝的,并能正常發(fā)揮作用娱仔。不管控件的大小沐飘、形狀如何,利用AI都可以識(shí)別動(dòng)態(tài)UI控件牲迫,并在像素水平上對(duì)它們進(jìn)行分析耐朴。
更準(zhǔn)確的測試結(jié)果
手工測試中出現(xiàn)人為錯(cuò)誤的幾率很高,特別是在執(zhí)行重復(fù)性任務(wù)的情況下盹憎。自動(dòng)化測試有助于消除這些人為錯(cuò)誤筛峭。但是,隨著AI在自動(dòng)化測試中的出現(xiàn)陪每,可以更有效的處理重復(fù)的任務(wù)影晓,更準(zhǔn)確地記錄測試結(jié)果。因此奶稠,AI有助于消除微小的錯(cuò)誤機(jī)會(huì)俯艰,并提高測試的整體準(zhǔn)確性。
更高的測試覆蓋率
測試中的AI有助于提高測試覆蓋率锌订,因?yàn)樗梢詿o縫地檢查文件內(nèi)容竹握、數(shù)據(jù)表、內(nèi)存和內(nèi)部程序狀態(tài)辆飘。它還有助于確定程序是否按預(yù)期工作并保證有效的測試覆蓋率啦辐。
節(jié)省時(shí)間谓传、金錢和精力
每當(dāng)源代碼發(fā)生變更時(shí),都需要重復(fù)執(zhí)行測試芹关。如果采用手工測試续挟,會(huì)非常耗時(shí),并且需要測試人員付出大量精力侥衬。在AI驅(qū)動(dòng)的測試中诗祸,重復(fù)的測試任務(wù)可以被正確、快速和有效地執(zhí)行轴总。
更快的產(chǎn)品上市時(shí)間
AI驅(qū)動(dòng)的測試支持持續(xù)測試直颅,因此產(chǎn)品發(fā)布速度更快,可以更早進(jìn)入市場怀樟。
更少的產(chǎn)品缺陷
軟件測試中的AI有助于在研發(fā)早期快速發(fā)現(xiàn)缺陷功偿,從而減少缺陷,提高產(chǎn)品的可靠性往堡。
4. AI測試中的四項(xiàng)關(guān)鍵技術(shù)
差異測試:對(duì)軟件版本之間的差異進(jìn)行分類并比較械荷。
視覺測試:視覺測試是一種軟件測試技術(shù),通過基于圖像的學(xué)習(xí)和界面比較來測試UI和進(jìn)行用戶體驗(yàn)測試虑灰。
聲明性測試:它的目的是用一種自然的或特定領(lǐng)域的語言來定義測試的意圖吨瞎,由測試系統(tǒng)來決定如何進(jìn)行測試。
自我修復(fù):當(dāng)軟件的UI更改時(shí)瘩缆,會(huì)在測試執(zhí)行過程中自動(dòng)更正頁面元素的選擇关拒。
5. AI測試工具分類
差分測試工具(Differential Tools)
利用AI和ML算法來識(shí)別代碼相關(guān)問題、安全漏洞庸娱、回歸等着绊,是通過代碼掃描、單元測試自動(dòng)化等實(shí)現(xiàn)的熟尉。這一類工具包括:
Launchable:基于ML算法归露,根據(jù)歷史測試結(jié)果和軟件源代碼的變更預(yù)測每個(gè)測試用例失敗的可能性。該工具允許用戶記錄測試套件斤儿,先運(yùn)行可能會(huì)失敗的測試剧包。人們可以用這個(gè)工具動(dòng)態(tài)選擇有失敗可能性的測試用例集合,從而讓測試在幾分鐘內(nèi)快速完成往果。
谷歌OSS-Fuzz:是一個(gè)模糊測試工具疆液,旨在使通用開源軟件更加安全、穩(wěn)定和可靠陕贮。這個(gè)工具結(jié)合了現(xiàn)代模糊技術(shù)和可伸縮的分布式執(zhí)行堕油,支持C/ c++、Rust、Go和Python代碼
視覺測試工具(Visual?Tools)
隨著各種屏幕大小和配置的平臺(tái)數(shù)量的不斷增加掉缺,如何有效地進(jìn)行UI測試已經(jīng)成為測試工程師和開發(fā)人員的一項(xiàng)乏味的任務(wù)卜录。此外,為了提供更好的用戶體驗(yàn)眶明,產(chǎn)品的UI層會(huì)不斷變更艰毒,迫切需要視覺AI測試工具有效地測試UI的所有變體。這一類的工具包括:
Applitools:是一個(gè)AI驅(qū)動(dòng)的視覺測試和監(jiān)控平臺(tái)搜囱,被定義為一個(gè)由視覺AI賦能的下一代自動(dòng)化測試平臺(tái)丑瞧,主要功能包括Applitools
Eyes,有助于提高測試覆蓋率和減少測試維護(hù)成本蜀肘。超快網(wǎng)格有助于跨瀏覽器和跨設(shè)備的測試嗦篱,并將功能和視覺測試速度提高了30倍。這個(gè)Applitools平臺(tái)可以集成目前所有的現(xiàn)代測試框架幌缝,并與許多現(xiàn)有的測試工具(如Selenium、Appium诫欠、Cypress等)協(xié)同工作涵卵。
Percy:BrowserStack公司的Percy是一個(gè)一體化的視覺審查平臺(tái),具有驚人的功能荒叼,如像素-像素之間的差異檢查轿偎,響應(yīng)時(shí)間的差異檢查,快照(snapshot)穩(wěn)定性檢查被廓。該工具允許跨瀏覽器渲染坏晦、高速渲染,并具有并行測試的功能嫁乘。Percy幫助團(tuán)隊(duì)進(jìn)行自動(dòng)化視覺測試昆婿。它可以捕獲屏幕截圖,并將其與基準(zhǔn)截圖進(jìn)行比較蜓斧,顯示視覺方面的差異仓蛆。它增加了視覺測試的覆蓋率,增強(qiáng)團(tuán)隊(duì)發(fā)布代碼變更的信心挎春。
聲明式測試工具(Declarative?Tools)
這類工具旨在提高測試自動(dòng)化的效率和穩(wěn)定性看疙,利用AI和ML,并具備基于機(jī)器人過程自動(dòng)化(RPA)直奋、自然語言處理(NLP)能庆、基于模型的測試自動(dòng)化(MBTA)和自主測試方法(Autonomous
Testing
Methods,AT)等方法的各項(xiàng)功能脚线。這些方法的主要目的是通過智能的自動(dòng)化來消除繁瑣搁胆、容易出錯(cuò)、重復(fù)的任務(wù)。這一類的工具包括:
Tricentis: AI驅(qū)動(dòng)的下一代自動(dòng)化測試工具丰涉,允許敏捷和DevOps團(tuán)隊(duì)快速實(shí)現(xiàn)測試自動(dòng)化目標(biāo)和基于AI的持續(xù)測試拓巧。這個(gè)工具對(duì)軟件應(yīng)用進(jìn)行端到端的自動(dòng)化測試,支持測試用例設(shè)計(jì)一死、測試自動(dòng)化肛度、測試數(shù)據(jù)設(shè)計(jì)和創(chuàng)建,以及測試分析等多個(gè)方面投慈,從業(yè)務(wù)角度進(jìn)行UI和API測試承耿。
UiPath Test Suite:用于測試自動(dòng)化和測試過程的集成,幫助啟動(dòng)彈性機(jī)器人(resilient
robots)伪煤,并確保測試自動(dòng)化的質(zhì)量加袋。UiPath Test Suite由UiPath Studio Pro、UiPath Test
Managers抱既,和UiPath Orchestrator三部分組成职烧。UiPath Studio Pro通過拖放界面開發(fā)自動(dòng)化腳本;UiPath
Test Manager用來管理測試任務(wù)防泵;UiPath Orchestrator用來執(zhí)行測試任務(wù)蚀之。UiPath Test
Suite全方位的提供測試支持,并幫助RPA開發(fā)人員開發(fā)更多的測試自動(dòng)化捷泞,更好的執(zhí)行測試任務(wù)足删,而且無需修復(fù)測試腳本。
自我修復(fù)測試工具(Self-healing?Tools)
在自動(dòng)化測試中锁右,測試的穩(wěn)定性失受、可靠性和腳本維護(hù)的問題一直存在,這也是在測試自動(dòng)化中引入AI和ML的主要原因之一咏瑟。為了解決這些問題拂到,有些公司已經(jīng)開發(fā)出基于錄制-回放機(jī)制的自我修復(fù)工具,ML引擎用于被錄制腳本的自我修復(fù)码泞。這一類的工具包括:
Mabl:是為CI/CD(持續(xù)集成/持續(xù)交付)構(gòu)建的領(lǐng)先的智能測試自動(dòng)化平臺(tái)谆焊。Mabl抓取應(yīng)用程序屏幕,并開始運(yùn)行大多數(shù)應(yīng)用程序常見的默認(rèn)測試浦夷。它還使用ML算法來改進(jìn)測試執(zhí)行和缺陷檢測辖试。
Testim:使用AI和ML算法來實(shí)現(xiàn)測試的自動(dòng)化。AI被用來加快測試腳本編寫劈狐、執(zhí)行和維護(hù)的速度罐孝。Testim基于ML實(shí)現(xiàn)自動(dòng)化測試腳本的自主維護(hù),能夠快速編寫穩(wěn)定性高的測試腳本肥缔。
5. 結(jié)論
隨著技術(shù)的進(jìn)步莲兢,越來越多的企業(yè)開始采用敏捷和DevOps實(shí)踐。但是,隨著這些方法的采用改艇,對(duì)支持持續(xù)測試和持續(xù)發(fā)布的健壯工具的需求也在增加收班。于是,基于AI的測試自動(dòng)化工具應(yīng)運(yùn)而生谒兄。AI驅(qū)動(dòng)的測試自動(dòng)化工具不僅支持DevOps實(shí)踐摔桦,還帶來了和人類相似的決策能力,最終有助于在更短的時(shí)間內(nèi)發(fā)布高質(zhì)量的軟件承疲。
本文轉(zhuǎn)發(fā)自軟件測試中的AI技術(shù)