中圖分類號:TP317
文獻標志碼:A文章編號:1001-5922(2025)07-0144-03
Abstract:In order to solve the problemof poor efect of the current automated software testing system in multi-objective testing,amulti-objective automated testing system based on RPA AI was designed.The overallframework of the multi-objectivesoftware automated testing system was established,and it was divided into the service layerand the execution layer,the code coverage,sequence length,and number of crashes were taken as the optimization goals,the multi-software test objectives were optimized,theoptimal solution set was obtained through the genetic algorithm,and the automated software testing process was designed to automatically output software exception information.The test results showed that the test coverage rate of the system designed in this paper reached 96% ,and the system crash rate was less than 1% ,which can effectively improve the reliability of the system.
Key words : RPA+AI ;software testing system
自動化測試通過使用軟件工具或程序來執(zhí)行測試任務(wù),利用軟件代替手工操作[1],使得在節(jié)省人力和時間的同時,提高測試效率。目前,自動化測試技術(shù)已在軟件開發(fā)中得到廣泛應(yīng)用[2],但大部分只對功能測試有效果,缺乏對可靠性、安全性、兼容性等方面的測試,且大多數(shù)的測試工具主要針對某個單一目標進行測試,不能有效地對多目標進行自動化測試。為此在自動化測試領(lǐng)域,設(shè)定多目標來模擬真實業(yè)務(wù)場景[34],但在目標執(zhí)行過程中,通常需要手動執(zhí)行一系列操作,不僅耗時耗力,還可能導(dǎo)致軟件開發(fā)流程中的風險,因此自動化測試具有重要作用。
針對上述問題,設(shè)計一種基于 RPA+AI 的多目標自動化測試系統(tǒng)。在軟件開發(fā)過程中,使用RPA技術(shù)自動執(zhí)行大量重復(fù)的操作任務(wù),能夠顯著提升軟件開發(fā)效率,同時RPA和AI技術(shù)結(jié)合后,可以應(yīng)用于軟件測試領(lǐng)域中[56]進行自動化測試,具有較好的應(yīng)用前景。
1多目標軟件自動化測試系統(tǒng)
1.1 系統(tǒng)總體架構(gòu)設(shè)計
多目標軟件自動化測試系統(tǒng)的整體框架可以劃分為服務(wù)層和執(zhí)行層[7],整體架構(gòu)示意圖如圖1所示。
User 服務(wù)器端√ ▲目標任務(wù)管理 多軟件測試目模塊 標優(yōu)化模塊任務(wù)目標調(diào)度 測試結(jié)果展示管理模塊 模塊XML配置 1 ↑文件 基于RPA+AI執(zhí)行體系自動化測試 自動回歸化測試Windows客戶端 Windows客戶端
(1)目標任務(wù)管理模塊:主要實現(xiàn)管理多目標任務(wù),包括增加、修改、刪除目標,設(shè)置目標任務(wù)優(yōu)先級等。其中目標任務(wù)管理模塊可根據(jù)需要創(chuàng)建多個任務(wù),也可以選擇單個任務(wù);
(2)自動化測試執(zhí)行模塊:主要完成對多個目標自動化測試任務(wù)的執(zhí)行工作。當有多個目標需要執(zhí)行時,首先通過設(shè)置自動測試用例對每個目標進行測試,若所有測試用例均通過測試,則返回結(jié)果。若有個別測試用例未通過測試,則重新啟動自動化測試流程,對未通過的測試進行重新執(zhí)行;
(3)目標任務(wù)調(diào)度管理模塊:主要完成對多個目標的調(diào)度管理功能,根據(jù)需要為每個自標分配指定的資源[8]。例如指定的時間段內(nèi)完成哪幾個目標的任務(wù),或者在指定時間內(nèi)完成多少個目標的任務(wù)等;
(4)報告展示模塊:主要完成對多個目標的執(zhí)行結(jié)果與執(zhí)行過程的展示功能。當多個目標需要執(zhí)行時,可直接通過數(shù)據(jù)庫管理模塊進行查詢與修改等操作[9,無需再次手動創(chuàng)建測試用例及生成測試數(shù)據(jù)等操作。
1.2 多軟件測試目標優(yōu)化
為解決對多個目標進行自動化測試需要手動設(shè)計測試用例、生成測試數(shù)據(jù)的問題,利用遺傳算法[10]對多個目標進行優(yōu)化選擇[11]。軟件測試系統(tǒng)主要優(yōu)化三個目標:代碼覆蓋率、序列長度、崩潰數(shù)量。在優(yōu)化過程中,以式(1)作為優(yōu)化的評價標準:
其中, xa,xb 均為可優(yōu)化的方案。在優(yōu)化過程中,為滿足上式時,說明在優(yōu)化方案 被優(yōu)化方案xb 支配。本文針對多目標自動化測試問題[12],首先將多個目標劃分為不同的子任務(wù),并對每個子任務(wù)進行優(yōu)化選擇。
根據(jù)自動化測試流程,生成測試用例,對符合需求的目標生成自動化測試的腳本,進行多目標自動化測試,并將結(jié)果記錄到測試數(shù)據(jù)文件中。若滿足需求且多個目標均符合要求,則進人下一輪優(yōu)化流程。在以上的流程中,得到最優(yōu)方案的集合,表示為:
對于多個目標的優(yōu)化選擇,可以根據(jù)待測系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)特征、業(yè)務(wù)邏輯、功能復(fù)雜程度等因素進行分析。在以上的最優(yōu)方案的結(jié)合下,本文主要通過對Python腳本語言的優(yōu)化[13]改進實現(xiàn)多目標優(yōu)化選擇。需要注意的是,在Python腳本語言中存在很多類型的變量和參數(shù),若參數(shù)或變量過多則會導(dǎo)致運行效率下降、影響系統(tǒng)穩(wěn)定性。遺傳算法是通過模擬生物進化過程,求取全局最優(yōu)解的算法,對于任何一個優(yōu)化問題,都可以建立多個目標函數(shù)[14],然后將每個目標函數(shù)轉(zhuǎn)換為單目標函數(shù)。本文通過對多個目標函數(shù)進行優(yōu)化選擇,以獲得最優(yōu)解集,并根據(jù)各單目標的約束條件選擇最優(yōu)解,實現(xiàn)多軟件測試目標的優(yōu)化。
1.3基于 RPA+AI 的軟件測試執(zhí)行流程
為了解決傳統(tǒng)的軟件測試效率低下的問題,設(shè)計基于 RPA+AI 的多目標自動化軟件測試系統(tǒng),在不改變原有多個目標之間關(guān)系[15]的基礎(chǔ)上,結(jié)合場景定義、業(yè)務(wù)描述等因素,將不同目標進行關(guān)聯(lián)。首先將多個目標定義為一個整體的集合,然后定義多個場景作為這個集合中的不同子集;最后通過將不同的子集組合到同一個場景下來實現(xiàn)對不同子集之間的關(guān)聯(lián)。
以上的測試流程利用 RPA+AI 技術(shù)[16]從軟件運行過程中獲取相關(guān)數(shù)據(jù),進行數(shù)據(jù)功能劃分。將軟件的測試運行數(shù)據(jù)輸入到系統(tǒng)中,能夠自動輸出軟件異常信息。至此完成基于RPA +AI 的多目標自動化軟件測試系統(tǒng)的設(shè)計。
2 系統(tǒng)測試
2.1 系統(tǒng)測試環(huán)境以及流程設(shè)計
為驗證設(shè)計系統(tǒng)的有效性,使用自動化測試技術(shù),形成一個完整的自動化測試方案,將Android移動終端APP自動安裝到測試手機中進行測試[17]在測試過程中自動檢測APP出現(xiàn)的崩潰事件。實驗主要采用動態(tài)路徑探索系統(tǒng),結(jié)合工程上使用的自動化測試技術(shù)及其相關(guān)工具配合硬件設(shè)備驗證系統(tǒng),進一步檢驗系統(tǒng)的有效性及適用性。
測試平臺運行在PC上面,通過USB數(shù)據(jù)線和被測的移動終端相連接。測試平臺主要由數(shù)據(jù)整理模塊、動態(tài)路徑探索算法、操作判定和性能監(jiān)控(崩潰檢測)組成。測試平臺是使用Python語言開發(fā)的,這種語言適合將各種工具集成在一起[18],以實現(xiàn)本文設(shè)計系統(tǒng)。在以上軟硬件實驗環(huán)境下,對本文設(shè)計系統(tǒng)進行測試。測試過程中,
Step1:將軟件應(yīng)用進行apk逆向分析,從文件中獲取后續(xù)測試所需的關(guān)鍵數(shù)據(jù);
Step2:利用這些關(guān)鍵數(shù)據(jù),將APK自動安裝在目標軟件上,并啟動APP的首界面;
Step3:提取APP的界面數(shù)據(jù)進行數(shù)據(jù)整理,將整理后的數(shù)據(jù)供動態(tài)路徑探索算法進行分析,并使用MonkeyRunner的方法控制軟件完成測試;
Step4:判斷能否滿足結(jié)束條件,設(shè)定結(jié)束條件為覆蓋率實現(xiàn) 95% ,或者操作步數(shù)達到500次。如果達到結(jié)束條件,則強制關(guān)閉軟件,并將其卸載:如果沒有達到結(jié)束條件,則返回到Step3。
為了驗證本文設(shè)計系統(tǒng)的自動化水平,按照上述流程,將本文設(shè)計系統(tǒng)和文獻[5]設(shè)計系統(tǒng)進行對比。
2.2 測試結(jié)果對比與分析
在上述的測試條件和測試過程下,分別使用本文設(shè)計系統(tǒng)和文獻[5設(shè)計系統(tǒng)進行測試,得到的測試結(jié)果如表1所示。
由表1可以看出,文獻5設(shè)計系統(tǒng)和本文設(shè)計系統(tǒng)的測試時間分別為98s和186s,測試的覆蓋率分別為 82% 和 96% 。由此可知,文獻[5]設(shè)計系統(tǒng)在實驗過程中出現(xiàn)異常,發(fā)生崩潰;本文設(shè)計系統(tǒng)未出現(xiàn)崩潰情況,實現(xiàn)了系統(tǒng)的預(yù)期目標。
為了驗證設(shè)計系統(tǒng)的可靠性,以崩潰率作為測試指標,對2種系統(tǒng)進行測試。系統(tǒng)崩潰率是指系統(tǒng)在一定時間內(nèi)出現(xiàn)故障或停機的次數(shù),一個低崩潰率的系統(tǒng)通常意味著其可靠性較高,因為它可以在較長的時間內(nèi)持續(xù)運行,并且不容易出現(xiàn)故障。計算公式如下:
式中: ψ 表示崩潰率; ψ 表示崩潰次數(shù); ψz 表示總測試次數(shù)。
2種系統(tǒng)的測試結(jié)果如圖2所示。
5一本文設(shè)計系統(tǒng)%/率 4 -文獻[4]設(shè)計系統(tǒng)32050 100 150 200 250迭代次數(shù)
由圖2可知,隨著迭代次數(shù)的增加,2種系統(tǒng)的崩潰率也隨之上升。與文獻[5]設(shè)計系統(tǒng)相比,本文設(shè)計系統(tǒng)的崩潰率始終低于1%,證明本文設(shè)計系統(tǒng)的可靠性更高。
3結(jié)語
本文設(shè)計了基于 RPA+AI 技術(shù)的多目標自動化測試系統(tǒng),系統(tǒng)包括自動化測試平臺、Web端、服務(wù)器端以及移動設(shè)備端。該系統(tǒng)實現(xiàn)了對多個目標的自動化執(zhí)行任務(wù),能夠提高軟件開發(fā)和測試效率;同時使用 RPA+AI 技術(shù)后,應(yīng)用程序未崩潰且覆蓋率達到了 96% ,測試過程中本文設(shè)計系統(tǒng)的可靠性更高,可以有效確保系統(tǒng)正常運行。
【參考文獻】
[1]陳靜,魏強,武澤慧,等.RESTAPI自動化測試綜述[J].計算機應(yīng)用研究,2024,41(2):321-328
[2]郭敬東,劉文亮,李霆,等.基于業(yè)務(wù)流程編排的自動化運維實現(xiàn)研究[J].微型電腦應(yīng)用,2023,39(1):108-110.
[3]李堃,李猛,李艷玲,等.基于LSTM-RPA音樂流行趨勢預(yù)測研究[J].計算機工程與應(yīng)用,2022,58(24):134-142.
[4]張鑫,李哲,翟天一,等.一種基于圖像識別與文字識別技術(shù)的自動化測試架構(gòu)[J」.電力信息與通信技術(shù),2022,20(11) :74-83.
[5]林若欽,羅瓊.基于節(jié)點邏輯度優(yōu)化的軟件測試序列生成仿真[J].計算機仿真,2021,38(4):390-394.
[6]陳翔,趙英全,顧慶,等.基于文件粒度的多目標軟件缺陷預(yù)測方法實證研究[J].軟件學(xué)報,2019,30(12):3694-3713.
[7]郜軒,曹珍,張莉莉.50Gbit/sSFP56光模塊自動化測試系統(tǒng)設(shè)計[J].光通信研究,2024(4):90-94.
[8]趙剛,周文婷,梁鋼,等.數(shù)據(jù)通信網(wǎng)VPN業(yè)務(wù)自動開通系統(tǒng)設(shè)計與技術(shù)改進[J].粘接.2024,51(12)[J].
[9]邢星宇,吳旭陽,劉力豪,等.基于目標優(yōu)化的自動駕駛決策規(guī)劃系統(tǒng)自動化測試方法[J].同濟大學(xué)學(xué)報(自然科學(xué)版),2021,49(8):1162-1169.
[10]龔鑫,徐立華,竇亮,等.金融科技軟件自動化測試用例的冗余評價和削減方法[J].華東師范大學(xué)學(xué)報(自然科學(xué)版),2022(4):43-55.
[11]程亮,薛一凡,周建華.機載有源相控陣雷達天線自動化測試方法研究與實現(xiàn)[J].現(xiàn)代雷達,2021,43(4) :59-64.
[12]陳銳智,李析鴻,陳思羽,等.基于EPSILON約束法的配電自動化設(shè)備多目標優(yōu)化布點模型[J].電力系統(tǒng)保護與控制,2021,49(24):51-58.
[13]翟禹堯,史賢俊,楊帥,等.不可靠測試條件下基于NSGA-I的多目標測試優(yōu)化選擇[J].北京航空航天大學(xué)學(xué)報,2021,47(4):792-801.
[14]潘軍,姚科敏.AI智能層級與仿人實現(xiàn)的價值調(diào)控與治理研究[J].重慶大學(xué)學(xué)報(社會科學(xué)版),2022,28(4) :251-261.
[15]馬景,李豪杰,原紅偉,等.電子時間引信電路部件全流程測試系統(tǒng)設(shè)計[J」.兵器裝備工程學(xué)報,2024,45(2):225-231.
[16]張少琳,姚敏東,姚旭,等.配網(wǎng)自動化在智能電網(wǎng)中的應(yīng)用分析[J].粘接.2020,41(3):86-89.