摘 要:在GUI可視化測試腳本中一般將目標控件圖像作為點擊動作的參數。在單個攝像機錄制環境下構建GUI可視化測試腳本時,存在點擊動作的目標控件圖像獲取準確率低的問題。為此,提出了一種基于深度排序學習的點擊動作參數獲取方法。在本方法中,利用計算機視覺技術來提取視頻中指尖移動和屏幕變化等特征以獲取更準確的用戶與設備交互的觸控區域,將該區域內包含的控件作為排序對象,使用深度排序學習算法對這些候選控件進行評分和排序,確保最符合預期的控件被選中作為點擊目標控件。實驗結果表明,使用該方法在單攝視頻中獲取點擊動作參數具有較高的準確率。
關鍵詞:GUI測試;可視化腳本;目標控件定位;計算機視覺;深度學習;排序學習
中圖分類號: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]對于確保軟件界面的正確性、功能的可靠性以及用戶體驗的良好性起著關鍵作用。自動化的GUI測試可以顯著提高測試效率,同時減少人力資源和時間投入,使得軟件測試過程更加高效和可靠。
腳本自動錄制是實現自動化GUI測試[2]的關鍵步驟。在這個過程中,自動化測試工具可以將人工測試視頻轉化為可視化測試腳本,這些腳本與視頻中的操作一一對應。然后,可以根據這些腳本按照指令順序執行,模擬人類進行測試的過程。如果腳本錄制時出現錯誤,就會直接影響測試結果的準確性。在腳本錄制過程中,獲取點擊動作的參數是其中一個較為困難的方面,尤其是在基于攝像頭的非侵入式腳本錄制中,如RoScript[4]方法和RoScript3D[5]方法。因為需要在視頻中精確識別和定位點擊目標控件,這對準確度提出了較高的要求。
RoScript方法中,對測試人員設定特定的操作要求,將視頻中最高的指尖坐標作為點擊位置,并獲取目標控件的圖像。而RoScript3D方法則利用額外的深度相機來輔助獲取手與設備的接觸情況,取接觸時的指尖坐標作為點擊位置,并獲取目標控件的圖像。
上述點擊動作參數獲取的方法存在兩個主要問題:一是使用額外相機輔助獲取點擊位置,增加了錄制復雜程度;二是設定一定操作要求,僅使用最高指尖坐標來獲取目標控件圖像,準確率較低。若測試人員在錄制過程中指尖稍微超出點擊控件區域,就會導致參數獲取失敗。
針對以上問題,提出了一種基于深度排序學習的點擊動作參數獲取方法,在單個攝像機拍攝環境中,利用計算機視覺技術來提取視頻中指尖移動和屏幕變化等特征以獲取用戶與設備交互的觸控區域,使用深度排序學習算法對觸控區域內若干個控件進行評分和排序,最終將獲取的控件圖像作為點擊動作的參數。
通過利用指尖移動和屏幕變化特征,可以更準確地確定用戶與設備交互的觸控區域。深度排序學習[6]算法能夠對觸控區域內的若干個控件進行特征提取并排序,確保最符合預期的控件被選中作為目標控件。這種利用深度排序學習的智能化方法能夠有效地提高點擊動作參數的獲取準確度,從而提升自動化GUI測試的準確性和可靠性。
本文的貢獻如下:
(1)分析總結了現有方法在視頻中獲取點擊動作參數所存在的問題,并確定了改進方案。
(2)提供了一種準確、可靠的方法來獲取點擊動作的參數,為GUI測試的自動化提供更準確的腳本錄制方法。
1 問題定義與總體思路
非侵入式GUI測試腳本錄制方法是將一個人工GUI測試視頻轉換為對應的可視化測試腳本,其主要分為以下幾個步驟:
(1)動作分組:將整個測試視頻分割為多個獨立的動作視頻段;
(2)交互動作識別:從分割后的視頻中準確地識別每個動作的類型,例如點擊、滑動或輸入等;
(3)動作參數確定:針對不同類型的動作,獲取相應的參數信息。例如,對于點擊動作,獲取目標控件圖像等參數。
然而,本研究專注于改進點擊動作參數獲取的準確性,希望提供一種準確的、可靠的方法來獲取點擊動作的參數,從而為GUI測試的自動化提供更準確的腳本錄制方法。
由于測試人員執行點擊動作時可能存在不精確的情況,使得準確捕捉點擊位置變得困難,導致無法獲取有效的目標控件圖像。這是因為人的指腹和指尖之間存在一定的弧形距離,通常人們使用指腹與設備進行接觸,而指尖位置通常會高于實際與設備接觸的位置,高出的距離是由于手指的形狀以及手指與觸摸屏的夾角所決定的。通過對實驗室16位參與者的數據進行分析,發現指尖和指腹與屏幕接觸位置的距離大約在2 mm到6 mm之間。在圖1(a)中,展示了一個指尖與指腹的水平方向距離為4 mm的案例。
在測試人員未刻意調整點擊動作的情況下,如果使用檢測到的最高指尖坐標作為點擊位置,通常會超出目標控件范圍,位于兩個控件之間,導致無法獲取有效的目標控件圖像,如圖1(b)所示。
根據圖1可得知,當人與設備接觸時的點擊位置是一個區域,無法僅用單個坐標來描述點擊位置。因此,本文的研究方法的總體思路是通過視覺技術獲取更準確的人機交互觸控區域,并對處于該區域內的控件進行分析,使用深度排序學習算法對控件進行評分和排序,取評分最高的控件圖像作為表達實際動作目標的控件圖像。這樣可以更準確、更可靠地捕捉到用戶的點擊對象。該方法的總體流程如圖2所示。如果觸控區域中包含一個或多個控件,則使用深度排序學習算法來根據控件圖像與響應界面的關聯度進行排序。深度排序學習算法會根據大量的數據學習每個控件圖像與響應界面的匹配程度,為候選控件圖像打分。最終選擇評分最高的圖像作為表達實際動作目標的控件圖像。
然而,觸控區域中不包含任何目標控件,說明控件檢測算法可能失效。通過將觸控區域作為目標控件圖像,可以將其用作觸發相應的點擊事件的依據,使得程序可以在缺少具體控件信息的情況下完成相應的點擊參數的獲取。
2 控件深度排序學習算法
使用視覺技術來提取視頻中指尖移動和屏幕變化等特征獲取用戶與設備交互的觸控區域,根據控件位置信息取觸控區域內包含的所有控件作為排序候選控件,采用深度排序學習算法對這些候選控件進行評分和排序,將最符合預期的控件圖像作為表達實際動作目標的控件圖像,實現點擊動作參數的獲取。
2.1 獲取排序候選控件
對點擊動作觸發時進行特征分析。一般用戶的點擊動作持續時間在0.5~1 s之間,在此期間手指位置保持不變,指尖移動速度為零,并且屏幕內容未發生變化。點擊觸發后,系統做出響應,屏幕進而發生變化。
根據上述描述的特征,可以進行以下步驟來獲取觸控點坐標和觸控區域:首先,從視頻序列中提取出在屏幕內容發生變化之前指尖位置相對保持不變(即指尖移動速度vfinger≤Tstill)的視頻幀。設定閾值Tstill可以抑制手指輕微抖動或指尖檢測不準確等因素對指尖位置的微小變化的影響,減少噪聲和抖動帶來的干擾,將注意力集中在真正有意義的指尖位置變化上,從而提高交互的穩定性和可靠性。
然后,從這些圖像中獲取指尖坐標(x, y),對該數據進行處理。在指尖坐標的 y 軸分量上減去指尖與指腹的偏差Td,即y=y-Td,以得到與屏幕接觸的指腹坐標。接下來,根據調整后得到的指腹數據,計算其中值,作為初步的觸控點坐標。
本文以觸控點為中心,構建一個一定大小的正方形區域,作為手指與屏幕的觸控區域。根據控件位置信息取觸控區域內包含的所有控件作為排序候選控件。使用候選控件圖像和響應界面的圖像作為控件深度排序學習模型的輸入,經模型計算后,將評分最高的控件圖像作為點擊動作的參數。
下面將介紹指尖移動速度的計算、屏幕變化特征的提取以及圖像控件的檢測。
(1)計算指尖移動速度
本文采用基于YCrCb顏色空間的膚色[7]檢測方法來獲取手部輪廓,取輪廓最高點作為指尖位置,根據指尖位置的變化進而計算指尖移動速度。為了處理手部區域中局部位置顏色的差異,并使每個位置都具有一定的容忍度,設置膚色矩陣區間為:
color_rangeskin=(Ylow,Yhigh)(Crlow,Crhigh)(Cblow,Cbhigh)(1)
對于圖像中的每個像素點,如果其Y、Cr和Cb分量的顏色值都在color_rangeskin區間范圍內,那么該像素點被視為皮膚檢測的候選像素點,將該像素點設置為白色,否則將該像素點設置為黑色。通過對該二值圖像進行輪廓檢測得到手部輪廓圖。取該圖中最高的頂點坐標作為指尖坐標。計算相鄰兩幀圖像中指尖坐標的距離Δd,根據該測試視頻的幀率fps,計算指尖的移動速度vfinger,具體計算公式為:
vfinger=Δd·fps (2)
(2)屏幕變化特征提取
首先,使用基于邊緣檢測與輪廓提取算法獲取視頻中屏幕區域的四個頂點坐標。接著,為了校正由于拍攝角度而引起的圖像中屏幕區域的畸變,利用透視變化[8]算法獲取屏幕區域正視圖,從而更準確地呈現屏幕圖像內容,如圖3所示。最后用屏幕變化差異值來描述屏幕變化特征。計算透視變換對應坐標,進而得到屏幕區域正視圖,從而更準確地呈現圖像內容。透視變換坐標計算公式為:
x′,y′,w=[x,y,1]M11M12M13M21M22M23M31M32M33 (3)
u=x′w,v=y′w (4)
其中,x 、y 為原始圖像坐標,u 、v 為經透視變換后在新圖像中的坐標。
本文采用了對比相鄰兩幀屏幕區域正視圖的結構相似度SSIM[9]的補作為兩張圖像的差異值diff,用差異值來描述屏幕變化特征。相較于其他相似度計算方法,SSIM考慮了圖像的結構信息,而不僅僅是像素值的相似度。它通過比較圖像的亮度、對比度和結構來評估圖像的相似度,更符合人眼對圖像質量的感知。通過采用SSIM,可以更準確地衡量圖像之間的相似程度,對SSIM取補從而更好地理解和描述屏幕區域的變化特征。diff的具體計算公式如下所示。
diff=1-f(l(i,j),c(i,j),s(i,j)) (5)
其中,l、c、s分別表示亮度相似度、對比度相似度以及結構相似度。
(3)圖像控件檢測
本文利用Canny邊緣檢測[10]算法對圖像中控件進行檢測。在進行邊緣檢測之前,首先對屏幕區域圖像進行預處理,去除圖像中噪聲以及增強圖像中的邊緣特征,可以提高后續邊緣檢測的準確性。然后進行邊緣檢測和輪廓提取。因已經得到屏幕區域的正視圖,控件的外接矩形一般呈現為與屏幕邊界相對平行的規則矩形,所以最終取各輪廓的外接矩形作為整體控件。
2.2 控件排序特征分析
從應用程序層面考慮,可以通過根據顏色和局部匹配特征等信息對控件進行評分,進而對控件進行排序。
控件圖像很可能與響應界面圖像采用相同的色彩主題。圖4中展示的兩個應用的應用圖標與響應界面的顏色主題一致,分別為紅和藍。
對于非顏色的圖標控件,比如文字控件,響應界面中很可能包含該文字信息。圖5REF_Ref1640h展示了文字控件與響應界面之間的關聯性。
然而,深度學習模型具有提取更多特征的能力,因此可以更全面地找到控件和響應界面之間的關聯性并進行排序。
2.3 控件排序算法實現
本文采用深度排序學習算法對一個或多個候選控件進行評分和排序,取最高評分控件的圖像作為點擊動作參數。
該模型以候選控件圖像與響應界面圖像組合編碼的224×224×6圖像矩陣作為輸入。其中,先以候選控件圖像為中心填充,使其與響應界面圖像具有相同的大小。填充部分使用黑色(0值)進行填充。然后,將填充后的圖像與響應界面圖像進行拼接,并經過resize處理,完成編碼過程。
接著,使用深度學習網絡模型ResNet 50[11]對圖像進行特征提取得到特征向量。對于這種選擇唯一正確控件的任務,采用Pointwise排序學習方式將每個候選控件作為獨立的樣本進行處理,并為其分配一個分數來表示其是否為目標控件。分數為1表示為目標控件,分數為0表示非目標控件。通過訓練一個二分類模型,可以為每個候選控件預測一個分數,然后選擇分數最高的候選控件作為目標控件。圖6展示了控件排序算法的處理流程。
本文采用二元交叉熵(Binary Cross Entropy,BCE)作為損失函數。BCE損失函數用于衡量模型預測結果與真實標簽之間的差異。BCE損失函數的計算公式如下:
L=-1N∑Ni=1yi·lg(p(yi))+
(1-yi)·lg(1-p(yi))(6)
其中,yi是第i個候選控件的二元標簽,取1或者0。p(yi)是輸出屬于標簽的概率。N表示模型預測控件圖像的組數。
3 實驗分析
3.1 實驗設置
本實驗分析指尖與指腹偏差參數和觸控區域面積大小參數對實驗結果的影響,并確定實驗條件中最佳的組合。首先,本文設定了三個不同的指尖與指腹偏差數值:2 mm、4 mm和6 mm,并通過實驗來確定能夠產生最佳實驗結果的偏差參數。其次,考慮到移動觸屏的手指觸發尺寸[12]通常約為1 cm2,并通過觀察用戶與設備的交互過程,發現人機交互的接觸面積會隨著按壓力度的增加而變大。故本文設置了兩種不同尺寸的觸控區域:邊長為1 cm和1.2 cm的正方形區域。通過比較不同區域大小對實驗結果的影響,來確定最適合的觸控區域大小。
3.2 實驗對象
使用本文提出的點擊動作參數獲取方法對安卓系統中設置、微信、京東等6個應用程序的人工測試視頻進行測試,共涉及187個點擊動作。
3.3 實驗指標
以點擊動作參數獲取準確率為評價指標。如果點擊程序計算得到的控件圖像與點擊真實目標控件的響應一致,則認為獲取成功,否則獲取失敗。點擊動作參數獲取準確率的計算公式如下:
準確率=成功案例數量總案例數量 (7)
3.4 實驗結果與分析
根據實驗設定的不同參數,使用本文提出的方法對上述視頻進行點擊動作參數獲取,結果如表1所示。
根據上表可知,在偏差參數為4 mm和觸控區域邊長為1 cm的組合實驗條件下,點擊動作參數獲取的準確率最高。當偏差參數設置過小或過大時,程序計算得到的指腹觸控位置可能偏離目標控件的中心,進而使得獲取的觸控區域不夠準確。此外,如果使用較大的觸控區域來獲取控件,可能會導致觸控區域內包含多個控件的案例增加或包含更多的其他非目標控件,增加了控件排序算法的處理難度,進一步降低了點擊參數獲取的準確率。因此,為了獲得最佳結果,需要選擇合適的偏差參數和觸控區域大小參數。
對在偏差參數為4 mm和觸控區域邊長為1 cm的組合實驗條件下的實驗結果進行分析,發現在程序生成的控件圖像中,與真實點擊目標控件的響應完全一致的有169個,準確率為90.4%。根據程序計算手指與屏幕的接觸區域,在176個案例中,接觸區域包含一個或多個控件,通過控件深度排序算法選擇的控件可表達實際目標控件的準確率為91.5%。其中,在141個案例中,接觸區域僅包含一個控件,參數獲取準確率為93.6%;在35個案例中,接觸區域包含了多個控件,參數獲取準確率為82.9%。該實驗數據表明,在控件檢測正確的情況下,本文所提出的方法在選擇點擊動作的目標控件方面非常可靠,能夠達到較高的準確率。
此外還有11個案例,由于控件檢測算法失效,將觸控區域直接取為目標控件圖像,這種情況下的準確率為72.7%。圖7展示了控件檢測失敗的情況,根據觸控區域得到僅包含一個控件的圖像可以成功觸發點擊動作,得到與點擊真實目標控件一樣的響應。但是,若根據觸控區域得到的圖像包含多個控件,則無法根據該圖像判斷真正的目標控件。
總體來說,本文使用基于深度排序學習的點擊動作參數獲取方法來獲取表達實際動作目標的控件圖像具有較高的準確率。在單個攝像機的錄制環境中進行自動化GUI測試腳本錄制,具有良好的應用前景。
4 結 論
本文提出了一種基于深度排序學習的腳本錄制動作參數獲取方法。該方法適用于從單攝視頻中提取測試人員與設備交互的點擊目標控件圖像。在安卓手機系統中多個應用程序的實驗研究表明,該方法獲取點擊動作參數具有較高的準確率,為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].計算技術與自動化,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.