通過人工智能和機(jī)器學(xué)習(xí)實(shí)現(xiàn)完全自動化的5種方法

在人工智能和機(jī)器學(xué)習(xí)領(lǐng)域,測試自動化已經(jīng)取得了長足的進(jìn)步。通過引入智能測試自動化工具,可以解決傳統(tǒng)測試自動化的難點(diǎn),從而獲得最佳結(jié)果。下面分享 5 種通過人工智能和機(jī)器學(xué)習(xí)實(shí)現(xiàn)完全自動化的方法,這些方法能夠幫助項(xiàng)目團(tuán)隊(duì)減少測試工作量,提高測試覆蓋率。

測試自動化中的自修復(fù)技術(shù)解決了測試腳本維護(hù)的主要問題,即自動測試腳本在對象屬性(包括名稱、ID、CSS 等)的每個變更階段都會中斷。測試自動化中的自修復(fù)技術(shù)在實(shí)現(xiàn)過程中使用了動態(tài)定位策略,程序可以自動檢測到這些變更,并動態(tài)地修正它們,無需人工干預(yù)。團(tuán)隊(duì)可以利用敏捷測試方法中的左移方法,使得過程更加高效,提高工作效率,加速交付。
舉個例子,當(dāng)開發(fā)者對 HTML 頁面中的對象標(biāo)識符進(jìn)行任何更改時,測試用例中的 UI 標(biāo)識符將自動更改。雖然屬性改變了,但人工智能引擎仍然定位這些元素,并根據(jù)在源代碼中的更改來修改它們。這一自修復(fù)技術(shù)使開發(fā)者不必花費(fèi)大量時間來識別變更,同時更新 UI。

自動化測試腳本的開發(fā)是一項(xiàng)復(fù)雜的工作,需要用到 Java、Python、Ruby 等高技能的編程語言。同時還需要做大量的初始工作,并投入一定的時間和資源。使用自動化腳本進(jìn)行開發(fā)可將測試腳本的生成時間減少 50%。另外,在測試腳本設(shè)計過程中加入人工智能和機(jī)器學(xué)習(xí)技術(shù),也能大大簡化其設(shè)計流程。
目前市面上有各種各樣的測試工具,比如通過手動測試用例構(gòu)建的 selenium 自動化測試腳本,它可以讀取測試腳本,并自動生成自動化腳本。該人工智能算法使用自然語言處理,能夠理解用戶的意圖,并在 Web 應(yīng)用中模擬這些行為。它的優(yōu)點(diǎn)是可以減少 80% 的測試腳本設(shè)計和經(jīng)歷。
很多使用敏捷和 DevOps 方法執(zhí)行持續(xù)測試的組織都選擇了一種嚴(yán)格的測試方法,并在整個軟件開發(fā)生命周期中每天進(jìn)行數(shù)次使用,其中包括單元、API、功能、可訪問性、集成和其他類型的測試。在執(zhí)行這些測試用例時,系統(tǒng)將創(chuàng)建大量的測試數(shù)據(jù)。庫存的數(shù)據(jù)越多,管理人員就越難做出更準(zhǔn)確的決定。
通過可視化最不穩(wěn)定的測試用例和其他需要重點(diǎn)關(guān)注的部分,機(jī)器學(xué)習(xí)可以幫助開發(fā)者更容易地識別關(guān)鍵的問題區(qū)域。此外,通過人工智能和機(jī)器學(xué)習(xí)系統(tǒng)的參與,還可以輕松地對測試數(shù)據(jù)進(jìn)行切片、分塊和分析,并能夠讀取模式、量化業(yè)務(wù)風(fēng)險和加快手頭項(xiàng)目的總體決策過程。
具體來說,在人工智能和機(jī)器學(xué)習(xí)的幫助下,分析人員可以獲得以下更好的特性:
測試影響分析
安全漏洞
平臺特有缺陷
測試環(huán)境不穩(wěn)定
測試失敗的重復(fù)模式
應(yīng)用元素定位器的脆性
當(dāng)前,在基于圖像的測試領(lǐng)域中,自動視覺驗(yàn)證工具得到了越來越多的應(yīng)用。
軟件開發(fā)中的視覺測試(也叫 UI 測試)可以確保開發(fā)者構(gòu)建的 Web 或移動應(yīng)用的 UI 呈現(xiàn)給最終用戶,這些工具旨在通過更新 UI 來幫助開發(fā)者實(shí)現(xiàn)應(yīng)用的功能。不過當(dāng)前,大多數(shù)正在進(jìn)行的測試通常難以實(shí)現(xiàn)自動化,而是采用人工測試的方式。
人工測試很容易導(dǎo)致一些元素被忽略,要想準(zhǔn)確識別這些元素,測試人員可以利用基于機(jī)器學(xué)習(xí)的視覺驗(yàn)證工具。這是一種基于圖像的測試注入,它動態(tài)地改變了公司在任何系統(tǒng)中提供自動測試服務(wù)的方式。測試分析人員可以創(chuàng)建自動檢測軟件中所有視覺錯誤的機(jī)器學(xué)習(xí)測試,這樣做有助于驗(yàn)證應(yīng)用的視覺正確性,而無需測試專家將輸入隱性地插入到系統(tǒng)中。
當(dāng)前,開發(fā)者使用的基于人工智能的最新自動化技術(shù)是使用 spidering 方法為應(yīng)用自動編寫測試。
開發(fā)者需要為自己的 Web 應(yīng)用提供一些新的人工智能 / 機(jī)器學(xué)習(xí)工具,以便啟動抓取。在抓取的過程中,該工具通過截圖收集數(shù)據(jù),為每個頁面下載 HTML 代碼,測量復(fù)雜,并不斷重復(fù)運(yùn)行這些步驟。最后,這一工具會創(chuàng)建一個數(shù)據(jù)集,并訓(xùn)練機(jī)器學(xué)習(xí)模型,從而理解應(yīng)用程序的預(yù)期模式和行為。
此外,該工具還將其當(dāng)前階段與之前觀察到的所有模式進(jìn)行比較。如果有偏差,工具將把這部分標(biāo)記為測試期間可能出現(xiàn)的 Bug。下一步,開發(fā)者需要確認(rèn)被標(biāo)記的問題是否確實(shí)是 Bug。也就是說,機(jī)器學(xué)習(xí)工具負(fù)責(zé) Bug 的檢測過程,但是開發(fā)者在接受調(diào)用之前必須進(jìn)行最后的確認(rèn)。
要想在測試中充分利用人工智能和機(jī)器學(xué)習(xí)技術(shù),需要開發(fā)者具備一定的機(jī)器學(xué)習(xí)測試算法基礎(chǔ),并且要有戰(zhàn)略上的測試方法。同時,還需要擁有一支測試團(tuán)隊(duì),團(tuán)隊(duì)需要知道如何將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)分解成能夠幫助開發(fā)者加強(qiáng)決策過程,并提高總體項(xiàng)目效率和收益的簡化表示。
作者介紹:
Mohit Shah,供職于 ImpactQA,高級技術(shù)內(nèi)容營銷人員。
原文鏈接:
https://dzone.com/articles/5-great-ways-to-achieve-complete-automation-with-a
End 
聲明:部分內(nèi)容來源于網(wǎng)絡(luò),僅供讀者學(xué)術(shù)交流之目的。文章版權(quán)歸原作者所有。如有不妥,請聯(lián)系刪除。
