將人工智能引入軟件測試似乎將徹底改變軟件QA。
軟件 QA 通常被視為任何開發(fā)團隊的昂貴必需品;測試在時間、人力和金錢方面成本高昂,同時仍然是一個不完美的過程,容易出現(xiàn)人為錯誤。通過將人工智能和機器學習引入測試過程,我們不僅擴大了可測試的范圍,而且還自動化了大部分測試過程本身。
這可以減少在測試上花費的時間和金錢,而不會犧牲范圍或質(zhì)量,使工程團隊能夠突破項目管理的“鐵三角”。請繼續(xù)閱讀,了解將 AI 和機器學習應用于測試過程如何有可能徹底改變測試環(huán)境。
測試的問題
手動測試涉及測試套件的開發(fā),以及生成用于測試的測試數(shù)據(jù)。雖然在提交時自動運行測試套件可以很容易地集成到開發(fā)管道中,以防止部署失敗的代碼,但測試套件本身仍然只與其中包含的測試用例和使用的測試數(shù)據(jù)一樣好。創(chuàng)建測試的開發(fā)人員或測試人員是人類。這意味著可能會犯錯誤,并且可能會錯過測試用例。隨著軟件的發(fā)展,測試的數(shù)量將不可避免地增加,這使得保持測試套件的頂部并確保良好的代碼覆蓋率變得更加困難。
通過將人工智能引入測試過程,可以克服這些挑戰(zhàn)。人工智能可以在項目中以多種方式應用,從抓取軟件到自動生成包含測試數(shù)據(jù)的測試套件,再到可視化分析軟件輸出以發(fā)現(xiàn)傳統(tǒng)功能測試不容易發(fā)現(xiàn)的錯誤。
視覺測試
可以訓練基于圖像的學習算法來分析用戶界面,從而增強測試過程,以幫助確保網(wǎng)頁上的所有內(nèi)容正確顯示。與傳統(tǒng)的功能測試相比,這可以以更少的錯誤完成,并且比手動測試快得多。這樣可以節(jié)省時間和金錢,因為用于UI驗證的功能測試的開發(fā)非常耗時,并且很快就會變得非常冗長,使其難以維護。
可視化 AI 驅(qū)動的斷言通過顯著減少測試斷言所需的代碼量,徹底改變了編寫 UI 功能測試的過程。例如,AI 驅(qū)動的斷言不是編寫冗長的代碼來檢查 DOM 元素,而是根據(jù)目標預期輸出(通常是屏幕截圖)分析輸出。如果輸出與屏幕截圖匹配,則測試通過。這可以立即突出顯示差異,還可以更輕松地編寫可應用于不同設備和屏幕分辨率的更好測試。
人工智能爬蟲和用戶分析
生成用戶旅程需要花費大量時間,在足夠成熟的軟件中,可能的用戶旅程的數(shù)量會迅速接近超出手動創(chuàng)建的測試用例所能涵蓋的數(shù)字。AI 爬取用于自動化應用程序發(fā)現(xiàn),并可以與其他測試程序(如回歸測試)結(jié)合使用,以快速發(fā)現(xiàn)用戶旅程中引入的錯誤。它涉及利用機器學習創(chuàng)建一個模型,該模型可以通過與 UI 元素交互來導航應用。該模型通過應用創(chuàng)建一系列路徑,以自動生成可以針對其編寫測試的工作模式。這些測試將當前模式與預期的工作模式進行比較,以突出顯示差異作為測試過程的一部分。此方法可以非??焖俚匕l(fā)現(xiàn)錯誤,否則這些錯誤可能隱藏在用戶旅程中一系列非常具體的步驟后面,手動測試很容易錯過這些步驟。
支持 ML 的使用分析可以代替 AI 爬取,也可以作為 AI 爬取的補充。通過觀察和了解最終用戶如何使用應用程序,測試系統(tǒng)可以識別用戶實際遍歷的測試用例,而不是通過應用程序的所有可能路徑,從而大大減少提供完整質(zhì)量保證所需的測試數(shù)量。
無代碼測試
使用錄制和播放界面是生成測試的常用方法,但隨著 UI 元素的更改,它們很難維護。人工智能驅(qū)動的無代碼測試開辟了創(chuàng)建幾乎不需要維護的自我修復測試用例的可能性。AI 可以通過在對象定位器交互時動態(tài)生成對象定位器來增強錄制和回放過程。識別所有命令,從鼠標單擊到鍵盤輸入,以及對象類型,無論是下拉選項,輸入字段還是其他內(nèi)容。
AI 驅(qū)動的無代碼測試能夠自我修復。通過開發(fā)頁面上對象的模型,它能夠重新發(fā)現(xiàn)以某種方式移動或更改的 UI 元素定位器,而無需手動重新配置。在開發(fā) UI/UX 測試時,這可以節(jié)省大量時間,這通常需要不斷維護以適應變化。
持續(xù)驗證
連續(xù)驗證不是將測試定義為 CI/CD 管道中的特定階段,而是允許使用持續(xù)驗證在開發(fā)過程的所有階段運行測試。人工智能驅(qū)動的持續(xù)驗證可以通過在開發(fā)過程的每個階段跟蹤數(shù)千個指標來自動對新版本進行風險評估,處理機器日志數(shù)據(jù)的速度比手動快得多。
這些風險評估可用作自動決策部署過程的一部分。如果判斷部署風險太大,可以使用 AI 自動回滾或前滾部署,以防止不穩(wěn)定的代碼保留在生產(chǎn)中。這些不僅可以節(jié)省凌晨3點給技術(shù)專家的緊急呼叫,而且AI還能夠進行錯誤診斷和分類,因此可以根據(jù)嚴重性自動理解和分類錯誤,從而進一步減少對專家確定錯誤風險級別的依賴。
人工智能和軟件測試的未來
基于AI和ML的軟件測試方法的許多潛在應用仍處于起步階段,它們在軟件測試行業(yè)的采用并不廣泛。這些測試方法是新的,但人工智能驅(qū)動的測試方法表明,它不僅有可能擴大軟件中可測試的范圍,而且有可能實現(xiàn)多少測試過程的自動化。軟件QA是開發(fā)過程中最昂貴的部分之一,因此對于開發(fā)團隊來說,在時間和金錢方面的潛在成本節(jié)省是巨大的。
審核編輯:郭婷
-
人工智能
+關(guān)注
關(guān)注
1792文章
47372瀏覽量
238857 -
機器學習
+關(guān)注
關(guān)注
66文章
8423瀏覽量
132744
發(fā)布評論請先 登錄
相關(guān)推薦
評論