摘 要:在GUI可視化測試腳本中一般將目標控件圖像作為點擊動作的參數(shù)。在單個攝像機錄制環(huán)境下構(gòu)建GUI可視化測試腳本時,存在點擊動作的目標控件圖像獲取準確率低的問題。為此,提出了一種基于深度排序?qū)W習(xí)的點擊動作參數(shù)獲取方法。在本方法中,利用計算機視覺技術(shù)來提取視頻中指尖移動和屏幕變化等特征以獲取更準確的用戶與設(shè)備交互的觸控區(qū)域,將該區(qū)域內(nèi)包含的控件作為排序?qū)ο?,使用深度排序?qū)W習(xí)算法對這些候選控件進行評分和排序,確保最符合預(yù)期的控件被選中作為點擊目標控件。實驗結(jié)果表明,使用該方法在單攝視頻中獲取點擊動作參數(shù)具有較高的準確率。
關(guān)鍵詞:GUI測試;可視化腳本;目標控件定位;計算機視覺;深度學(xué)習(xí);排序?qū)W習(xí)
中圖分類號:TP311文獻標識碼:A
Script Recording Method for Action Parameter Acquisition
Based on Deep Learning and Learning to Rank
WANG Pengyu, QIAN Ju
(College of Computer Science and Technology, Nanjing University of Aeronautics
and Astronautics, Nanjing, Jiangsu 210016, China)
Abstract:In GUI visualization test scripts, the target control image is typically used as a parameter for the click action. When creating GUI visualization test scripts in a single camera recording environment, there is a challenge in achieving high accuracy when capturing target control images for click actions. A method for acquiring click action parameters based on deep learning and learning to rank algorithms is proposed to address the aforementioned issues. This method utilizes computer vision technology to extract features such as fingertip movement and screen changes in videos, enabling more accurate determination of touch areas for user device interaction. The controls in this area are used for sorting objects, and deep learning and learning to rank algorithms are employed to score and arrange these candidate controls to ensure that the most relevant control is selected as the target for clicking. The experimental results demonstrate that utilizing this method to acquire click action parameters in single shot videos yields high accuracy.
Key words:GUI testing;visual script; target control location; computer vision; deep learning; learning to rank
GUI測試[1]對于確保軟件界面的正確性、功能的可靠性以及用戶體驗的良好性起著關(guān)鍵作用。自動化的GUI測試可以顯著提高測試效率,同時減少人力資源和時間投入,使得軟件測試過程更加高效和可靠。
腳本自動錄制是實現(xiàn)自動化GUI測試[2]的關(guān)鍵步驟。在這個過程中,自動化測試工具可以將人工測試視頻轉(zhuǎn)化為可視化測試腳本,這些腳本與視頻中的操作一一對應(yīng)。然后,可以根據(jù)這些腳本按照指令順序執(zhí)行,模擬人類進行測試的過程。如果腳本錄制時出現(xiàn)錯誤,就會直接影響測試結(jié)果的準確性。在腳本錄制過程中,獲取點擊動作的參數(shù)是其中一個較為困難的方面,尤其是在基于攝像頭的非侵入式腳本錄制中,如RoScript[4]方法和RoScript3D[5]方法。因為需要在視頻中精確識別和定位點擊目標控件,這對準確度提出了較高的要求。
RoScript方法中,對測試人員設(shè)定特定的操作要求,將視頻中最高的指尖坐標作為點擊位置,并獲取目標控件的圖像。而RoScript3D方法則利用額外的深度相機來輔助獲取手與設(shè)備的接觸情況,取接觸時的指尖坐標作為點擊位置,并獲取目標控件的圖像。
上述點擊動作參數(shù)獲取的方法存在兩個主要問題:一是使用額外相機輔助獲取點擊位置,增加了錄制復(fù)雜程度;二是設(shè)定一定操作要求,僅使用最高指尖坐標來獲取目標控件圖像,準確率較低。若測試人員在錄制過程中指尖稍微超出點擊控件區(qū)域,就會導(dǎo)致參數(shù)獲取失敗。
針對以上問題,提出了一種基于深度排序?qū)W習(xí)的點擊動作參數(shù)獲取方法,在單個攝像機拍攝環(huán)境中,利用計算機視覺技術(shù)來提取視頻中指尖移動和屏幕變化等特征以獲取用戶與設(shè)備交互的觸控區(qū)域,使用深度排序?qū)W習(xí)算法對觸控區(qū)域內(nèi)若干個控件進行評分和排序,最終將獲取的控件圖像作為點擊動作的參數(shù)。
通過利用指尖移動和屏幕變化特征,可以更準確地確定用戶與設(shè)備交互的觸控區(qū)域。深度排序?qū)W習(xí)[6]算法能夠?qū)τ|控區(qū)域內(nèi)的若干個控件進行特征提取并排序,確保最符合預(yù)期的控件被選中作為目標控件。這種利用深度排序?qū)W習(xí)的智能化方法能夠有效地提高點擊動作參數(shù)的獲取準確度,從而提升自動化GUI測試的準確性和可靠性。
本文的貢獻如下:
(1)分析總結(jié)了現(xiàn)有方法在視頻中獲取點擊動作參數(shù)所存在的問題,并確定了改進方案。
(2)提供了一種準確、可靠的方法來獲取點擊動作的參數(shù),為GUI測試的自動化提供更準確的腳本錄制方法。
1 問題定義與總體思路
非侵入式GUI測試腳本錄制方法是將一個人工GUI測試視頻轉(zhuǎn)換為對應(yīng)的可視化測試腳本,其主要分為以下幾個步驟:
(1)動作分組:將整個測試視頻分割為多個獨立的動作視頻段;
(2)交互動作識別:從分割后的視頻中準確地識別每個動作的類型,例如點擊、滑動或輸入等;
(3)動作參數(shù)確定:針對不同類型的動作,獲取相應(yīng)的參數(shù)信息。例如,對于點擊動作,獲取目標控件圖像等參數(shù)。
然而,本研究專注于改進點擊動作參數(shù)獲取的準確性,希望提供一種準確的、可靠的方法來獲取點擊動作的參數(shù),從而為GUI測試的自動化提供更準確的腳本錄制方法。
由于測試人員執(zhí)行點擊動作時可能存在不精確的情況,使得準確捕捉點擊位置變得困難,導(dǎo)致無法獲取有效的目標控件圖像。這是因為人的指腹和指尖之間存在一定的弧形距離,通常人們使用指腹與設(shè)備進行接觸,而指尖位置通常會高于實際與設(shè)備接觸的位置,高出的距離是由于手指的形狀以及手指與觸摸屏的夾角所決定的。通過對實驗室16位參與者的數(shù)據(jù)進行分析,發(fā)現(xiàn)指尖和指腹與屏幕接觸位置的距離大約在2 mm到6 mm之間。在圖1(a)中,展示了一個指尖與指腹的水平方向距離為4 mm的案例。
在測試人員未刻意調(diào)整點擊動作的情況下,如果使用檢測到的最高指尖坐標作為點擊位置,通常會超出目標控件范圍,位于兩個控件之間,導(dǎo)致無法獲取有效的目標控件圖像,如圖1(b)所示。
根據(jù)圖1可得知,當人與設(shè)備接觸時的點擊位置是一個區(qū)域,無法僅用單個坐標來描述點擊位置。因此,本文的研究方法的總體思路是通過視覺技術(shù)獲取更準確的人機交互觸控區(qū)域,并對處于該區(qū)域內(nèi)的控件進行分析,使用深度排序?qū)W習(xí)算法對控件進行評分和排序,取評分最高的控件圖像作為表達實際動作目標的控件圖像。這樣可以更準確、更可靠地捕捉到用戶的點擊對象。該方法的總體流程如圖2所示。如果觸控區(qū)域中包含一個或多個控件,則使用深度排序?qū)W習(xí)算法來根據(jù)控件圖像與響應(yīng)界面的關(guān)聯(lián)度進行排序。深度排序?qū)W習(xí)算法會根據(jù)大量的數(shù)據(jù)學(xué)習(xí)每個控件圖像與響應(yīng)界面的匹配程度,為候選控件圖像打分。最終選擇評分最高的圖像作為表達實際動作目標的控件圖像。
然而,觸控區(qū)域中不包含任何目標控件,說明控件檢測算法可能失效。通過將觸控區(qū)域作為目標控件圖像,可以將其用作觸發(fā)相應(yīng)的點擊事件的依據(jù),使得程序可以在缺少具體控件信息的情況下完成相應(yīng)的點擊參數(shù)的獲取。
2 控件深度排序?qū)W習(xí)算法
使用視覺技術(shù)來提取視頻中指尖移動和屏幕變化等特征獲取用戶與設(shè)備交互的觸控區(qū)域,根據(jù)控件位置信息取觸控區(qū)域內(nèi)包含的所有控件作為排序候選控件,采用深度排序?qū)W習(xí)算法對這些候選控件進行評分和排序,將最符合預(yù)期的控件圖像作為表達實際動作目標的控件圖像,實現(xiàn)點擊動作參數(shù)的獲取。
2.1 獲取排序候選控件
對點擊動作觸發(fā)時進行特征分析。一般用戶的點擊動作持續(xù)時間在0.5~1 s之間,在此期間手指位置保持不變,指尖移動速度為零,并且屏幕內(nèi)容未發(fā)生變化。點擊觸發(fā)后,系統(tǒng)做出響應(yīng),屏幕進而發(fā)生變化。
根據(jù)上述描述的特征,可以進行以下步驟來獲取觸控點坐標和觸控區(qū)域:首先,從視頻序列中提取出在屏幕內(nèi)容發(fā)生變化之前指尖位置相對保持不變(即指尖移動速度vfinger≤Tstill)的視頻幀。設(shè)定閾值Tstill可以抑制手指輕微抖動或指尖檢測不準確等因素對指尖位置的微小變化的影響,減少噪聲和抖動帶來的干擾,將注意力集中在真正有意義的指尖位置變化上,從而提高交互的穩(wěn)定性和可靠性。
然后,從這些圖像中獲取指尖坐標(x, y),對該數(shù)據(jù)進行處理。在指尖坐標的 y 軸分量上減去指尖與指腹的偏差Td,即y=y-Td,以得到與屏幕接觸的指腹坐標。接下來,根據(jù)調(diào)整后得到的指腹數(shù)據(jù),計算其中值,作為初步的觸控點坐標。
本文以觸控點為中心,構(gòu)建一個一定大小的正方形區(qū)域,作為手指與屏幕的觸控區(qū)域。根據(jù)控件位置信息取觸控區(qū)域內(nèi)包含的所有控件作為排序候選控件。使用候選控件圖像和響應(yīng)界面的圖像作為控件深度排序?qū)W習(xí)模型的輸入,經(jīng)模型計算后,將評分最高的控件圖像作為點擊動作的參數(shù)。
下面將介紹指尖移動速度的計算、屏幕變化特征的提取以及圖像控件的檢測。
(1)計算指尖移動速度
本文采用基于YCrCb顏色空間的膚色[7]檢測方法來獲取手部輪廓,取輪廓最高點作為指尖位置,根據(jù)指尖位置的變化進而計算指尖移動速度。為了處理手部區(qū)域中局部位置顏色的差異,并使每個位置都具有一定的容忍度,設(shè)置膚色矩陣區(qū)間為:
color_rangeskin=(Ylow,Yhigh)(Crlow,Crhigh)(Cblow,Cbhigh)(1)
對于圖像中的每個像素點,如果其Y、Cr和Cb分量的顏色值都在color_rangeskin區(qū)間范圍內(nèi),那么該像素點被視為皮膚檢測的候選像素點,將該像素點設(shè)置為白色,否則將該像素點設(shè)置為黑色。通過對該二值圖像進行輪廓檢測得到手部輪廓圖。取該圖中最高的頂點坐標作為指尖坐標。計算相鄰兩幀圖像中指尖坐標的距離Δd,根據(jù)該測試視頻的幀率fps,計算指尖的移動速度vfinger,具體計算公式為:
vfinger=Δd·fps (2)
(2)屏幕變化特征提取
首先,使用基于邊緣檢測與輪廓提取算法獲取視頻中屏幕區(qū)域的四個頂點坐標。接著,為了校正由于拍攝角度而引起的圖像中屏幕區(qū)域的畸變,利用透視變化[8]算法獲取屏幕區(qū)域正視圖,從而更準確地呈現(xiàn)屏幕圖像內(nèi)容,如圖3所示。最后用屏幕變化差異值來描述屏幕變化特征。計算透視變換對應(yīng)坐標,進而得到屏幕區(qū)域正視圖,從而更準確地呈現(xiàn)圖像內(nèi)容。透視變換坐標計算公式為:
x′,y′,w=[x,y,1]M11M12M13M21M22M23M31M32M33 (3)
u=x′w,v=y′w (4)
其中,x 、y 為原始圖像坐標,u 、v 為經(jīng)透視變換后在新圖像中的坐標。
本文采用了對比相鄰兩幀屏幕區(qū)域正視圖的結(jié)構(gòu)相似度SSIM[9]的補作為兩張圖像的差異值diff,用差異值來描述屏幕變化特征。相較于其他相似度計算方法,SSIM考慮了圖像的結(jié)構(gòu)信息,而不僅僅是像素值的相似度。它通過比較圖像的亮度、對比度和結(jié)構(gòu)來評估圖像的相似度,更符合人眼對圖像質(zhì)量的感知。通過采用SSIM,可以更準確地衡量圖像之間的相似程度,對SSIM取補從而更好地理解和描述屏幕區(qū)域的變化特征。diff的具體計算公式如下所示。
diff=1-f(l(i,j),c(i,j),s(i,j)) (5)
其中,l、c、s分別表示亮度相似度、對比度相似度以及結(jié)構(gòu)相似度。
(3)圖像控件檢測
本文利用Canny邊緣檢測[10]算法對圖像中控件進行檢測。在進行邊緣檢測之前,首先對屏幕區(qū)域圖像進行預(yù)處理,去除圖像中噪聲以及增強圖像中的邊緣特征,可以提高后續(xù)邊緣檢測的準確性。然后進行邊緣檢測和輪廓提取。因已經(jīng)得到屏幕區(qū)域的正視圖,控件的外接矩形一般呈現(xiàn)為與屏幕邊界相對平行的規(guī)則矩形,所以最終取各輪廓的外接矩形作為整體控件。
2.2 控件排序特征分析
從應(yīng)用程序?qū)用婵紤],可以通過根據(jù)顏色和局部匹配特征等信息對控件進行評分,進而對控件進行排序。
控件圖像很可能與響應(yīng)界面圖像采用相同的色彩主題。圖4中展示的兩個應(yīng)用的應(yīng)用圖標與響應(yīng)界面的顏色主題一致,分別為紅和藍。
對于非顏色的圖標控件,比如文字控件,響應(yīng)界面中很可能包含該文字信息。圖5REF_Ref1640h展示了文字控件與響應(yīng)界面之間的關(guān)聯(lián)性。
然而,深度學(xué)習(xí)模型具有提取更多特征的能力,因此可以更全面地找到控件和響應(yīng)界面之間的關(guān)聯(lián)性并進行排序。
2.3 控件排序算法實現(xiàn)
本文采用深度排序?qū)W習(xí)算法對一個或多個候選控件進行評分和排序,取最高評分控件的圖像作為點擊動作參數(shù)。
該模型以候選控件圖像與響應(yīng)界面圖像組合編碼的224×224×6圖像矩陣作為輸入。其中,先以候選控件圖像為中心填充,使其與響應(yīng)界面圖像具有相同的大小。填充部分使用黑色(0值)進行填充。然后,將填充后的圖像與響應(yīng)界面圖像進行拼接,并經(jīng)過resize處理,完成編碼過程。
接著,使用深度學(xué)習(xí)網(wǎng)絡(luò)模型ResNet 50[11]對圖像進行特征提取得到特征向量。對于這種選擇唯一正確控件的任務(wù),采用Pointwise排序?qū)W習(xí)方式將每個候選控件作為獨立的樣本進行處理,并為其分配一個分數(shù)來表示其是否為目標控件。分數(shù)為1表示為目標控件,分數(shù)為0表示非目標控件。通過訓(xùn)練一個二分類模型,可以為每個候選控件預(yù)測一個分數(shù),然后選擇分數(shù)最高的候選控件作為目標控件。圖6展示了控件排序算法的處理流程。
本文采用二元交叉熵(Binary Cross Entropy,BCE)作為損失函數(shù)。BCE損失函數(shù)用于衡量模型預(yù)測結(jié)果與真實標簽之間的差異。BCE損失函數(shù)的計算公式如下:
L=-1N∑Ni=1yi·lg(p(yi))+
(1-yi)·lg(1-p(yi))(6)
其中,yi是第i個候選控件的二元標簽,取1或者0。p(yi)是輸出屬于標簽的概率。N表示模型預(yù)測控件圖像的組數(shù)。
3 實驗分析
3.1 實驗設(shè)置
本實驗分析指尖與指腹偏差參數(shù)和觸控區(qū)域面積大小參數(shù)對實驗結(jié)果的影響,并確定實驗條件中最佳的組合。首先,本文設(shè)定了三個不同的指尖與指腹偏差數(shù)值:2 mm、4 mm和6 mm,并通過實驗來確定能夠產(chǎn)生最佳實驗結(jié)果的偏差參數(shù)。其次,考慮到移動觸屏的手指觸發(fā)尺寸[12]通常約為1 cm2,并通過觀察用戶與設(shè)備的交互過程,發(fā)現(xiàn)人機交互的接觸面積會隨著按壓力度的增加而變大。故本文設(shè)置了兩種不同尺寸的觸控區(qū)域:邊長為1 cm和1.2 cm的正方形區(qū)域。通過比較不同區(qū)域大小對實驗結(jié)果的影響,來確定最適合的觸控區(qū)域大小。
3.2 實驗對象
使用本文提出的點擊動作參數(shù)獲取方法對安卓系統(tǒng)中設(shè)置、微信、京東等6個應(yīng)用程序的人工測試視頻進行測試,共涉及187個點擊動作。
3.3 實驗指標
以點擊動作參數(shù)獲取準確率為評價指標。如果點擊程序計算得到的控件圖像與點擊真實目標控件的響應(yīng)一致,則認為獲取成功,否則獲取失敗。點擊動作參數(shù)獲取準確率的計算公式如下:
準確率=成功案例數(shù)量總案例數(shù)量 (7)
3.4 實驗結(jié)果與分析
根據(jù)實驗設(shè)定的不同參數(shù),使用本文提出的方法對上述視頻進行點擊動作參數(shù)獲取,結(jié)果如表1所示。
根據(jù)上表可知,在偏差參數(shù)為4 mm和觸控區(qū)域邊長為1 cm的組合實驗條件下,點擊動作參數(shù)獲取的準確率最高。當偏差參數(shù)設(shè)置過小或過大時,程序計算得到的指腹觸控位置可能偏離目標控件的中心,進而使得獲取的觸控區(qū)域不夠準確。此外,如果使用較大的觸控區(qū)域來獲取控件,可能會導(dǎo)致觸控區(qū)域內(nèi)包含多個控件的案例增加或包含更多的其他非目標控件,增加了控件排序算法的處理難度,進一步降低了點擊參數(shù)獲取的準確率。因此,為了獲得最佳結(jié)果,需要選擇合適的偏差參數(shù)和觸控區(qū)域大小參數(shù)。
對在偏差參數(shù)為4 mm和觸控區(qū)域邊長為1 cm的組合實驗條件下的實驗結(jié)果進行分析,發(fā)現(xiàn)在程序生成的控件圖像中,與真實點擊目標控件的響應(yīng)完全一致的有169個,準確率為90.4%。根據(jù)程序計算手指與屏幕的接觸區(qū)域,在176個案例中,接觸區(qū)域包含一個或多個控件,通過控件深度排序算法選擇的控件可表達實際目標控件的準確率為91.5%。其中,在141個案例中,接觸區(qū)域僅包含一個控件,參數(shù)獲取準確率為93.6%;在35個案例中,接觸區(qū)域包含了多個控件,參數(shù)獲取準確率為82.9%。該實驗數(shù)據(jù)表明,在控件檢測正確的情況下,本文所提出的方法在選擇點擊動作的目標控件方面非??煽浚軌蜻_到較高的準確率。
此外還有11個案例,由于控件檢測算法失效,將觸控區(qū)域直接取為目標控件圖像,這種情況下的準確率為72.7%。圖7展示了控件檢測失敗的情況,根據(jù)觸控區(qū)域得到僅包含一個控件的圖像可以成功觸發(fā)點擊動作,得到與點擊真實目標控件一樣的響應(yīng)。但是,若根據(jù)觸控區(qū)域得到的圖像包含多個控件,則無法根據(jù)該圖像判斷真正的目標控件。
總體來說,本文使用基于深度排序?qū)W習(xí)的點擊動作參數(shù)獲取方法來獲取表達實際動作目標的控件圖像具有較高的準確率。在單個攝像機的錄制環(huán)境中進行自動化GUI測試腳本錄制,具有良好的應(yīng)用前景。
4 結(jié) 論
本文提出了一種基于深度排序?qū)W習(xí)的腳本錄制動作參數(shù)獲取方法。該方法適用于從單攝視頻中提取測試人員與設(shè)備交互的點擊目標控件圖像。在安卓手機系統(tǒng)中多個應(yīng)用程序的實驗研究表明,該方法獲取點擊動作參數(shù)具有較高的準確率,為GUI測試的自動化提供更準確的腳本錄制方法。
參考文獻
[1] LIN J W, MALEK S. Gui test transfer from web to android[C]//2022 IEEE Conference on Software Testing, Verification and Validation (ICST). IEEE, 2022: 1-11.
[2] RODRGUEZ VALDS O, VOS T E J, AHO P, et al. 30 years of automated GUI testing: a bibliometric analysis[C]//Quality of Information and Communications Technology: 14th International Conference. QUATIC, 2021: 473-488.
[3] NASS M, ALGROTH E, FELDT R. Why many challenges with GUI test automation (will) remain[J]. Information and Software Technology, 2021, 138: 106625.
[4] QIAN J, SHANG Z, YAN S, et al. Roscript: a visual script driven truly non intrusive robotic testing system for touch screen applications[C]//Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering,2020: 297-308.
[5] 孟祥臻,錢巨.基于深度相機的三維空間測試腳本錄制方法與工具[J].計算技術(shù)與自動化,2022,41(02):141-146.
[6] LI H. Learning to rank for information retrieval and natural language processing[M]. Springer Nature, 2022.
[7] VANSH V, CHANDRASEKHAR K, ANIL C R, et al. Improved face detection using YCbCr and Adaboost[C]//Computational Intelligence in Data Mining: Proceedings of the International Conference on ICCIDM 2018. Springer Singapore, 2020: 689-699.
[8] 戴雯惠, 樊凌. 基于改進透視變換的畸變圖像校正方法研究[J]. 信息通信, 2020, 11: 63-65.
[9] NILSSON J, AKENINE MLLER T. Understanding ssim[J]. arXiv preprint arXiv:2006.13846, 2020.
[10]SEKEHRAVANI E A, BABULAK E, MASOODI M. Implementing canny edge detection algorithm for noisy image[J]. Bulletin of Electrical Engineering and Informatics, 2020, 9(4): 1404-1410.
[11]KOONCE B. ResNet 50[M]//Convolutional Neural Networks with Swift for Tensorflow: Image Recognition and Dataset Categorization California:Apress Berkely,CA, 2021: 63-72.
[12]ANTHONY T. Finger-friendly design: ideal mobile touchscreen target sizes[J].Accessed,2012 ,27(4):2014.