欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種測(cè)試Android應(yīng)用控件的方法

文檔序號(hào):8502131閱讀:285來(lái)源:國(guó)知局
一種測(cè)試Android應(yīng)用控件的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種自動(dòng)測(cè)試Android應(yīng)用控件的方法,屬于軟件應(yīng)用測(cè)試技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002]Android 一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。
[0003]Android應(yīng)用的發(fā)展相當(dāng)迅速。截止2014年七月,在Google Play上已經(jīng)有超過(guò)130萬(wàn)個(gè)可下載應(yīng)用,并有著遠(yuǎn)超500億次的下載量。Android系統(tǒng)的普及和應(yīng)用如此突飛猛進(jìn)的發(fā)展,由于Android應(yīng)用發(fā)布周期短,無(wú)法得到充分的測(cè)試,造成了 Android軟件的質(zhì)量普遍不高。因此,對(duì)Android應(yīng)用的自動(dòng)化分析和測(cè)試技術(shù)變得越來(lái)越重要。
[0004]Android應(yīng)用的控件是Android系統(tǒng)及軟件的重要組成部分,他是應(yīng)用和用戶之間交互的接口??丶姆€(wěn)定性和可靠性是把握用戶的感受的關(guān)鍵。各個(gè)控件的顯示效果以及他們之間的交互關(guān)系也是程序員最需要關(guān)注的內(nèi)容之一。
[0005]Activity單元測(cè)試是快速檢查Activity的狀態(tài)和它與其他組件的交互的絕佳方法,這也是在與系統(tǒng)其余部分隔絕的環(huán)境下進(jìn)行的。單元測(cè)試通常測(cè)試盡可能小的代碼單元,可能是一個(gè)方法,類(lèi),或者一個(gè)控件,它不依賴(lài)于系統(tǒng)或網(wǎng)絡(luò)資源。所以,單元測(cè)試不適合用來(lái)測(cè)試與系統(tǒng)有復(fù)雜的UI交互事件的代碼。
[0006]目前,Google提供了一個(gè)Android測(cè)試框架,它是Android開(kāi)發(fā)環(huán)境的一個(gè)重要部分,可以用來(lái)測(cè)試應(yīng)用的各個(gè)方面,從單元測(cè)試到框架測(cè)試。它是基于JUNIT3,可以使用普通的junit而不用調(diào)用Android測(cè)試api來(lái)進(jìn)行測(cè)試。它的junit擴(kuò)展提供了針對(duì)組件的測(cè)試用例類(lèi),這些類(lèi)提供了 mock對(duì)象和方法的輔助方法,進(jìn)而控制組件生命周期。它的測(cè)試用例類(lèi)包含在類(lèi)似主程序包的測(cè)試包中,無(wú)需學(xué)習(xí)其他的技術(shù)和工具。并且,該框架有用于自動(dòng)構(gòu)建和運(yùn)行測(cè)試的sdk,可以在eclipse adt中使用,其他ide中可以使用命令完成。它們可以讀取源項(xiàng)目的信息自動(dòng)完成測(cè)試類(lèi)的創(chuàng)建。但是,創(chuàng)建測(cè)試類(lèi)并不能直接對(duì)項(xiàng)目進(jìn)行測(cè)試,還是需要測(cè)試人員一條一條人工編寫(xiě)測(cè)試用例,這也是一個(gè)非常乏味和痛苦的過(guò)程。
[0007]JUNIT框架還提供了自動(dòng)事件流模擬工具monkeyrunner和monkey。這可以用來(lái)進(jìn)行Ui測(cè)試,可以向設(shè)備發(fā)送事件流(鍵盤(pán)、touch、手勢(shì))對(duì)程序進(jìn)行壓力測(cè)試,其中monkeyrunner需要編寫(xiě)Python程序調(diào)用api發(fā)送事件流,monkey通過(guò)adb的命令行發(fā)送。Monkeyrunner和monkey雖然在一定程度上可以自動(dòng)進(jìn)行模擬操作,但是也需要人工進(jìn)行事先的設(shè)計(jì),而且編寫(xiě)Python程序也是一件費(fèi)時(shí)費(fèi)力的事情,需要測(cè)試人員對(duì)這種腳本語(yǔ)言非常熟悉。這兩種工具最大的局限性是只能對(duì)程序進(jìn)行壓力測(cè)試,即使用指定或隨機(jī)的順序操作設(shè)備,并不能對(duì)程序以及內(nèi)部控件進(jìn)行有效性、健壯性測(cè)試。
[0008]Python,是一種面向?qū)ο蟆⒔忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,由Guido van Rossum于1989年底發(fā)明。Python語(yǔ)法簡(jiǎn)潔而清晰,具有豐富和強(qiáng)大的類(lèi)庫(kù)。常被昵稱(chēng)為膠水語(yǔ)言,它能夠把其他語(yǔ)言制作的各種模塊很輕松地聯(lián)結(jié)在一起。常見(jiàn)的一種應(yīng)用情形是,使用Python快速生成程序的原型,然后對(duì)其中有特別要求的部分,用更適合的語(yǔ)言改寫(xiě),比如一些對(duì)性能要求特別高的部分使用C++重寫(xiě)。

【發(fā)明內(nèi)容】

[0009]為了對(duì)需要測(cè)試的控件進(jìn)行有強(qiáng)度的測(cè)試,并使開(kāi)發(fā)人員便于編寫(xiě)對(duì)于控件的測(cè)試用例,縮減整個(gè)開(kāi)發(fā)時(shí)間和提升測(cè)試水平,本發(fā)明提供了一種測(cè)試Android應(yīng)用控件的方法,其主要原理是,分析應(yīng)用的控件及控件之間的關(guān)系,根據(jù)用戶剖面,基于不同的控件的使用頻率不一樣,為每一種控件設(shè)置權(quán)重,根據(jù)事先指定好的權(quán)重,給予每一個(gè)控件不同的測(cè)試樣本,最后根據(jù)測(cè)試樣本使用腳本自動(dòng)化生成單元測(cè)試用例。
[0010]本發(fā)明方法具體包括如下步驟:
[0011]步驟I)掃描并分析activity_main.xml文件,篩選出測(cè)試需要的element的屬性,并將該屬性的名稱(chēng)與值寫(xiě)入文件,繼續(xù)掃描直到document的結(jié)尾;
[0012]步驟2)給應(yīng)用的各個(gè)控件添加測(cè)試權(quán)重:讀取步驟I)生成的文件的一行的第一個(gè)關(guān)鍵詞,根據(jù)控件預(yù)先設(shè)置的使用頻率等級(jí)在該行的末尾添加權(quán)重值;
[0013]步驟3)給每一個(gè)控件生成單元測(cè)試用例代碼:讀取步驟2)生成的文件,將一行中的所有關(guān)鍵詞作為參數(shù)傳遞給單元測(cè)試用例代碼生成函數(shù),根據(jù)權(quán)重值指定測(cè)試次數(shù),使用預(yù)先設(shè)置的不同的變量來(lái)產(chǎn)生單元測(cè)試用例;
[0014]步驟4)將步驟3)生成的文件添加進(jìn)測(cè)試工程中。
[0015]進(jìn)一步,步驟I)的流程具體為:
[0016]步驟1.1)逐行掃描 activity_main.xml 文件;
[0017]步驟1.2)判斷當(dāng)前element是否為需要檢測(cè)的控件element ;
[0018]步驟1.2.1)判斷為是,將該element的名稱(chēng)寫(xiě)入文件,繼續(xù)掃描里面的內(nèi)容;
[0019]步驟1.2.2)判斷為否,直接跳轉(zhuǎn)到所述element的結(jié)尾,掃描下一個(gè)element ;
[0020]步驟1.3)掃描所述element的屬性,判斷當(dāng)前屬性是不是測(cè)試需要的屬性;
[0021]步驟1.3.1)判斷為是,將該屬性的名稱(chēng)與值寫(xiě)入文件,繼續(xù)掃描下一行并判斷下一行是不是所述element的結(jié)尾;
[0022]步驟1.3.2)判斷為否,繼續(xù)掃描下一行并判斷下一行是不是所述element的結(jié)尾;
[0023]步驟1.4)如果已經(jīng)掃描到所述element的結(jié)尾,在文件中插入一個(gè)換行符;
[0024]步驟1.5)判斷是否已經(jīng)到了 document的結(jié)尾;
[0025]步驟1.5.1)判斷為是,進(jìn)行下一步測(cè)試工作;
[0026]步驟1.5.2)判斷為否,跳轉(zhuǎn)到步驟1.1),繼續(xù)分析。
[0027]進(jìn)一步,步驟2)中添加測(cè)試權(quán)重的具體步驟為:
[0028]步驟2.1)逐行掃描步驟I)生成的文件;
[0029]步驟2.1.1)如果該行控件名稱(chēng)為常用控件,在末尾添加I ;
[0030]步驟2.1.2)如果該行控件名稱(chēng)為次常用控件,在末尾添加2 ;
[0031]步驟2.1.3)如果該行控件名稱(chēng)為不常用控件,在末尾添加3。
[0032]進(jìn)一步,步驟3)中,單元測(cè)試用例代碼生成函數(shù)根據(jù)不同的控件生成不同的測(cè)試用例代碼;如果控件的權(quán)重為I或2或3,則函數(shù)會(huì)使用不同的變量生成3或2或I個(gè)對(duì)于同一個(gè)控件進(jìn)行測(cè)試的測(cè)試用例代碼,并將代碼保存于以該應(yīng)用名稱(chēng)命名的預(yù)先設(shè)置的模板class文件中。
[0033]本發(fā)明方法分析配置文件,找出所有控件的名稱(chēng)、ID等等信息,通過(guò)對(duì)不同的控件賦予不同的測(cè)試權(quán)重以平衡測(cè)試的速度和覆蓋率,通過(guò)python語(yǔ)言將不同的需要測(cè)試的控件從模板轉(zhuǎn)換為測(cè)試代碼,最后再導(dǎo)入工程進(jìn)行單元測(cè)試。對(duì)比現(xiàn)有技術(shù),本發(fā)明使用語(yǔ)義分析的方法,將工程的配置文件中所有我們關(guān)心的控件的信息都保存下來(lái),抽取控件信息迅速,準(zhǔn)確;在生成測(cè)試用例代碼之前,考慮用戶剖面,在生成測(cè)試用例之前就制定好各個(gè)控件的使用頻率,在頻率高的控件上多增加測(cè)試用例數(shù)量,在使用頻率低的控件上降低測(cè)試用例數(shù)量,以達(dá)到測(cè)試時(shí)間和測(cè)試能力的平衡;使用函數(shù)以及腳本將所獲得的信息全部轉(zhuǎn)換為我們需要的測(cè)試用例代碼;本發(fā)明方
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
竹山县| 兴山县| 五莲县| 凤台县| 泊头市| 简阳市| 威远县| 乌拉特后旗| 长治市| 哈尔滨市| 海南省| 南部县| 宜都市| 房产| 桃园市| 衡阳县| 通州区| 涟源市| 抚松县| 镇远县| 利辛县| 谢通门县| 建湖县| 丰顺县| 宜君县| 凌云县| 延庆县| 神木县| 石泉县| 泰安市| 隆化县| 灵台县| 江油市| 图木舒克市| 定陶县| 新民市| 鄂尔多斯市| 临沭县| 新闻| 永平县| 玛曲县|