首頁>科技>

【譯者注:這是國外一篇介紹軟體測試中應用AI技術的文章,下一代的軟體測試工具一定是AI技術賦能的,全方位的簡化測試過程和提高測試效率。】

根據2019-2020年世界質量報告,基於人工智慧的測試正在興起,為了讓測試變得更“聰明”、更高效,企業在軟體測試中採用基於AI的工具和過程。通常情況下,軟體測試中應用AI會使整個測試過程更快、更清晰、更容易,以及更省錢。

測試自動化用於支援 “持續測試” 過程已經很多年了,但目前需要更有效的工具和技術,比如在軟體應用和測試中嵌入AI,這是交付高質量和確保卓越使用者體驗的需要。

1. 什麼是基於AI 的測試?

基於AI的測試是一種利用人工智慧和機器學習(ML)演算法來有效測試軟體產品的測試技術,其目標是使測試過程更加智慧和高效。在測試中採用人工智慧和機器學習進行邏輯推理和解決問題,可以改善整個測試過程。此外,在這種測試方法中,AI測試工具使用資料和演算法來設計和執行測試,而不需要任何人工干預。

2. AI在軟體測試中的演進

在過去20年裡,軟體測試有了很大的進步,從手工測試到自動化測試,Selenium被認為是最好的測試自動化工具之一,測試的發展歷程令人鼓舞。然而,在當今快節奏的IT世界中,軟體測試領域也必須在方法方面進行創新提出經過充分研究並行之有效的、新的測試方法和技術

AI演算法可以完全模擬人類智慧,機器學習允許計算機在沒有任何人工干預的情況下自主學習。人工智慧和機器學習都涉及到特定的演算法,這些演算法可以訪問資料,透過提取模型從資料中學習,從而做出決策,並用於軟體測試。

不少公司爭相開發能夠利用AI和ML演算法有效測試軟體產品的工具。我們還看到,企業從基於AI的測試中受益良多,因為它將支援更快和持續的測試,完全自動化,無需任何人工干預,還可以改善產品的ROI(投資回報率)。

3. 軟體測試中採用AI的好處

視覺驗證

AI具有模式識別和影象識別能力,可以對應用程式的介面進行視覺測試、檢測視覺方面的缺陷。這有助於確保所有的視覺元素都是引人入勝的,並能正常發揮作用。不管控制元件的大小、形狀如何,利用AI都可以識別動態UI控制元件,並在畫素水平上對它們進行分析。

更準確的測試結果

手工測試中出現人為錯誤的機率很高,特別是在執行重複性任務的情況下。自動化測試有助於消除這些人為錯誤。但是,隨著AI在自動化測試中的出現,可以更有效的處理重複的任務,更準確地記錄測試結果。因此,AI有助於消除微小的錯誤機會,並提高測試的整體準確性。

更高的測試覆蓋率

測試中的AI有助於提高測試覆蓋率,因為它可以無縫地檢查檔案內容、資料表、記憶體和內部程式狀態。它還有助於確定程式是否按預期工作並保證有效的測試覆蓋率。

節省時間、金錢和精力

每當原始碼發生變更時,都需要重複執行測試。如果採用手工測試,會非常耗時,並且需要測試人員付出大量精力。在AI驅動的測試中,重複的測試任務可以被正確、快速和有效地執行。

更快的產品上市時間

AI驅動的測試支援持續測試,因此產品釋出速度更快,可以更早進入市場。

更少的產品缺陷

軟體測試中的AI有助於在研發早期快速發現缺陷,從而減少缺陷,提高產品的可靠性。

4. AI測試中的四項關鍵技術

差異測試:對軟體版本之間的差異進行分類並比較。

視覺測試:視覺測試是一種軟體測試技術,透過基於影象的學習和介面比較來測試UI和進行使用者體驗測試。

宣告性測試:它的目的是用一種自然的或特定領域的語言來定義測試的意圖,由測試系統來決定如何進行測試。

自我修復:當軟體的UI更改時,會在測試執行過程中自動更正頁面元素的選擇。

5. AI測試工具分類

差分測試工具(Differential Tools)

利用AI和ML演算法來識別程式碼相關問題、安全漏洞、迴歸等,是透過程式碼掃描、單元測試自動化等實現的。這一類工具包括:

Launchable:基於ML演算法,根據歷史測試結果和軟體原始碼的變更預測每個測試用例失敗的可能性。該工具允許使用者記錄測試套件,先執行可能會失敗的測試。人們可以用這個工具動態選擇有失敗可能性的測試用例集合,從而讓測試在幾分鐘內快速完成。

谷歌OSS-Fuzz:是一個模糊測試工具,旨在使通用開源軟體更加安全、穩定和可靠。這個工具結合了現代模糊技術和可伸縮的分散式執行,支援C/ c++、Rust、Go和Python程式碼

視覺測試工具(Visual Tools)

隨著各種螢幕大小和配置的平臺數量的不斷增加,如何有效地進行UI測試已經成為測試工程師和開發人員的一項乏味的任務。此外,為了提供更好的使用者體驗,產品的UI層會不斷變更,迫切需要視覺AI測試工具有效地測試UI的所有變體。這一類的工具包括:

Applitools:是一個AI驅動的視覺測試和監控平臺,被定義為一個由視覺AI賦能的下一代自動化測試平臺,主要功能包括Applitools

Eyes,有助於提高測試覆蓋率和減少測試維護成本。超快網格有助於跨瀏覽器和跨裝置的測試,並將功能和視覺測試速度提高了30倍。這個Applitools平臺可以整合目前所有的現代測試框架,並與許多現有的測試工具(如Selenium、Appium、Cypress等)協同工作。

Percy:BrowserStack公司的Percy是一個一體化的視覺審查平臺,具有驚人的功能,如畫素-畫素之間的差異檢查,響應時間的差異檢查,快照(snapshot)穩定性檢查。該工具允許跨瀏覽器渲染、高速渲染,並具有並行測試的功能。Percy幫助團隊進行自動化視覺測試。它可以捕獲螢幕截圖,並將其與基準截圖進行比較,顯示視覺方面的差異。它增加了視覺測試的覆蓋率,增強團隊釋出程式碼變更的信心。

宣告式測試工具(Declarative Tools)

這類工具旨在提高測試自動化的效率和穩定性,利用AI和ML,並具備基於機器人過程自動化(RPA)、自然語言處理(NLP)、基於模型的測試自動化(MBTA)和自主測試方法(Autonomous

Testing

Methods,AT)等方法的各項功能。這些方法的主要目的是透過智慧的自動化來消除繁瑣、容易出錯、重複的任務。這一類的工具包括:

Tricentis: AI驅動的下一代自動化測試工具,允許敏捷和DevOps團隊快速實現測試自動化目標和基於AI的持續測試。這個工具對軟體應用進行端到端的自動化測試,支援測試用例設計、測試自動化、測試資料設計和建立,以及測試分析等多個方面,從業務角度進行UI和API測試。

UiPath Test Suite:用於測試自動化和測試過程的整合,幫助啟動彈性機器人(resilient

robots),並確保測試自動化的質量。UiPath Test Suite由UiPath Studio Pro、UiPath Test

Managers,和UiPath Orchestrator三部分組成。UiPath Studio Pro透過拖放介面開發自動化指令碼;UiPath

Test Manager用來管理測試任務;UiPath Orchestrator用來執行測試任務。UiPath Test

Suite全方位的提供測試支援,並幫助RPA開發人員開發更多的測試自動化,更好的執行測試任務,而且無需修復測試指令碼。

自我修復測試工具(Self-healing Tools)

在自動化測試中,測試的穩定性、可靠性和指令碼維護的問題一直存在,這也是在測試自動化中引入AI和ML的主要原因之一。為了解決這些問題,有些公司已經開發出基於錄製-回放機制的自我修復工具,ML引擎用於被錄製指令碼的自我修復。這一類的工具包括:

Mabl:是為CI/CD(持續整合/持續交付)構建的領先的智慧測試自動化平臺。Mabl抓取應用程式螢幕,並開始執行大多數應用程式常見的預設測試。它還使用ML演算法來改進測試執行和缺陷檢測。

Testim:使用AI和ML演算法來實現測試的自動化。AI被用來加快測試指令碼編寫、執行和維護的速度。Testim基於ML實現自動化測試指令碼的自主維護,能夠快速編寫穩定性高的測試指令碼。

5. 結論

隨著技術的進步,越來越多的企業開始採用敏捷和DevOps實踐。但是,隨著這些方法的採用,對支援持續測試和持續釋出的健壯工具的需求也在增加。於是,基於AI的測試自動化工具應運而生。AI驅動的測試自動化工具不僅支援DevOps實踐,還帶來了和人類相似的決策能力,最終有助於在更短的時間內釋出高質量的軟體。

2
最新評論
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 英偉達顛覆CPU!黃仁勳殺入英特爾地盤,Arm架構CPU效能高10倍