AI/ML應用於軟件測試,提高測試速度和準確性

6428
結合AI來測試軟件應用程序的QA工程師正在進入一個擁有自己的工具和知識庫的新時代。(圖片來源:David Travis on Unsplash)

作者:John P. Desmond, AI趨勢編輯

在AI出現之前,軟件測試是軟件開發生命周期中至關重要的一步。在人工智能之後,它依然如此。但現在人工智能可以幫助測試。

根據最近的一份報告,人工智能和機器學習正在被應用於軟件測試,定義了一個使測試過程更快、更準確的新時代阿茲大媒體

作者概述了AI應用於軟件測試的好處如下:

提高自動化測試.質量保證工程師花時間執行測試,以確保新代碼不會破壞現有的功能代碼。隨著更多特性和功能的添加,需要測試更多代碼,這可能會讓QA工程師不知所措。手動測試變得不切實際。

自動化測試的工具可以在一段較長的時間內重複運行測試。這些工具添加了強大的人工智能功能。機器學習技術將幫助AI測試機器人隨著代碼的變化而進化,學習並適應新的功能。當他們檢測到對代碼的修改時,他們可以確定這是一個bug還是一個新特性。人工智能還可以檢測是否可以在個案基礎上測試小bug,從而進一步加快過程。

協助API測試,開發人員用來評估與服務器、數據庫和其他組件通信的不同程序之間的交互質量。測試確保成功處理請求,確保連接是穩定的,並確保用戶獲得正確的輸出。

在這個過程中添加AI有助於分析連接應用程序的功能,並創建測試用例。人工智能能夠分析大型數據集,以識別代碼中潛在的風險區域。

QA工程師將使用不同的工具和專業知識來測試AI應用程序

保羅·梅裏爾,博福特·費爾蒙校長

隨著人工智能進入測試領域,QA工程師用於執行測試的工具將發生變化。在一個賬戶裏TechBeacon,作者保羅•梅裏爾講述了一件來自Jason Arbon的軼事test.ai,該公司使用人工智能來測試移動應用程序。Arbon還曾在穀歌和微軟擔任開發人員和測試人員。他寫了這本書,穀歌如何測試軟件(2012)。

阿邦告訴他的孩子們,過去他有一輛手動車窗曲柄的車,他們笑了。很快,QA工程師就會嘲笑選擇、管理和驅動測試係統(SUT)的概念。美林表示:“人工智能會更快、更好、更便宜。”

test.aioffers bots that explore an application, interact with it, extract screens, elements and paths. It then generates an AI-based model for testing, which crawls the application under test on a schedule determined by the customer. On the site is the statement, “Go Beyond Legacy Software Test Automation Tools.”

的創始人Applitools,提供了一個由其所謂的“可視化AI”驅動的測試自動化平台,描述了一個測試基礎設施,需要從訓練決策AI的相同數據中支持預期的測試結果。”這與我們當前測試係統的工作有很大的不同,”Merrill說,他是Beaufort Fairmont公司的負責人,該公司是北卡羅來納州卡裏市的軟件測試顧問公司

Applitools開發者關係高級總監Angie Jones說道

他在2017年的一篇文章中描述了前Twitter測試高級軟件工程師安吉·瓊斯的經曆,機器學習的自動化測試:經驗報告瓊斯描述了她如何係統地將係統的學習算法與係統本身隔離開來,隔離當前的數據,以便揭示係統如何學習以及它根據她提供給它的數據得出什麼結論。Jones現在是Applitools的開發者關係高級總監。

美林提出了這些問題:“這樣的流程會成為最佳實踐嗎?”它們是否會被納入我們用於測試係統的方法中?”

關於AI在測試中的應用,Applitools的聯合創始人Moshe Milman和Adam Carmi表示:“首先,我們將看到一種趨勢,人類在執行、執行和分析測試結果方麵的機械髒活將越來越少,但他們仍將是測試過程中不可或缺的、必要的一部分,以批準和執行結果。這在今天的基於人工智能的測試產品中已經可以看到,比如Applitools Eyes。”

關於這一點,Merrill表示:“當AI可以減少測試人員的工作量,並幫助他們確定測試地點時,我們就必須考慮好朋友的狀態。”

Milman和Carmi描述了AI測試人員所需的技能Applitools博客,“測試工程師需要一套不同的技能,以構建和維護基於人工智能的測試套件,測試基於人工智能的產品。職位要求將包括更多地關注數據科學技能,測試工程師將被要求理解一些深度學習原則。”

軟件測試中人工智能的四種方法概述

一個名為《人工智能驅動的測試方法》的帳戶描述了四種人工智能驅動的測試方法軟件測試中的AI: 2021年,在現場TestingXperts這是一家軟件測試公司,總部位於賓夕法尼亞州Mechanicsburg。

這四種方法是:差異測試、可視化測試、聲明性測試和自修複自動化。

微分測試, QA工程師對不同的版本進行分類和比較。

支持此功能的示例產品包括Launchable,它基於一種ML算法,該算法根據過去的運行情況以及測試中源代碼發生更改時預測每個測試失敗的可能性。此工具允許用戶記錄測試套件,以便首先運行可能失敗的測試。可以選擇此工具來運行可能失敗的動態測試子集,從而將長時間運行的測試套件縮短到幾分鍾。

視覺測試,工程師通過利用基於圖像的學習和屏幕比較來測試應用程序的外觀和感覺。實例產品包括來自Applitools的平台,其可視化AI功能,包括Applitools Eyes增加測試覆蓋率並減少維護。據說Ultrafast網格有助於跨瀏覽器和跨設備測試,加速功能和視覺測試。applittools平台據說集成了所有現代測試框架,並與許多現有的測試工具,包括像Selenium, Appium和Cypress。

聲明性測試,工程師的目標是用一種自然的或領域特定的語言指定測試的目的,然後係統決定如何執行測試。示例產品包括來自的測試套件UIPath用於自動化集中測試過程,並通過機器人過程自動化來幫助構建執行測試的機器人。該套件包括用於測試接口、管理測試和執行測試的工具。

另外,工具Tricentis目的是讓敏捷和DevOps團隊實現他們的測試自動化目標,包括軟件應用端-端測試功能。該工具包括測試用例設計、測試自動化,以及測試數據設計、生成和分析。

自愈的自動化,選擇測試的元素會自動調整為UI中的更改。產品包括例子Mabi,一個為持續集成和持續部署(CI/CD)而構建的測試自動化平台。Mabi抓取應用程序的屏幕,並運行大多數應用程序常見的默認測試;它使用ML算法來提高測試執行和缺陷檢測。

閱讀來源文章和信息阿茲大媒體,在TechBeacon,在機器學習的自動化測試:經驗報告來自安吉·瓊斯的報道Applitools博客軟件測試中的AI: 2021年在TestingXperts網站上。