毛群,王微微,尤楓,趙瑞蓮,李征
Android應用的用戶行為模式挖掘及復用方法
毛群,王微微*,尤楓,趙瑞蓮,李征
(北京化工大學 信息科學與技術學院,北京 100029)( ? 通信作者電子郵箱wangww@mail.buct.edu.cn)
軟件測試是保障Android應用質量的有效手段,而理解Android應用的功能作為Android測試過程的基礎,旨在深入探究應用的業務邏輯并發現其功能問題,在測試中尤為重要。用戶行為模式可充分輔助測試人員理解Android應用功能,從而提高測試效率。基于“相似Android應用共享用戶行為模式”的構想,提出一種Android應用的用戶行為模式挖掘及復用方法,以降低Android應用測試成本并提高測試效率。具體而言,針對待測Android應用,從其相似Android應用挖掘出用戶行為模式;然后利用基于語義的事件模糊匹配策略為待測應用尋找對應事件,并基于用戶圖形界面(GUI)模型的最優路徑選擇策略為待測應用生成目標事件序列,從而實現相似應用間的用戶行為模式復用。針對三類應用的32種用戶行為模式進行實驗,結果表明,87.4%的行為模式可在相似Android應用上被完整復用,并且被復用的行為模式可有效覆蓋待測應用中90.2%的重要狀態。可見,所提方法為Android應用測試提供了有效支撐。
Android應用;Android應用測試;用戶行為模式;模式挖掘;模式復用
智能手機和平板電腦的普及引起了開發人員對移動應用開發的極大興趣,隨著移動平臺的蓬勃發展,移動應用的數量和功能復雜性也大幅提升。根據Gartner公司的調研報告[1],截至2020年的第二季度,Android系統在智能手機市場的占有率達到了87%,是移動市場的主流。相應地,2020谷歌開發者大會表示,Google Play應用商店中安卓應用的下載量突破了485億。因此,如何保障Android應用的質量已成為開發和測試人員關注的重點。
軟件測試是驗證Android應用功能和可用性的重要手段,而理解應用程序的功能作為軟件測試過程的基礎,旨在深入探究應用的業務邏輯,發現其功能問題,在測試中尤為重要。理解應用程序功能最直接的方式即為在實際使用場景下,用戶與應用進行真實交互,其交互序列稱為用戶軌跡。用戶軌跡雖可從用戶角度,給出應用的功能業務邏輯,但未深入分析用戶軌跡之間的內在關聯。為此,學者們又提出了用戶行為模式[2-4],用以描述用戶軌跡之間的關聯關系,提取其行為共性,為應用程序的功能測試提供了支撐。
在Web和Android應用測試領域,均有借助用戶軌跡和用戶行為模式提高測試有效性的研究成果[5-13]發表。在Web應用測試領域,Ermuth等[14]采用改進的閉包序列模式挖掘技術CloSpan(Closed Sequential pattern mining)[15],從Web應用的用戶軌跡中推導其用戶行為模式,并結合隨機測試在應用的模型上指導測試用例生成,以生成復雜且真實的事件序列。在Android應用測試領域,Mao等[16]利用遺傳算法從眾包測試得到的用戶軌跡上學習通用的用戶行為模式,并將其用于基于多目標搜索的測試序列生成及優化[17]中,以提高Android應用的Activity覆蓋率。可以看出,用戶軌跡和用戶行為模式通過借助人類經驗深入挖掘程序業務邏輯,可有效提高測試有效性。
若對于每個未知應用,均采用用戶交互的方式理解應用程序功能勢必會帶來極大的開銷,這不僅增加了人工成本,還會影響測試效率。近期研究[18-21]表明,相似Android應用共享相似功能和工作流,即相似應用共享用戶行為模式。用戶行為模式的復用不僅可節約人工成本,提高測試效率,還為理解應用程序提供了一種新途徑。然而,現有研究大多關注用戶軌跡和用戶行為模式指導的測試用例生成,還尚未有Android應用的用戶行為模式復用研究。
因此,本文提出一種Android應用的用戶行為模式復用方法,即利用相似的已知應用用戶行為模式,為待測應用生成事件序列,以自動理解待測應用的功能,提高Android應用的測試效率。Android應用的用戶行為模式復用雖有理論依據,但仍面臨諸多挑戰:一是不同Android應用的用戶圖形界面(Graphical User Interface, GUI)差異使得用戶行為模式復用時,事件難以直接匹配;二是不同Android應用的工作流之間存在輕微差異,導致與用戶行為模式相匹配的待測應用事件序列不連續。如何為相似的Android應用自動構建事件映射關系,并為待測應用生成可行連續的事件序列,是Android應用用戶行為模式復用的關鍵問題。
考慮到相似Android應用上實現相同功能的事件,其綁定的控件文本信息詞法不同但語義相似;且待測應用的GUI模型可有效輔助可行連續的事件序列生成。因此,本文提出一種結合事件語義與GUI模型的Android應用用戶行為模式挖掘及復用方法。具體而言,基于已知Android應用的用戶軌跡,采用序列模式挖掘技術從中挖掘其用戶行為模式。在此基礎上,提出基于語義的事件模糊匹配策略和基于GUI模型的最優路徑選擇策略,將用戶行為模式復用到相似待測Android應用上,輔助待測應用的功能理解,為Android應用測試提供支持。
本文方法主要分為Android應用的用戶行為模式挖掘和相似Android應用間的用戶行為模式復用兩個部分,其中,用戶行為模式復用又可分為事件匹配和序列生成兩個階段。本文方法的框架如圖1所示,包含以下3個模塊:
1)Android應用的用戶行為模式挖掘。用戶軌跡和其用戶行為模式本質上都是用戶交互產生的行為序列,可采用序列模式挖掘技術,從Android應用的用戶軌跡中挖掘該應用的用戶行為共性,形成用戶行為模式,進而為后續的相似Android應用間的用戶行為模式復用提供數據基礎。
2)基于語義的事件模糊匹配。從已知應用的用戶行為模式和待測應用的GUI模型中提取事件,分別得到源事件序列和目標事件集合。對于源事件序列中的每個源事件,在目標事件集合中尋找與之匹配的目標事件加入候選事件集,由此得到與源事件序列對應的候選事件集。
3)基于GUI模型的事件序列生成。基于候選事件集,借助待測Android應用的GUI模型,為不連續的候選事件間尋找最優可行路徑,以生成連續可執行的目標事件序列。

圖1 用戶行為模式挖掘及復用方法框架
本文利用動態分析技術收集Android應用的用戶軌跡,依據用戶軌跡的序列特性,提出一種基于序列模式挖掘技術的用戶行為模式挖掘方法。
Android應用的用戶軌跡和用戶行為模式的相關定義如下:

定義3 用戶行為模式。用戶行為模式是在用戶軌跡集合中頻繁出現的子序列,且用戶行為模式之間不存在包含關系。給定用戶軌跡集合和最小支持度,則頻繁子序列集合記作:

用戶行為模式集合記作:

Android應用的用戶行為模式挖掘問題可以表示為給定已知Android應用的用戶軌跡集合和最小支持度閾值,挖掘得到支持度大于的用戶行為模式。
為收集用戶軌跡,需獲取用戶與Android應用之間的動態交互行為。Appium[22]是目前最強大的移動應用自動化測試框架,可供用戶記錄事件序列的測試腳本。為獲取用戶軌跡,本文采用Appium記錄用戶與Android應用之間的動態交互行為。由于Appium只能捕獲事件信息,無法捕獲狀態信息,因此需要對錄制的測試腳本在事件前后插樁,并執行插樁后的腳本以獲取用戶觸發的事件以及事件觸發前后的應用狀態,從而構成用戶軌跡。用戶對Android應用的一次訪問過程為一條用戶軌跡,不同用戶的多次訪問共同構成用戶軌跡集合,以用于用戶行為模式挖掘。
用戶軌跡是用戶與Andoird應用交互產生的行為序列,故用戶行為模式挖掘問題與序列模式挖掘問題相似,可以采用序列模式挖掘技術解決用戶行為模式挖掘問題。CloFAST(Closed FAST sequence mining algorithm based on sparse id-lists)[23]是一種閉序列模式挖掘算法,可通過空間探索改善、支持度計數和搜索空間修剪來挖掘獲得更長的閉序列。由于用戶軌跡結構復雜,在使用CloFAST對用戶軌跡集合挖掘用戶行為模式之前,需要對用戶軌跡進行預處理,即識別相似的軌跡元素并用相同的標記來表示它們。在此基礎上,利用CloFAST挖掘用戶行為模式。對于CloFAST的挖掘結果,由于閉序列模式存在冗余,本文將過濾被其他序列模式包含的序列模式,而保留較長的序列模式作為后續復用的用戶行為模式。
由于不同Android應用上有實現相同功能的事件,其事件描述雖詞法不同但語義相似;因此,本文通過分析事件的語義特征,衡量事件之間的語義相似性,以實現相似應用間的事件匹配。
由Android應用事件的定義1可知,事件涉及的特征包括事件類型、事件觸發時所在的頁面以及事件綁定的GUI控件屬性。其中,事件的語義特征主要體現在和上。對于,它的語義來源于GUI控件的若干屬性值:1),開發人員對GUI控件的賦值通常能反映其提供的功能;2),一般顯示在GUI控件上,表示控件的名稱;3),指定GUI控件的文本描述,幫助用戶理解控件的功能;4)如果GUI控件沒有設置屬性和屬性,則需要從周圍一定范圍內的GUI控件上獲取描述信息;5),編輯控件一般會設置此屬性,以顯示給用戶的提示信息;6),帶圖像的GUI控件設置此屬性為圖像文件名,以鏈接相應的要顯示的圖像,由于圖像內容通常會反映在圖像文件名中,因此也應予以考慮。對于,其語義源于頁面的Activity組件名,其組件名通常能反映此頁面提供的主要功能,故需加以考慮。
為了建立源事件s和目標事件t之間的匹配關系,需要先度量s和t之間的事件相似度。由于事件類型可以在粗粒度上區分事件,GUI控件的屬性值和事件所在頁面的Activity組件名可從語義上評估事件之間的功能相似性,因此,本文考慮1)事件類型、2)事件綁定的GUI控件的屬性和3)事件觸發時頁面的Activity組件名這3個方面,計算事件之間的相似度,公式如下:

其中:s和t分別是s和t的事件類型;semt(s,t)是s和t的屬性之間的語義相似度;act(s,t)是s和t的Activity組件名之間的語義相似度;和分別是公式中semt(s,t)和act(s,t)的權重,并且和之和等于1。
計算事件相似度之前,需要先計算兩個語義相似度semt(s,t)和act(s,t)。對于semt(s,t),相似事件綁定的GUI控件在語義上相似,且其語義有多個屬性來源,例如,TextView的反映其功能,而與之匹配的ImageView的圖像文件名反映其功能。因此,本文提出一種事件模糊匹配策略,該策略考慮不同屬性之間的交叉配對,以提高事件匹配的準確度。

由于頁面的Activity組件名和GUI控件的屬性一樣,均可預處理為一組文本標簽,act(s,t)的計算與屬性對(s,t)的語義相似度計算相似。在計算得到semt(s,t)和simact(s,t)之后,根據式(4),即可計算出s和t之間的事件相似度。對于用戶行為模式中的每個源事件s,將其與待測應用上的所有目標事件進行相似度計算,相似度高于預設閾值的事件都作為s匹配的候選事件,以此作為后續目標事件序列生成的基礎。
在事件匹配階段,本文為用戶行為模式中的每個源事件構建一個候選事件集,則可以得到一個與用戶行為模式的源事件序列對應的候選事件集序列。由于相似Android應用之間的工作流差異,導致待測應用上的前后序候選事件之間不連續。本節旨在利用待測應用的GUI模型建立候選事件之間的連續關系,擴展生成可執行的目標事件序列。
定義4 GUI模型。Android應用的GUI模型本質上是有限狀態機(Finite State Machine, FSM),可由五元組(,0,,,)表示,是狀態集合,0是模型的初始狀態,是模型的終止狀態集合,是事件集合,是遷移集合,其中每條遷移可表示為(s,,t),s和t分別是源狀態和目標狀態,是觸發后致使s轉換成t的事件。


圖2 Android應用的局部GUI模型
為了從候選路徑中選出最優路徑以構成目標事件序列,本文提出一種最優路徑選擇策略,即為候選路徑進行優先級排序,優先級最高的候選路徑將被選擇作為目標事件序列的片段。候選路徑的優先級主要考慮兩方面:1)更接近源事件語義的候選事件應被優先選擇;2)實現相同功能的邏輯步驟在數量上接近,即連接候選事件的路徑應盡可能短。因此,候選路徑的優先級不僅取決于候選事件的語義相似性,還取決于候選路徑的長度。對于每條候選路徑,在事件相似度的基礎上引入路徑長度計算路徑優先級,路徑優先級計算公式如下:


在最優路徑選擇策略的指導下,目標事件序列生成的流程如下:對于用戶行為模式中源事件匹配得到的候選事件集,利用待測應用的GUI模型生成當前狀態到其中候選事件所在遷移的候選路徑,并選擇優先級最高的候選路徑以擴展目標事件序列。然后執行該候選路徑以驗證其可行性,若該路徑是可執行的,則繼續處理與下一個源事件匹配的候選事件;否則,該路徑將被標記為不可行,且選擇次優的候選路徑。若所有候選路徑都不可行,則將回溯到上一個源事件的候選事件集,并選擇另一條次優可行的候選路徑加入目標事件序列。重復此過程,直至用戶行為模式中所有源事件對應的候選事件集都被遍歷,且最終得到一條可執行的目標事件序列。
本文的用戶行為模式復用算法主要分為事件匹配和序列生成兩個階段。在事件匹配階段,需將用戶行為模式中的每個源事件與待測應用上的所有目標事件進行事件相似度計算,因此,其時間復雜度為(*),是用戶行為模式中的源事件數量,是待測應用上的目標事件數量;在序列生成階段,假設候選事件集序列包含(≤)個候選事件集,每個候選事件集中包含個候選事件,對于每個候選事件,在GUI模型上可找到條從當前狀態到該候選事件的候選路徑,由于算法為每個候選路徑計算路徑優先級并排序驗證路徑可行性,排序的時間復雜度是(log),因此在最好情況下(即不存在回溯),算法的時間復雜度為(*(*)*log(*)),在最壞情況下(即處理每個候選事件集都需要回溯),算法的時間復雜度為(!*(*)*log(*))。因此,在最壞情況下,相似Android應用間的用戶行為模式復用方法算法的整體復雜度為(*+!*(*)*log(*))。
為驗證本文Android應用的用戶行為模式挖掘與復用方法的有效性,從用戶行為模式挖掘方法的合理性、基于語義的事件模糊匹配策略的準確性以及用戶行為模式復用方法的有效性三個方面出發,提出以下研究問題:
研究問題1 從Android應用的用戶軌跡中挖掘得到的用戶行為模式是否可代表此類Android應用的典型功能?
研究問題2 基于語義的事件模糊匹配策略能否準確匹配事件?
研究問題3 本文用戶行為模式復用方法能否為待測Android應用生成完整且有效的目標事件序列?
針對上述研究問題,本文選取來自三種不同類型的12個開源Android應用進行實驗,其詳細信息如表1所示。每種類型有4個Android應用,其中,S1、N1和W1作為已知應用,其余為待測應用。為收集已知應用的用戶軌跡,5個與本研究無關的人員使用Appium與其交互,他們對應用的訪問過程完全依賴于其自身的使用習慣。另外,實驗中最小支持度與用戶軌跡總數的比值(相對支持度)設為0.1,事件相似度閾值設為0.5,且事件相似度度量公式中的參數和分別設為2/3和1/3。

表1 實驗中使用的Android應用
為了評價基于語義的事件模糊匹配策略的準確性,本文以事件匹配的精確率和召回率為評價指標,其中精確率表示正確匹配的事件占所有實際匹配事件的比例,召回率表示正確匹配的事件占所有預期匹配事件的比例。事件匹配結果可細分為以下4種情況:1)正確匹配事件占比,即用戶行為模式中的源事件正確匹配到預期目標事件的占比(即(True Positive));2)錯誤匹配事件占比,即用戶行為模式中的源事件沒有匹配到預期目標事件,但匹配到了其他目標事件的占比(即(False Positive));3)正確未匹配事件占比,即用戶行為模式中的源事件沒有匹配到目標事件,且待測應用上不存在預期目標事件的占比(即(True Negative));4)錯誤未匹配事件占比,即用戶行為模式中的源事件沒有匹配到目標事件,但待測應用上存在預期目標事件的占比(即(False Negative))。用以上指標計算事件匹配的精確率和召回率,其中:


為了評價用戶行為模式復用方法的有效性,本文考慮兩個方面,一是能否完整復用用戶行為模式,二是復用的用戶行為模式能否表征待測應用的常用行為。
用戶行為模式復用的完整性主要反映在用戶行為模式被完整復用的占比(Completely-reused Rate)和被部分復用的占比(Partially-reused Rate)。具體而言,表示已知應用的用戶行為模式在待測應用上被完全重現的占比,而表示已知應用的用戶行為模式在待測應用上被部分重現的占比。
而復用的行為模式能否表征待測應用的常用行為主要反映在生成的目標事件序列是否可以覆蓋待測應用的重要狀態。一般網絡中,介數中心性(Betweenness Centrality)可表征任意節點對之間的最短路徑需通過該節點的概率,標志著該節點對節點間通信的控制能力。相應地,在Android應用的GUI模型中,本文認為具有較高值的狀態更有可能被訪問,即該狀態在模型中的重要度更高。因此,本文采用狀態的介數中心性來表示該狀態的重要度。為了評價待測應用的目標事件序列,需計算待測應用GUI模型上所有狀態的值,并按值從高到低將狀態排序。根據值將狀態分為3個重要度級別:級別1的范圍是狀態的前20%,級別2的范圍是狀態的前20%至50%,其余狀態被劃分為級別3。若目標事件序列對重要度級別較高的狀態覆蓋更多,則表明本文的用戶行為模式復用方法可有效覆蓋待測應用的常用行為。
用戶行為模式是Android應用的常見用戶行為,標志著該應用的常用/典型功能。用戶行為模式挖掘方法的合理性在于,從應用的用戶軌跡中挖掘得到的用戶行為模式能否代表該應用的常用/典型功能。為了評估用戶行為模式挖掘方法的合理性,本文分析并概述了挖掘得到的用戶行為模式所涉及的功能。
表2為已知應用的用戶軌跡和用戶行為模式挖掘的結果。

表2 用戶軌跡和用戶行為模式挖掘的結果
可以看出,對于已知應用S1、N1和W1,分別從收集的用戶軌跡中挖掘出了13、5和14種用戶行為模式。以S1為例,通過分析該應用的13種用戶行為模式,可以總結出它們代表的7種典型功能,分別是對特定列表或商品進行添加、刪除和編輯操作,以及對列表中的商品進行排序。顯然,這些功能在購物清單類應用中普遍存在,很大程度上代表了此類應用的典型功能。N1和W1的實驗結果與S1一致,進一步證實了用戶行為模式確實能代表同類型應用的典型功能。需要注意的是,典型功能的數量不等于模式的數量,因為存在一種常見情況,即使多種用戶行為模式的事件序列存在細微差異,但它們依然實現相同的功能。例如,S1中商品的刪除方式有兩種:一種是長按商品,然后點擊“刪除”操作;另一種是選中商品,打開選項菜單,然后點擊“刪除選中項目”操作。這兩種刪除方式都是實現商品刪除功能的常見用戶行為模式。
為了評估基于語義的事件模糊匹配策略的準確性,本文在事件匹配階段分別對比了使用事件模糊匹配策略和不使用事件模糊匹配策略的結果,其事件匹配結果的詳細信息如表3所示。總體而言,在事件匹配階段使用事件模糊匹配策略平均達到了74.3%的精確率和94.7%的召回率,證明了事件模糊匹配策略的準確性。具體來說,對于購物清單類應用,事件模糊匹配策略平均將正確匹配事件占比提高了8.2個百分點,將錯誤匹配事件占比降低了8.2個百分點;對于筆記類應用,上述數值分別為12.8個百分點和3.9個百分點;對于天氣類應用,上述數值分別為38.5個百分點和9.9個百分點。結果表明,事件模糊匹配策略能有效提高正確匹配的事件占比,降低有預期目標事件卻未成功匹配的事件占比。進而,對于購物清單類應用,事件模糊匹配策略將事件匹配的精確率和召回率分別提高2.1個百分點和10.9個百分點;對于筆記類應用,上述數值分別為10.5個百分點和8.6個百分點;對于天氣類應用,上述數值分別為40.4個百分點和31.9個百分點。上述結果進一步證明了事件模糊匹配策略對事件匹配準確性的提升能力。

表3 使用和不使用模糊策略的事件匹配結果 單位:%
為了整體評估本文的用戶行為模式復用方法的有效性,本文統計了完整復用和部分復用的用戶行為模式數量,以及生成的目標事件序列對待測應用GUI模型的狀態覆蓋率。
圖3展示了用戶行為模式復用的完整性結果。可以看出,對于每個待測應用,其與之和都為100%,說明實驗中涉及的用戶行為模式均被復用。總體而言,和的平均值分別是87.4%和12.6%,這表明本文的用戶行為模式復用方法可以完整復用已知應用的絕大多數用戶行為模式。
此外,通過分析生成的目標事件序列,發現用戶行為模式中源事件的平均值為2.4%,相較于事件匹配階段的3.5%,降低了1.1個百分點,這說明在事件匹配階段的錯誤未匹配事件在序列生成階段被成功復用。具體地,對比圖3中的與表3中的,可以發現,對于待測應用N2,在事件匹配階段,有3.9%的源事件有預期目標事件卻未在待測應用上匹配到任何目標事件,然而,經過序列生成階段后,N2的達到了100%,說明在序列生成階段,錯誤未匹配事件對應的預期目標事件被準確補充至目標事件序列中,從而使得用戶行為模式中的所有源事件被復用。由此可以證明,在目標事件序列生成階段,借助待測應用的GUI模型可以在序列中補充一些錯誤未匹配事件的預期目標事件,從而提升用戶行為模式的完整復用率。

圖3 用戶行為模式復用的完整性結果
表4展示了生成的目標事件序列對目標應用的3個重要度級別的狀態覆蓋率。平均來說,生成的目標事件序列對級別1、級別2和級別3的狀態覆蓋率分別是90.2%、73.0%和65.7%。可以看出,3個級別的狀態覆蓋率呈遞減關系,這表明生成的目標事件序列更傾向于覆蓋重要度更高的狀態,即更可能被用戶訪問的狀態。因此,本文的用戶行為模式復用方法可有效生成覆蓋待測應用常用行為的目標事件序列。

表4 目標事件序列對三個重要度級別的狀態覆蓋率 單位:%
為了幫助用戶快速理解新應用的功能,提升測試效率,本文提出一種Android應用的用戶行為模式挖掘與復用方法。在模式挖掘階段,采用閉包序列模式挖掘技術CloFAST從已知應用的用戶軌跡中挖掘用戶行為模式;在模式復用階段,利用基于語義的事件模糊匹配策略,實現相似Android應用的事件匹配,利用基于GUI模型的最優路徑選擇策略,建立候選事件之間的連續關系,為待測應用生成連續可執行的事件序列,實現相似Android應用的用戶行為模式復用。實驗結果表明,挖掘得到的用戶行為模式能代表同類型應用的典型功能;基于語義的事件模糊匹配策略能夠有效提高事件匹配的準確性,且絕大部分用戶行為模式可以被完整地復用,可有效覆蓋待測應用的常用行為。
在未來工作中,我們計劃將Android應用的用戶手勢納入研究,以擴展更復雜的用戶交互場景;并且本文的研究成果可以與現有的Android自動化測試方法結合使用,提升其測試效果及效率。
[1] Gartner, Inc. Gartner says global smartphone sales declined 20% in second quarter of 2020[EB/OL]. (2020-08-25) [2021-02-12].https://www.gartner.com/en/newsroom/press-releases/2020-08-25-gartner-says-global-smartphone-sales-declined-20--in-.
[2] 劉洪輝,吳岳芬. 用戶行為模式挖掘問題的研究[J]. 計算機技術與發展, 2006, 16(5):50-52, 55.(LIU H H, WU Y F. Research on user’s behavior pattern mining[J]. Computer Technology and Development, 2006, 16(5): 50-52, 55.)
[3] 楊風雷,閻保平. Web用戶行為模式挖掘研究[J]. 微電子學與計算機, 2008, 25(11):146-149.(YANG F L, YAN B P. Research on Web usage mining[J]. Microelectronics and Computer, 2008, 25(11): 146-149.)
[4] 姬浩博,王俊紅. 一種改進的PrefixSpan算法及其在Web用戶行為模式挖掘中的應用[J]. 計算機科學, 2016, 43(1):25-29.(JI H B, WANG J H. Research on improved PrefixSpan algorithm and its application in Web user behavior patterns mining[J]. Computer Science, 2016, 43(1): 25-29.)
[5] BROOKS P A, MEMON A M. Automated GUI testing guided by usage profiles[C]// Proceedings of the 22nd ACM/IEEE International Conference on Automated Software Engineering. New York: ACM, 2007: 333-342.
[6] LORENZOLI D, MARIANI L, PEZZè M. Automatic generation of software behavioral models[C]// Proceedings of the 30th International Conference on Software Engineering. New York: ACM, 2008: 501-510.
[7] WANG W W, GUO J X, LI Z, et al. EFSM-oriented minimal traces set generation approach for Web applications[C]// Proceedings of the IEEE 42nd Annual Computer Software and Applications Conference. Piscataway: IEEE, 2018: 12-21.
[8] WANG W W, GUO X H, Z. LI Z, et al. Test case generation based on client-server of Web applications by memetic algorithm[C]// Proceedings of the IEEE 30th International Symposium on Software Reliability Engineering. Piscataway: IEEE, 2019: 206-216.
[9] LINARES-VáSQUEZ M, WHITE M, BERNAL-CáRDENAS C, et al. Mining Android app usages for generating actionable GUI-based execution scenarios[C]// Proceedings of the IEEE/ACM 12th Working Conference on Mining Software Repositories. Piscataway: IEEE, 2015: 111-122.
[10] ERNST M D, COCKRELL J, GRISWOLD W G, et al. Dynamically discovering likely program invariants to support program evolution[J]. IEEE Transactions on Software Engineering, 2001, 27(2): 99-123.
[11] ELBAUM S, ROTHERMEL G,KARRE S, et al.Leveraging user-session data to support Web application testing [J]. IEEE Transactions on Software Engineering, 2005, 31(3):187-202.
[12] MILANI FARD A, MIRZAAGHAEI M, MESBAH A. Leveraging existing tests in automated test generation for Web applications[C]// Proceedings of the 29th ACM/IEEE International Conference on Automated Software Engineering. New York: ACM, 2014: 67-78.
[13] LIU P, ZHANG X Y, PISTOIA M, et al. Automatic text input generation for mobile testing[C]// Proceedings of the IEEE/ACM 39th International Conference on Software Engineering. Piscataway: IEEE, 2017: 643-653.
[14] ERMUTH M, PRADEL M. Monkey see, monkey do: effective generation of GUI tests with inferred macro events[C]// Proceedings of the 25th International Symposium on Software Testing and Analysis. New York: ACM, 2016:82-93.
[15] YAN X F, HAN J W, AFSHAR R. CloSpan: mining closed sequential patterns in large datasets[C]// Proceedings of the 3rd SIAM International Conference on Data Mining. Philadelphia, PA: Society for Industrial and Applied Mathematics, 2003: 166-177.
[16] MAO K, HARMAN M, JIA Y. Crowd intelligence enhances automated mobile testing[C]// Proceedings of the 32nd IEEE/ACM International Conference on Automated Software Engineering. Piscataway: IEEE, 2017: 16-26.
[17] MAO K, HARMAN M, JIA Y. Sapienz: multi-objective automated testing for android applications[C]// Proceedings of the 25th International Symposium on Software Testing and Analysis. New York: ACM, 2016: 94-105.
[18] RAU A, HOTZKOW J, ZELLER A. Transferring tests across Web applications[C]// Proceedings of the 2018 International Conference on Web Engineering, LNCS 10845/LNISA 10845. Cham: Springer, 2018: 50-64.
[19] HU G, ZHU L J, YANG J F. AppFlow: using machine learning to synthesize robust, reusable UI tests[C]// Proceedings of the 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering. New York: ACM, 2018: 269-282.
[20] LIN J W, JABBARVAND R, MALEK S. Test transfer across mobile apps through semantic mapping[C]// Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering. Piscataway: IEEE, 2019: 42-53.
[21] BEHRANG F, ORSO A. Test migration between mobile apps with similar functionality[C]// Proceedings of the 34th IEEE/ACM International Conference on Automated Software Engineering. Piscataway: IEEE, 2019: 54-65.
[22] OpenJS Foundation. Appium: mobile app automation made awesome[EB/OL]. [2020-08-25].http://appium.io.
[23] FUMAROLA F, LANOTTE P F, CECI M, et al. CloFAST: closed sequential pattern mining using sparse and vertical id-lists[J]. Knowledge and Information Systems, 2016, 48(2):429-463.
[24] MIKOLOV T, CHEN K, CORRADO G, et al. Efficient estimation of word representations in vector space[EB/OL]. (2013-09-07) [2020-08-25].https://arxiv.org/pdf/1301.3781.pdf.
MAO Qun, born in 1997, M. S. candidate. Her research interest include software testing.
WANG Weiwei, born in 1990, Ph. D., lecturer. Her research interests include Web application software testing, software modeling.
YOU Feng, born in 1963, M. S., senior engineer. His research interests include software testing, software reliability, Web user behavior analysis.
ZHAO Ruilian, born in 1964, Ph. D., professor. Her research interests include software testing, software reliability.
LI Zheng, born in 1974, Ph. D., professor. His research interest include software regression testing.
Pattern mining and reuse method for user behaviors of Android applications
MAO Qun, WANG Weiwei*, YOU Feng, ZHAO Ruilian, LI Zheng
(,,100029,)
Software testing is an effective way to ensure the quality of Android applications. Understanding the functions of Android applications is the basis of the Android testing process. It aims to deeply explore the application’s business logic and reveal its functional defects, playing an important role in testing. User behavior patterns can assist testers in understanding an Android application’s functions, thereby improving test efficiency. Based on the idea “similar Android applications share user behavior patterns”, a user behavior pattern mining and reuse method was proposed to reduce the cost of Android application testing and improve the testing efficiency. Specifically, for the Android application under test, the user behavior patterns from a similar Android application were mined. Then, the semantic-based event fuzzy matching strategy was used to search the corresponding events for the application under test, and the Graphical User Interface (GUI) model based optimal path selection strategy was used to generate target event sequences for the application under test, thereby achieving user behavior pattern reuse across similar applications. The experiments were conducted on 32 user behavior patterns of three categories of Android applications. The results show that 87.4% of user behavior patterns can be completely reused on similar Android applications, and the reused user behavior patterns can effectively cover 90.2% of important states in applications under test. Thus, the proposed method provides effective support for the testing of Android applications.
Android application; Android application testing; user behavior pattern; pattern mining; pattern reuse
TP311.5
A
1001-9081(2022)07-2155-07
10.11772/j.issn.1001-9081.2021040652
The work is partially supported by National Natural Science Foundation of China (62077003, 61872026).
2021?04?25;
2021?08?03;
2021?08?06。
國家自然科學基金資助項目(62077003, 61872026)。
毛群(1997—),女,湖南祁陽人,碩士研究生,主要研究方向:軟件測試; 王微微(1990—),女,河北滄州人,講師,博士,CCF會員,主要研究方向:Web應用軟件測試、軟件建模; 尤楓(1963—),男,江蘇江都人,高級工程師,碩士,CCF會員,主要研究方向:軟件測試、軟件可靠性、Web用戶行為分析; 趙瑞蓮(1964—),女,山西忻州人,教授,博士,CCF會員,主要研究方向:軟件測試、軟件可靠性; 李征(1974—),男,河北清苑人,教授,博士,CCF會員,主要研究方向:軟件回歸測試。