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