面向Android應(yīng)用的自動(dòng)化測(cè)試方法研究與實(shí)現(xiàn)
發(fā)布時(shí)間:2020-06-16 05:30
【摘要】:隨著移動(dòng)互聯(lián)網(wǎng)的高速發(fā)展,移動(dòng)客戶(hù)端日漸普及,同時(shí)帶來(lái)的是移動(dòng)應(yīng)用數(shù)量的爆炸式增長(zhǎng)。在移動(dòng)應(yīng)用產(chǎn)品發(fā)布之前,往往需要進(jìn)行大量的重復(fù)測(cè)試。為了提升測(cè)試的效率,自動(dòng)化測(cè)試被廣泛使用。在已有的Android應(yīng)用自動(dòng)化測(cè)試研究中,通過(guò)手動(dòng)查找控件并編寫(xiě)腳本的方式對(duì)測(cè)試人員的專(zhuān)業(yè)性要求過(guò)高且效率低下;而在使用錄制回放方式的研究中卻存在多個(gè)問(wèn)題,通過(guò)坐標(biāo)進(jìn)行錄制回放無(wú)法兼容不同分辨率的設(shè)備,且無(wú)法進(jìn)行控件屬性斷言;通過(guò)修改源代碼獲取用戶(hù)操作的方式無(wú)法進(jìn)行跨應(yīng)用的測(cè)試,使得其通用性較差;在測(cè)試腳本中通過(guò)控件ID或文本屬性操作控件的方式不適用在部分控件ID和屬性為空的場(chǎng)景;且已有的研究中只能通過(guò)控件文本和圖像的比對(duì)進(jìn)行斷言驗(yàn)證,形式單一且適用場(chǎng)景較為局限。為了解決上述問(wèn)題,本文主要工作如下:(1)提出一種基于文字識(shí)別和頁(yè)面布局結(jié)構(gòu)的控件識(shí)別方法,用于基于錄制回放的黑盒測(cè)試中識(shí)別操作對(duì)應(yīng)的控件。通過(guò)坐標(biāo)值和控件樹(shù)中結(jié)點(diǎn)的布局范圍進(jìn)行深度優(yōu)先遍歷搜索控件,針對(duì)搜索過(guò)程中由于頁(yè)面布局重疊導(dǎo)致識(shí)別正確率低的問(wèn)題,設(shè)計(jì)了基于文字識(shí)別和頁(yè)面布局的算法。(2)針對(duì)通過(guò)控件ID或文本屬性操作控件的方式不支持其值為空的場(chǎng)景,采用控件路徑作為控件標(biāo)識(shí),可以在不同設(shè)備中唯一地定位控件,并支持跨應(yīng)用測(cè)試。在跨設(shè)備回放過(guò)程中,針對(duì)錄放設(shè)備屏幕分辨率不同導(dǎo)致控件樹(shù)結(jié)構(gòu)不同的問(wèn)題,提出一種滑動(dòng)屏幕重新渲染GUI的方式支持控件自動(dòng)適應(yīng)界面。(3)針對(duì)基于對(duì)比文本及圖像的斷言驗(yàn)證形式中適用場(chǎng)景受限的問(wèn)題,設(shè)計(jì)了多種形式的基于控件樹(shù)的斷言驗(yàn)證方案,在測(cè)試過(guò)程中自動(dòng)判斷應(yīng)用程序的運(yùn)行狀態(tài)、結(jié)果和界面是否正確。包括對(duì)控件屬性的正則匹配斷言、關(guān)系運(yùn)算斷言、數(shù)據(jù)驅(qū)動(dòng)斷言,從控件樹(shù)結(jié)構(gòu)進(jìn)行的排序斷言和對(duì)界面圖像的斷言,多種斷言形式結(jié)合使用滿(mǎn)足多種測(cè)試場(chǎng)景。(4)基于本文提出的控件識(shí)別和斷言驗(yàn)證方法,設(shè)計(jì)了基于控件路徑的An-droid 應(yīng)用自動(dòng)化測(cè)試方案。為 了驗(yàn)證該方案的正確性和有效性,實(shí)現(xiàn)了 Android自動(dòng)化測(cè)試工具CRTT。并使用該工具對(duì)多個(gè)Android應(yīng)用進(jìn)行了自動(dòng)化測(cè)試,通過(guò)實(shí)驗(yàn)驗(yàn)證了控件識(shí)別方法和斷言驗(yàn)證方案的正確性。并與現(xiàn)有測(cè)試方法進(jìn)行了對(duì)比實(shí)驗(yàn),結(jié)果表明本文提出的錄制回放測(cè)試方法可以更好地支持跨設(shè)備。
【學(xué)位授予單位】:中國(guó)科學(xué)技術(shù)大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類(lèi)號(hào)】:TP311.53;TP316
【圖文】:
Layout邋View邋(布局),Layout是ViewGroup的子類(lèi),用于控制子視圖在屏幕上的逡逑位置。View及其子類(lèi)一起負(fù)責(zé)Android的界面展不和事件處理。View的層次結(jié)逡逑構(gòu)如圖2.2所示。逡逑Activity逡逑PhoneWindow逡逑DccorView逡逑TitleActionBar逡逑ViewGroup逡逑I逡逑1邋1逡逑ViewGroup邐View邐View逡逑r逡逑View邋View邋View邋—?邐逡逑圖2.2邋Android邋View層次結(jié)構(gòu)圖逡逑Android應(yīng)用程序運(yùn)行過(guò)程中,每個(gè)Activity都由活動(dòng)管理器管理,它有一個(gè)逡逑活動(dòng)棧Activity邋Stack,通過(guò)維護(hù)活動(dòng)棧里的Activity的狀態(tài)來(lái)進(jìn)行管理。Activity逡逑有三種狀態(tài):運(yùn)行狀態(tài),暫停狀態(tài)和停止。屏幕上顯示一個(gè)頁(yè)面時(shí),當(dāng)前Activity逡逑放置在堆棧頂部并設(shè)置為運(yùn)行狀態(tài)。當(dāng)頁(yè)面依然顯示但卻已經(jīng)失去了焦點(diǎn)時(shí),逡逑Activity將由活動(dòng)管理器壓入堆棧,并進(jìn)入暫停狀態(tài)。舉例來(lái)說(shuō),當(dāng)頁(yè)面顯示時(shí)突逡逑然顯示一個(gè)彈出框,彈出框獲得焦點(diǎn)并進(jìn)入運(yùn)行狀態(tài),前一個(gè)頁(yè)面處于暫停狀態(tài)。逡逑當(dāng)一個(gè)頁(yè)面完全不可見(jiàn)時(shí),此時(shí)該活動(dòng)頁(yè)將處于停止?fàn)顟B(tài)。當(dāng)Activity為暫停狀逡逑態(tài)或停止?fàn)顟B(tài)時(shí)
逡逑個(gè)Android應(yīng)用的Activity的完整生命周期如圖2.3所不|23]。逡逑(Activity\逡逑Started邋J逡逑onCreate()逡逑邐?邋onStart()邋<邐逡逑'S邐onResume()邋<邐邋onRestart()逡逑killed邐邐逡逑Running逡逑onPause()邐逡逑邐邋onStop()邋邐逡逑onDestroy()逡逑r邋Activity邋A逡逑y邋destroyed邋y逡逑圖2.3邋Activity生命周期逡逑2.邋Service逡逑Service邋(服務(wù))是一個(gè)與Activity類(lèi)似的組件,具有完整生命周期但卻沒(méi)有用逡逑戶(hù)界面。也就是說(shuō),Service是一個(gè)通過(guò)后臺(tái)運(yùn)行方式提供服務(wù)的組件,如一個(gè)在逡逑后臺(tái)不斷更新天氣狀況的天氣預(yù)報(bào)程序等。在Android系統(tǒng)資源充足時(shí),Service逡逑將會(huì)長(zhǎng)時(shí)間運(yùn)行,直到任務(wù)完成或者系統(tǒng)內(nèi)存不足。Service主要通過(guò)startService逡逑和邋bindService邋啟動(dòng)。逡逑3.邋Content邋Provider逡逑0逡逑一個(gè)Android應(yīng)用可以將數(shù)據(jù)保存在文件或SQLite數(shù)據(jù)庫(kù)中,或者是其他逡逑設(shè)備中。當(dāng)一個(gè)應(yīng)用需要與其他應(yīng)用共享數(shù)據(jù)時(shí),需要使用Content邋Provider?組逡逑件。Content邋Provider?qū)崿F(xiàn)了一組標(biāo)準(zhǔn)方法,可以讓其他應(yīng)用程序讀取該Content逡逑Provider?處理的各種數(shù)據(jù)
本文編號(hào):2715606
【學(xué)位授予單位】:中國(guó)科學(xué)技術(shù)大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類(lèi)號(hào)】:TP311.53;TP316
【圖文】:
Layout邋View邋(布局),Layout是ViewGroup的子類(lèi),用于控制子視圖在屏幕上的逡逑位置。View及其子類(lèi)一起負(fù)責(zé)Android的界面展不和事件處理。View的層次結(jié)逡逑構(gòu)如圖2.2所示。逡逑Activity逡逑PhoneWindow逡逑DccorView逡逑TitleActionBar逡逑ViewGroup逡逑I逡逑1邋1逡逑ViewGroup邐View邐View逡逑r逡逑View邋View邋View邋—?邐逡逑圖2.2邋Android邋View層次結(jié)構(gòu)圖逡逑Android應(yīng)用程序運(yùn)行過(guò)程中,每個(gè)Activity都由活動(dòng)管理器管理,它有一個(gè)逡逑活動(dòng)棧Activity邋Stack,通過(guò)維護(hù)活動(dòng)棧里的Activity的狀態(tài)來(lái)進(jìn)行管理。Activity逡逑有三種狀態(tài):運(yùn)行狀態(tài),暫停狀態(tài)和停止。屏幕上顯示一個(gè)頁(yè)面時(shí),當(dāng)前Activity逡逑放置在堆棧頂部并設(shè)置為運(yùn)行狀態(tài)。當(dāng)頁(yè)面依然顯示但卻已經(jīng)失去了焦點(diǎn)時(shí),逡逑Activity將由活動(dòng)管理器壓入堆棧,并進(jìn)入暫停狀態(tài)。舉例來(lái)說(shuō),當(dāng)頁(yè)面顯示時(shí)突逡逑然顯示一個(gè)彈出框,彈出框獲得焦點(diǎn)并進(jìn)入運(yùn)行狀態(tài),前一個(gè)頁(yè)面處于暫停狀態(tài)。逡逑當(dāng)一個(gè)頁(yè)面完全不可見(jiàn)時(shí),此時(shí)該活動(dòng)頁(yè)將處于停止?fàn)顟B(tài)。當(dāng)Activity為暫停狀逡逑態(tài)或停止?fàn)顟B(tài)時(shí)
逡逑個(gè)Android應(yīng)用的Activity的完整生命周期如圖2.3所不|23]。逡逑(Activity\逡逑Started邋J逡逑onCreate()逡逑邐?邋onStart()邋<邐逡逑'S邐onResume()邋<邐邋onRestart()逡逑killed邐邐逡逑Running逡逑onPause()邐逡逑邐邋onStop()邋邐逡逑onDestroy()逡逑r邋Activity邋A逡逑y邋destroyed邋y逡逑圖2.3邋Activity生命周期逡逑2.邋Service逡逑Service邋(服務(wù))是一個(gè)與Activity類(lèi)似的組件,具有完整生命周期但卻沒(méi)有用逡逑戶(hù)界面。也就是說(shuō),Service是一個(gè)通過(guò)后臺(tái)運(yùn)行方式提供服務(wù)的組件,如一個(gè)在逡逑后臺(tái)不斷更新天氣狀況的天氣預(yù)報(bào)程序等。在Android系統(tǒng)資源充足時(shí),Service逡逑將會(huì)長(zhǎng)時(shí)間運(yùn)行,直到任務(wù)完成或者系統(tǒng)內(nèi)存不足。Service主要通過(guò)startService逡逑和邋bindService邋啟動(dòng)。逡逑3.邋Content邋Provider逡逑0逡逑一個(gè)Android應(yīng)用可以將數(shù)據(jù)保存在文件或SQLite數(shù)據(jù)庫(kù)中,或者是其他逡逑設(shè)備中。當(dāng)一個(gè)應(yīng)用需要與其他應(yīng)用共享數(shù)據(jù)時(shí),需要使用Content邋Provider?組逡逑件。Content邋Provider?qū)崿F(xiàn)了一組標(biāo)準(zhǔn)方法,可以讓其他應(yīng)用程序讀取該Content逡逑Provider?處理的各種數(shù)據(jù)
【參考文獻(xiàn)】
相關(guān)期刊論文 前4條
1 李江;;基于hook機(jī)制的android自動(dòng)化腳本錄制回放框架的設(shè)計(jì)與實(shí)現(xiàn)[J];軟件;2014年10期
2 盤(pán)俊春;;最好的OCR文字識(shí)別軟件:ABBYY FineReader[J];中國(guó)信息技術(shù)教育;2014年15期
3 唐雨薇;李伯仲;;分布式自動(dòng)化測(cè)試框架的研究[J];科技信息;2011年34期
4 莓荔;;清華文通推出TH-OCR 8.0、TH-OCR 2000和TH-OA3.0[J];辦公自動(dòng)化;1999年06期
相關(guān)碩士學(xué)位論文 前1條
1 鐘書(shū)成;基于錄制回放的Android GUI自動(dòng)化測(cè)試工具的設(shè)計(jì)與實(shí)現(xiàn)[D];中國(guó)科學(xué)院大學(xué)(工程管理與信息技術(shù)學(xué)院);2015年
本文編號(hào):2715606
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2715606.html
最近更新
教材專(zhuān)著