黃 松,王廷永,孫金磊,陽(yáng) 真,洪 宇
(陸軍工程大學(xué) 指揮控制工程學(xué)院,江蘇 南京 210007)
眾包測(cè)試是軟件測(cè)試與眾包模式相結(jié)合產(chǎn)生的新興軟件測(cè)試模式,其特點(diǎn)是測(cè)試周期短、測(cè)試成本低、測(cè)試多樣性等[1,2]。眾包測(cè)試流程如圖1所示。
圖1 眾包測(cè)試流程
但眾包測(cè)試也存在局限性,現(xiàn)有眾測(cè)平臺(tái)主要根據(jù)測(cè)試報(bào)告間接評(píng)估測(cè)試任務(wù)完成質(zhì)量[2]。但是眾測(cè)人員提交測(cè)試報(bào)告的質(zhì)量參差不齊:一方面,由于眾測(cè)人員具有趨利性,導(dǎo)致提交的測(cè)試報(bào)告包含大量隨意甚至虛假內(nèi)容[3,4];另一方面,Hao等[5]指出眾測(cè)報(bào)告呈現(xiàn)數(shù)量大、重復(fù)率高、質(zhì)量低的特點(diǎn),這給評(píng)估測(cè)試質(zhì)量帶來(lái)極大困難與挑戰(zhàn)。
由于測(cè)試成本和測(cè)試門(mén)檻等問(wèn)題,眾測(cè)人員無(wú)法撰寫(xiě)規(guī)范化的測(cè)試用例。在現(xiàn)有測(cè)試用例生成的研究中,基于用戶操作序列的測(cè)試用例生成方法適合以黑盒GUI測(cè)試為主的眾測(cè)場(chǎng)景。此方法無(wú)需眾測(cè)人員具有專業(yè)編程和手動(dòng)撰寫(xiě)測(cè)試用例的能力,可有效規(guī)避測(cè)試成本和測(cè)試門(mén)檻等問(wèn)題,但需要眾測(cè)人員的操作序列作為數(shù)據(jù)來(lái)源。不同于專業(yè)測(cè)試人員的測(cè)試過(guò)程,眾測(cè)人員的測(cè)試過(guò)程中存在測(cè)試步驟不一致、冗余操作過(guò)多等問(wèn)題,因此直接將眾測(cè)人員操作作為測(cè)試用例輸入會(huì)生成大量冗余測(cè)試用例,降低測(cè)試用例質(zhì)量。因此需要針對(duì)性研究如何在眾測(cè)中實(shí)現(xiàn)對(duì)操作序列的有效記錄,目前這方面研究比較匱乏。
本文提出一種適用于眾測(cè)的GUI軟件操作序列記錄方法,首先在眾測(cè)過(guò)程中記錄眾測(cè)人員的操作信息,以截圖方式保存待測(cè)軟件狀態(tài),然后對(duì)獲得的操作信息進(jìn)行聚類和基于時(shí)間劃分方式處理,最后按照時(shí)間順序完成操作序列的記錄。
目前針對(duì)軟件測(cè)試的操作序列研究有:侯津等[6]提出的基于控件路徑的跨設(shè)備UI自動(dòng)化測(cè)試方法,解決操作序列中跨設(shè)備查找控件失敗的問(wèn)題。張文燁[7]利用深度學(xué)習(xí)的目標(biāo)檢測(cè)提高操作序列中控件查找的準(zhǔn)確度。Zhengrui等[8]通過(guò)設(shè)計(jì)的MobiPlay工具實(shí)現(xiàn)在應(yīng)用層捕獲用戶輸入數(shù)據(jù),在服務(wù)器環(huán)境下重現(xiàn)用戶操作,并將其應(yīng)用到移動(dòng)應(yīng)用軟件的白盒與黑盒測(cè)試。Coppola等[9]實(shí)現(xiàn)從現(xiàn)有的基于Android軟件布局的測(cè)試方法中衍生出基于圖像匹配的Android軟件截圖測(cè)試腳本并在軟件布局發(fā)生變化時(shí)動(dòng)態(tài)修正測(cè)試腳本。然而,上述研究只研究專業(yè)測(cè)試人員生成操作序列存在問(wèn)題,未考慮類似眾測(cè)場(chǎng)景下生成操作序列存在問(wèn)題,無(wú)法直接應(yīng)用于眾測(cè)場(chǎng)景。
為實(shí)現(xiàn)操作序列生成,需要獲得眾測(cè)過(guò)程中測(cè)試人員的操作信息?,F(xiàn)有針對(duì)操作序列的研究中,基于坐標(biāo)信息方法能夠保存測(cè)試人員觸發(fā)的事件信息,而基于圖像的方法能夠有效利用待測(cè)軟件的圖像信息。因此本文將兩種方法結(jié)合,通過(guò)基于坐標(biāo)信息的方法捕獲測(cè)試人員使用GUI待測(cè)軟件時(shí)基本全局事件,包括鼠標(biāo)事件、鍵盤(pán)事件以及觸摸事件等,記錄事件類型、對(duì)應(yīng)坐標(biāo)、相對(duì)時(shí)間以及待測(cè)軟件的實(shí)時(shí)截圖等。通過(guò)圖像匹配的方法提取待測(cè)軟件截圖包含的操作信息。
圖2給出了方法的基本框架,面向眾測(cè)的操作序列記錄方法主要分為3步:
圖2 方法框架
(1)眾測(cè)操作信息獲取。通過(guò)記錄待測(cè)軟件基本事件信息以及獲取事件觸發(fā)時(shí)待測(cè)軟件的截圖來(lái)構(gòu)建包含事件描述和待測(cè)軟件截圖的操作信息;
(2)眾測(cè)操作信息分類。首先將截圖進(jìn)行數(shù)據(jù)預(yù)處理,然后采用基于CNN的圖像特征提取方法提取截圖的圖像特征,最后借助聚類方法實(shí)現(xiàn)對(duì)眾測(cè)操作信息劃分;
(3)眾測(cè)操作序列記錄。首先使用基于時(shí)間劃分方法優(yōu)化聚類結(jié)果提升分類精確度,然后依據(jù)時(shí)間先后完成最終操作序列生成。
在本節(jié)中,主要介紹眾測(cè)操作信息的獲取方法。本文定義眾測(cè)操作信息由操作行為描述和待測(cè)軟件截圖組成。使用基本全局事件機(jī)制獲取操作行為描述,將眾測(cè)人員的測(cè)試過(guò)程分解成一個(gè)個(gè)單獨(dú)操作行為,每個(gè)操作行為對(duì)應(yīng)一個(gè)基本全局事件,將基本全局事件信息作為眾測(cè)人員的操作行為描述。使用基于窗口事件截圖機(jī)制獲取待測(cè)軟件觸發(fā)事件窗口的實(shí)時(shí)截圖。
基本全局事件監(jiān)聽(tīng)是指使用工具對(duì)另一個(gè)軟件進(jìn)行基本事件監(jiān)聽(tīng)??紤]知識(shí)產(chǎn)權(quán)因素,企業(yè)提交給眾測(cè)平臺(tái)的待測(cè)軟件一般是不附帶源碼,目的是希望利用眾測(cè)模式完成待測(cè)軟件的黑盒測(cè)試。眾測(cè)平臺(tái)無(wú)法對(duì)待測(cè)軟件進(jìn)行修改,這導(dǎo)致眾測(cè)平臺(tái)想要獲取眾測(cè)人員對(duì)待測(cè)軟件的操作信息難度增大。而基本全局事件監(jiān)聽(tīng)是解決眾測(cè)平臺(tái)難以獲取操作信息困境的有效方法,此方法能夠不需要對(duì)待測(cè)軟件進(jìn)行修改的同時(shí)監(jiān)聽(tīng)待測(cè)軟件基本事件。
基于窗口事件截圖是指特定窗口觸發(fā)事件時(shí)獲取截圖?;诖翱谑录貓D方法一方面能夠避免侵犯眾測(cè)人員隱私,另一方面有助于減少眾測(cè)人員操作其它軟件影響獲取待測(cè)軟件截圖的質(zhì)量。本文采用捕獲待測(cè)軟件的窗口句柄來(lái)實(shí)現(xiàn)對(duì)窗口的事件監(jiān)聽(tīng),捕獲待測(cè)軟件與測(cè)試人員交互時(shí)圖像狀態(tài)。但是基于窗口事件截圖方法存在以下3個(gè)問(wèn)題:
(1)軟件窗口渲染方式的差異可能會(huì)導(dǎo)致當(dāng)前顯示操作的窗口與實(shí)際響應(yīng)事件的窗口不一致;
(2)對(duì)選定待測(cè)軟件窗口句柄進(jìn)行事件監(jiān)聽(tīng)時(shí)無(wú)法監(jiān)聽(tīng)彈出窗口事件;
(3)監(jiān)聽(tīng)的窗口在測(cè)試待測(cè)軟件期間存在被銷毀的可能性。
針對(duì)第一個(gè)問(wèn)題,本文解決方法是遍歷窗口樹(shù)以檢查事件發(fā)生窗口可視屬性,若不可視則檢查其父窗口的可視性,若父窗口不可視則檢查當(dāng)前窗口(即原窗口的父窗口)的父窗口可視性,直至找到可視窗口,對(duì)此可視窗口進(jìn)行截圖。
針對(duì)第二個(gè)問(wèn)題,本文解決方法是通過(guò)對(duì)待測(cè)軟件的窗口樹(shù)循環(huán)判斷彈出窗口與監(jiān)聽(tīng)窗口是否為父子節(jié)點(diǎn)關(guān)系,若在待測(cè)軟件的窗口樹(shù)中彈出窗口與監(jiān)聽(tīng)窗口存在父子節(jié)點(diǎn)關(guān)系,則可將監(jiān)聽(tīng)對(duì)象改為彈出窗口。
針對(duì)第三個(gè)問(wèn)題,本文解決方法是保存開(kāi)始監(jiān)聽(tīng)時(shí)待測(cè)軟件窗口樹(shù),若監(jiān)聽(tīng)窗口被銷毀,而事件發(fā)生窗口與原監(jiān)聽(tīng)窗口在保留的窗口樹(shù)中存在父子節(jié)點(diǎn)關(guān)系,則將監(jiān)聽(tīng)窗口句柄改為事件發(fā)生窗口的句柄,并更新保留的待測(cè)軟件窗口樹(shù)。
在解決窗口監(jiān)聽(tīng)問(wèn)題后,可以通過(guò)記錄眾測(cè)人員測(cè)試待測(cè)軟件觸發(fā)的事件來(lái)獲取操作信息:首先通過(guò)窗,包括事件名稱,事件相對(duì)坐標(biāo)以及發(fā)生的相對(duì)時(shí)間,以Json格式保存;其次記錄觸發(fā)待測(cè)軟件事件時(shí)刻對(duì)應(yīng)窗口的狀態(tài),以截圖方式保存;最后將各個(gè)眾測(cè)人員操作信息上傳至眾測(cè)平臺(tái),經(jīng)過(guò)匯總獲得眾測(cè)場(chǎng)景待測(cè)軟件的原始操作信息。流程如圖3所示。
圖3 眾測(cè)操作信息獲取
在獲取眾測(cè)原始操作信息后,并不能直接將其作眾測(cè)人員的操作序列。原因是眾測(cè)人員測(cè)試過(guò)程中不可避免會(huì)產(chǎn)生一些冗余操作,這些冗余操作雖然不會(huì)降低眾測(cè)人員的測(cè)試質(zhì)量,但會(huì)導(dǎo)致最終記錄的測(cè)試操作序列過(guò)于繁瑣,影響后續(xù)生成的測(cè)試用例質(zhì)量。不同眾測(cè)人員的冗余操作往往各異,而關(guān)鍵操作對(duì)應(yīng)的操作信息是相似的,因此可以通過(guò)分類方法實(shí)現(xiàn)對(duì)冗余操作和關(guān)鍵操作區(qū)分。由于無(wú)法得知操作對(duì)應(yīng)標(biāo)簽,也無(wú)法針對(duì)全部類型的測(cè)試操作進(jìn)行人工標(biāo)注,因此采用無(wú)監(jiān)督分類方式。在原始操作信息中同一個(gè)操作行為對(duì)應(yīng)的待測(cè)軟件截圖總是相似的,因此通過(guò)對(duì)待測(cè)軟件的截圖進(jìn)行聚類操作可以實(shí)現(xiàn)對(duì)冗余和關(guān)鍵操作的劃分。完成聚類后每個(gè)類別包含著測(cè)試環(huán)節(jié)中必要的操作步驟有效描述。
此階段的工作分為3個(gè)環(huán)節(jié):
(1)待測(cè)軟件截圖的數(shù)據(jù)預(yù)處理。去除截圖失敗和截圖未完成圖片和對(duì)數(shù)據(jù)進(jìn)行歸一化等;
(2)基于深度學(xué)習(xí)的特征提取。相比傳統(tǒng)的圖像處理方法,基于深度學(xué)習(xí)的CNN模型能夠更深入提取圖像信息。Caron等[10]指出使用更好的特征提取模型可獲得更好的聚類效果。在眾多可用于圖像提取模型中,He等[11]提出的殘差網(wǎng)絡(luò)ResNet在不同圖像數(shù)據(jù)集上取得比AlexNet、VGGNet和GoogLeNet網(wǎng)絡(luò)更好的分類效果,這表明殘差網(wǎng)絡(luò)ResNet提取的圖像特征更豐富。在考慮模型復(fù)雜度和待測(cè)軟件的截圖本身語(yǔ)義信息不明顯后,本文采用ResNet50網(wǎng)絡(luò)完成特征提取工作;
(3)基于聚類的操作截圖分類。相比其它聚類算法對(duì)類別值設(shè)置較為敏感,層次聚類算法無(wú)需設(shè)置類別值,聚類效果穩(wěn)定,更適合類別未知的待測(cè)軟件截圖分類。
使用圖像聚類對(duì)操作信息分類可能存在一個(gè)問(wèn)題:劃分到同一類的截圖實(shí)際可能隸屬于不同操作行為,例如在實(shí)際操作序列中,按鈕被點(diǎn)擊多次,多數(shù)情況下此按鈕觸發(fā)事件時(shí)待測(cè)軟件的截圖是相似的,所提取的截圖特征也是極其相似,因此以圖像特征作為數(shù)據(jù)輸入的聚類無(wú)法區(qū)分不同操作的相似截圖。
為了解決相似截圖可能隸屬于不同操作行為的問(wèn)題,本文通過(guò)操作信息中時(shí)間信息對(duì)聚類結(jié)果進(jìn)一步優(yōu)化,這是因?yàn)閷儆谕粋€(gè)測(cè)試步驟相似圖片的相對(duì)時(shí)間信息是相近的,而屬于不同的測(cè)試步驟的相似圖片其時(shí)間信息相距甚遠(yuǎn)。
眾測(cè)操作行為本質(zhì)上是眾測(cè)人員的使用待測(cè)軟件的行為屬于用戶行為。眾測(cè)人員在測(cè)試待測(cè)軟件時(shí)其操作行為的時(shí)間分布是具有規(guī)律性,屬于同一個(gè)測(cè)試操作的相似圖片在時(shí)間上相近,而屬于不同的測(cè)試步驟的相似圖片其時(shí)間信息相距甚遠(yuǎn)。Sarker等[12]研究結(jié)果表明對(duì)用戶的時(shí)間序列進(jìn)行合理劃分能夠有效描述用戶軟件使用行為。因此本文將收集到眾測(cè)人員的測(cè)試操作信息按照時(shí)間進(jìn)行劃分,依據(jù)時(shí)間分布對(duì)聚類結(jié)果優(yōu)化。
文雨等[13]通過(guò)實(shí)驗(yàn)驗(yàn)證在統(tǒng)計(jì)學(xué)意義上用戶行為特征符合正態(tài)分布。眾測(cè)場(chǎng)景下獲取的操作信息是大量眾測(cè)人員相互獨(dú)立的測(cè)試行為的描述,服從高斯混合模型。眾測(cè)用戶行為的時(shí)間特征分布也服從高斯混合模型。具體來(lái)說(shuō),大量眾測(cè)人員的獨(dú)立的操作行為在同一個(gè)測(cè)試步驟的發(fā)生相對(duì)時(shí)間是相近的,因此利用高斯混合模型(GMM)劃分操作時(shí)間可以解決不同操作因截圖相似被劃分為同一類問(wèn)題,高斯混合模型的公式如下
(1)
相比于高斯分布概率公式,k代表數(shù)據(jù)符合高斯分布模型數(shù),同時(shí)每個(gè)高斯分布有自身μi和σi參數(shù),以及對(duì)應(yīng)的權(quán)重參數(shù)φi,權(quán)重之和為1。
此階段工作分為以下4步:
(1)對(duì)每個(gè)類中操作截圖對(duì)應(yīng)時(shí)間的信息進(jìn)行訓(xùn)練,找到該類中操作截圖時(shí)間信息的多個(gè)高斯分布模型;
(2)獲得每個(gè)高斯分布模型的均值和標(biāo)準(zhǔn)差后,依據(jù)3-Simga準(zhǔn)則獲取每個(gè)高斯分布的數(shù)據(jù)。3-Simga準(zhǔn)則是指數(shù)據(jù)分布在(μ-3σ,μ+3σ)區(qū)間內(nèi)的概率為99.74%,超出此范圍的可能性僅占不到0.3%,認(rèn)為是小概率事件,屬于異常數(shù)據(jù),需要剔除;
(3)使用各個(gè)高斯分布的數(shù)據(jù)對(duì)聚類結(jié)果進(jìn)一步劃分,使得每個(gè)高斯分布的數(shù)據(jù)對(duì)應(yīng)一個(gè)操作步驟。
(4)按照時(shí)間順序完成眾測(cè)操作序列記錄。
如圖4所示,操作序列中每個(gè)操作步驟由步驟號(hào)、相對(duì)時(shí)間、操作類別、待測(cè)軟件、操作描述以及操作截圖組成。
圖4 操作序列示例
本節(jié)設(shè)計(jì)實(shí)驗(yàn)對(duì)操作序列記錄方法有效性進(jìn)行分析,選取了Windows平臺(tái)6款規(guī)模不同、類型不同的GUI軟件作為實(shí)驗(yàn)對(duì)象。其中Knowte是一款筆記軟件,使用WPF框架開(kāi)發(fā)。Speedtest是一款測(cè)速軟件,使用UWP框架開(kāi)發(fā)。Ktplayer是一款開(kāi)源的簡(jiǎn)易音樂(lè)播放軟件,使用JavaFX框架開(kāi)發(fā),VNC Viewer是一款遠(yuǎn)程訪問(wèn)的商業(yè)軟件,使用QT框架開(kāi)發(fā)。Battle是一款游戲?qū)?zhàn)平臺(tái)的商業(yè)軟件,使用QT框架開(kāi)發(fā),6款待測(cè)軟件詳細(xì)信息見(jiàn)表1。
表1 實(shí)驗(yàn)對(duì)象
由于每個(gè)軟件的軟件規(guī)模不一,對(duì)應(yīng)的功能模塊數(shù)不同,實(shí)驗(yàn)中對(duì)軟件的測(cè)試任務(wù)也不相同。6款軟件涵蓋目前主流的GUI開(kāi)發(fā)框架,具有一定代表性。
3.2.1 評(píng)估準(zhǔn)則
通過(guò)回答下面3個(gè)問(wèn)題評(píng)估本文提出的操作序列記錄方法的有效性。
本文方法獲取的操作信息是否能夠有效反映眾測(cè)人員的測(cè)試操作?
本文選取的聚類方法是否滿足于獲取的操作信息分類要求?
本文記錄的操作序列是否覆蓋對(duì)應(yīng)測(cè)試任務(wù)必要操作步驟?
3.2.2 實(shí)驗(yàn)驗(yàn)證
為了研究本文方法獲取的操作信息是否有效反映眾測(cè)人員的測(cè)試操作,本文采用QTP商業(yè)軟件以及UFT商業(yè)軟件與本文的記錄方法進(jìn)行比較。本文實(shí)驗(yàn)環(huán)境:操作系統(tǒng)為Windows10,CPU為Intel Core i9-9900K@ 3.60 GHz,運(yùn)行內(nèi)存64 G,GPU為2080Ti 11 G。為了減少誤差影響,實(shí)驗(yàn)過(guò)程中對(duì)每個(gè)對(duì)象程序的每個(gè)測(cè)試任務(wù)執(zhí)行10次。實(shí)驗(yàn)中使用以下定義的平均操作覆蓋率AOCR(average ope-rations coverage rate)來(lái)衡量不同錄制方法對(duì)眾測(cè)人員測(cè)試操作的覆蓋度
(2)
其中,real-operations代表實(shí)際的操作集合,record-operations代表執(zhí)行測(cè)試任務(wù)中被錄制下的操作集合。結(jié)果見(jiàn)表2。
表2 平均操作覆蓋率
實(shí)驗(yàn)結(jié)果顯示本文方法取得不低于89%的平均覆蓋率,除Battle軟件以外,其它軟件的平均覆蓋率均高于QTP,主要原因是QTP對(duì)當(dāng)下不斷出現(xiàn)的GUI框架支持度不夠,如UWP、JavaFX等框架。UFT軟件是QTP軟件的改進(jìn)版,支持更多GUI框架,但仍然不支持UWP軟件的操作信息獲取。相比于UFT,本文方法在knowte軟件、KtPlayer軟件、VNC Viewer軟件以及Battle軟件的平均操作覆蓋率要低于UFT的平均操作覆蓋率,但是二者差距較小。經(jīng)過(guò)人工驗(yàn)證,本文方法也覆蓋眾測(cè)人員測(cè)試過(guò)程的關(guān)鍵步驟,相比于UFT是商業(yè)收費(fèi)軟件,本文方法更適合眾測(cè)場(chǎng)景。因此,上述實(shí)驗(yàn)結(jié)果驗(yàn)證了本文方法實(shí)現(xiàn)了對(duì)眾測(cè)人員測(cè)試操作的高覆蓋率。
為了研究本文選取的聚類方法是否滿足于獲取的操作信息分類要求,實(shí)驗(yàn)選取了兩種特征提取方法和4種聚類方法進(jìn)行對(duì)比,特征提取方法是傳統(tǒng)圖像特征提取方法SIFT算法和深度學(xué)習(xí)特征提取方法ResNet50,聚類方法是K-Means聚類方法、DBSCAN聚類方法、GMM(Gaussian mixture model)聚類方法和HC(hierarchical clustering)聚類方法。對(duì)比實(shí)驗(yàn)結(jié)果見(jiàn)表3。
表3 聚類效果對(duì)比
選用F1score作為評(píng)估指標(biāo),F(xiàn)1score是Precision和Recall加權(quán)調(diào)和評(píng)估,常用于評(píng)估分類結(jié)果。Precision、Recall和F1score公式如下所示
(3)
(4)
(5)
其中,TP指相似操作截圖劃分到一類的數(shù)量,F(xiàn)P指不相似操作截圖被劃分到一類的數(shù)量,F(xiàn)N指相似的操作截圖被劃分到不同類的數(shù)量,Precision表示精確率,指在劃分為同一類的操作截圖中實(shí)際為同一類的操作截圖比例。Recall表示召回率,指在所有實(shí)際為同一類的操作截圖中,被正確劃分為同一類的比例。F1score表示精確率和召回率的綜合,該指標(biāo)越高代表聚類效果越好。
實(shí)驗(yàn)結(jié)果表明,相比傳統(tǒng)特征提取方法,使用基于ResNet50的特征提取方法的聚類算法比使用傳統(tǒng)特征提取方法SIFT的聚類效果有了明顯提升,從各種傳統(tǒng)特征提取方法精確率不足30%提升至接近70%,K-Means算法和層次聚類算法尤為明顯,而實(shí)驗(yàn)結(jié)果還發(fā)現(xiàn)基于高斯混合模型的聚類方法在傳統(tǒng)特征提取方法上召回率最高,但精確度只有21%,更換為ResNet50提取方法后,實(shí)驗(yàn)失敗,原因是計(jì)算復(fù)雜度太高,需要遠(yuǎn)超實(shí)驗(yàn)機(jī)器實(shí)際的內(nèi)存空間。在實(shí)驗(yàn)中還發(fā)現(xiàn)傳統(tǒng)特征提取方法普遍能夠達(dá)到較高召回率而ResNet50最高不超過(guò)65%,基于DBSCAN算法存在截然相反的召回率,使用ResNet50提取特征導(dǎo)致分類結(jié)果過(guò)多,是實(shí)際近3倍,因此不考慮使用此算法。
綜合來(lái)看基于K-Means算法和層次聚類算法使用ResNet50提取特征后有更高精確度和較高的召回率,F(xiàn)1score相比其它聚類算法更高。而K-Means算法本身需要指定聚類的數(shù)量,而實(shí)際過(guò)程中無(wú)法確定劃分類別數(shù)而層次聚類不要求指定聚類數(shù)量,相比之下更合適用作操作信息劃分,因此基于層次聚類方法更適合眾測(cè)操作信息的劃分。
為了研究本文方法記錄的操作序列是否覆蓋對(duì)應(yīng)測(cè)試任務(wù)必要操作步驟,在實(shí)驗(yàn)中,對(duì)6款測(cè)試對(duì)象的操作信息進(jìn)行聚類并基于時(shí)間劃分優(yōu)化,最后按照時(shí)間先后對(duì)優(yōu)化結(jié)果組合操作序列。采用平均重現(xiàn)率來(lái)評(píng)估本文獲得的操作序列對(duì)完成測(cè)試任務(wù)所必須的操作步驟的覆蓋程度,平均重現(xiàn)率ARR(average reproduction rate)定義如下
(6)
其中,reproduce-operation代表經(jīng)人工驗(yàn)證可以完成測(cè)試任務(wù)的操作序列,record-operations代表記錄的操作序列數(shù),n代表實(shí)驗(yàn)次數(shù)。平均重現(xiàn)率越高,表示本文所提出方法更能有效記錄眾測(cè)操作序列。實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 不同待測(cè)軟件的平均重現(xiàn)率
實(shí)驗(yàn)結(jié)果表明本文方法記錄的操作序列的平均重現(xiàn)率達(dá)到不低于90%,針對(duì)軟件規(guī)模較小的Speedtest以及Ktplayer能夠?qū)崿F(xiàn)97%以上的重現(xiàn),而對(duì)于VNC Viewer和Battle也可以達(dá)到不低于90%的平均重現(xiàn)率。由于VNC Viewer涉及用戶遠(yuǎn)程界面,同一測(cè)試操作對(duì)應(yīng)的待測(cè)軟件截圖相差較大,影響了最終操作序列的平均重現(xiàn)率。Battle軟件由于軟件規(guī)模較大,獲取的操作信息存在更多遺漏,導(dǎo)致最終操作序列的平均重現(xiàn)率低于其它待測(cè)軟件的平均重現(xiàn)率。但總體上本文提出的眾測(cè)操作序列記錄方法能夠有效覆蓋對(duì)應(yīng)測(cè)試任務(wù)必要操作步驟。
針對(duì)眾測(cè)過(guò)程中眾測(cè)人員測(cè)試步驟不統(tǒng)一、冗余操作過(guò)多的問(wèn)題,提出一種面向眾測(cè)的GUI軟件的操作序列記錄方法。該方法通過(guò)獲取眾測(cè)過(guò)程中工人的操作信息以及在測(cè)試時(shí)待測(cè)軟件的圖像狀態(tài)信息,經(jīng)過(guò)聚類和時(shí)間劃分實(shí)現(xiàn)操作序列記錄。相關(guān)實(shí)驗(yàn)驗(yàn)證該方法從大量操作信息中提取出必要操作步驟并實(shí)現(xiàn)對(duì)測(cè)試人員操作序列的有效覆蓋。下一步工作包括:①將本文方法應(yīng)用到更多程序中,檢測(cè)方法的有效性,并加以完善;②使用本文方法記錄的操作序列作為數(shù)據(jù)來(lái)源,研究眾測(cè)場(chǎng)景下基于操作序列的測(cè)試用例生成。