两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于粒子群優(yōu)化算法的Android自動(dòng)化測(cè)試方法

文檔序號(hào):9750727閱讀:730來(lái)源:國(guó)知局
基于粒子群優(yōu)化算法的Android自動(dòng)化測(cè)試方法
【技術(shù)領(lǐng)域】
[0001 ]本發(fā)明屬于軟件自動(dòng)化測(cè)試領(lǐng)域,涉及一種基于粒子群優(yōu)化算法的Android自動(dòng)化測(cè)試方法。
【背景技術(shù)】
[0002]目前的Android應(yīng)用自動(dòng)化測(cè)試依舊需要大量的測(cè)試人員的手動(dòng)參與,測(cè)試周期長(zhǎng),效率和覆蓋率都較低,以及使用現(xiàn)有測(cè)試工具會(huì)導(dǎo)致代碼冗余的問(wèn)題,關(guān)鍵字驅(qū)動(dòng)的測(cè)試框架是通過(guò)使用測(cè)試指令來(lái)操作測(cè)試用例生成的方法。目前基于關(guān)鍵字的測(cè)試框架與測(cè)試方法在Android應(yīng)用的自動(dòng)化測(cè)試中應(yīng)用較為廣泛。Robotium是以對(duì)Instrumentat1n框架的封裝為基礎(chǔ)的開(kāi)源測(cè)試框架,主要用于模仿用戶的場(chǎng)景測(cè)試。使用Robotium能夠簡(jiǎn)易地為Android應(yīng)用編寫(xiě)強(qiáng)健而有效的自動(dòng)化黑盒及白盒測(cè)試。將關(guān)鍵字思想與Robotium的結(jié)合有利于測(cè)試代碼模塊化與測(cè)試數(shù)據(jù)分離,提高便利性與健壯性。粒子群優(yōu)化算法(Particle Swarm optimizat1n,PSO)又稱為粒子群算法、微粒群算法、或微粒群優(yōu)化算法。是通過(guò)模擬鳥(niǎo)群覓食行為而發(fā)展起來(lái)的一種基于群體協(xié)作的隨機(jī)搜索算法,引入粒子群優(yōu)化算法可以使生成的輸入類測(cè)試用例更加高效。
[0003]Robotium 框架:
[0004]Android應(yīng)用的自動(dòng)化測(cè)試領(lǐng)域最為重要的研究成果就是GoogleAndroid SDK研發(fā)的Instrumentat1n框架,是現(xiàn)階段絕大多數(shù)的自動(dòng)化測(cè)試工具的核心。Robotium是目前使用率最高的Android開(kāi)源測(cè)試框架,主要用于模仿用戶的場(chǎng)景測(cè)試。使用Robotium能夠簡(jiǎn)易地為Android應(yīng)用編寫(xiě)強(qiáng)健而有效的自動(dòng)化黑盒及白盒測(cè)試。Robotium是對(duì)Android自帶測(cè)試類Instrumentat 1n的一個(gè)封裝,是另一種通過(guò)Instrumentat1nTestRunner來(lái)完Android交互式測(cè)試的架構(gòu),方便于測(cè)試人員直接調(diào)用封裝好的接口。
[0005]粒子群優(yōu)化算法PSO(ParticieSwarm Optimizat1n)是由Eberhart博士和Kennedy博士發(fā)明的一種新的全局優(yōu)化進(jìn)化算法,它源于對(duì)鳥(niǎo)類捕食行為的模擬。與遺傳算法類似,粒子群優(yōu)化算法同樣基于群體(這里稱作粒子群)與適應(yīng)度。粒子群的個(gè)體(這里稱作粒子)代表問(wèn)題的一個(gè)可能解。每個(gè)粒子具有位置和速度兩個(gè)特征。粒子位置坐標(biāo)對(duì)應(yīng)的目標(biāo)函數(shù)值即可作為該粒子的適應(yīng)度。算法通過(guò)適應(yīng)度來(lái)衡量粒子的優(yōu)劣,從而能夠?qū)饪臻g進(jìn)行有效的優(yōu)化。
[0006]經(jīng)過(guò)近十年的發(fā)展,針對(duì)Android自動(dòng)化測(cè)試,已經(jīng)有了很多方法,但是各種技術(shù)都有其優(yōu)缺點(diǎn)和適用情況,目前還沒(méi)有一種被公認(rèn)的最為有效的方法,尤其是輸入類測(cè)試用例生成方向。目前測(cè)試人員實(shí)現(xiàn)Android應(yīng)用自動(dòng)化測(cè)試往往是:通過(guò)UI檢查工具從可視化的角度直觀地獲得UI布局設(shè)計(jì)結(jié)構(gòu)和各種屬性的信息,根據(jù)得到的屬性信息結(jié)合自動(dòng)化測(cè)試工具提供的方法對(duì)控件進(jìn)行操作,從而觸發(fā)應(yīng)用程序的運(yùn)行,在運(yùn)行中監(jiān)測(cè)每一步的輸出信息和運(yùn)行結(jié)果,從而發(fā)現(xiàn)應(yīng)用程序的危險(xiǎn)路徑。首先,這樣的Android應(yīng)用自動(dòng)化測(cè)試依舊需要大量的測(cè)試人員的手動(dòng)參與,測(cè)試周期長(zhǎng),效率和覆蓋率都較低。其次,現(xiàn)有的Android自動(dòng)化測(cè)試框架在生成輸入類的測(cè)試用例方面有極大的局限性,主要依靠經(jīng)驗(yàn)判斷,大大降低了自動(dòng)化測(cè)試的效率與覆蓋率。

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

[0007]本發(fā)明一種基于粒子群優(yōu)化算法的Android自動(dòng)化測(cè)試方法,提供結(jié)合關(guān)鍵字、粒子群優(yōu)化算法,以現(xiàn)有的Android自動(dòng)化測(cè)試工具為基礎(chǔ),將粒子群優(yōu)化算法引入到Android自動(dòng)化測(cè)試中,不僅能夠模塊化進(jìn)行應(yīng)用控件的觸發(fā),并且能夠生成更高效的輸入類測(cè)試數(shù)據(jù),在便捷的同時(shí)能夠更加高效的觸發(fā)軟件異常。
[0008]本發(fā)明通過(guò)以下技術(shù)方案實(shí)現(xiàn)。
[0009]—種基于粒子群優(yōu)化算法的Android自動(dòng)化測(cè)試方法,包括以下步驟:
[00?0] 步驟一、將應(yīng)用安裝在模擬器上,viewer模塊負(fù)責(zé)開(kāi)啟View Server服務(wù),通過(guò)hierarchy viewer獲取應(yīng)用的控件層次樹(shù)信息;
[0011]步驟二、以獲取到的控件層次樹(shù)信息為輸入,在生成控件層次樹(shù)的方法中將其組織成便于遍歷的樹(shù)結(jié)構(gòu);
[0012]步驟三、遍歷build tree構(gòu)造的控件層次樹(shù),每遍歷一個(gè)節(jié)點(diǎn)就去存儲(chǔ)測(cè)試用例模塊test case中查找是否有歷史測(cè)試用例,有則繼續(xù)遍歷下一個(gè)節(jié)點(diǎn),沒(méi)有則調(diào)用生成測(cè)試數(shù)據(jù)模塊PSO的create test case方法進(jìn)行生成;所述的生成過(guò)程如下:根據(jù)控件層次樹(shù)中的控件信息調(diào)用測(cè)試方法模塊test method,查詢?cè)摽丶臏y(cè)試用例需要用到的測(cè)試方法并記錄關(guān)鍵字method key,而后create test case調(diào)用pre-seed方法生成測(cè)試數(shù)據(jù),其中pre-seed中為粒子群優(yōu)化算法的具體實(shí)現(xiàn),根據(jù)數(shù)據(jù)類型生成隨機(jī)序列,粒子群優(yōu)化算法通過(guò)調(diào)整序列中的粒子最終得到最優(yōu)測(cè)試數(shù)據(jù),將測(cè)試數(shù)據(jù)與測(cè)試方法信息結(jié)合即為測(cè)試用例,存放于在test case模塊中;
[0013]步驟四、調(diào)用testcase模塊中存儲(chǔ)的測(cè)試用例集,即可實(shí)現(xiàn)自動(dòng)化測(cè)試。
[0014]本發(fā)明的有益效果:
[0015]本發(fā)明結(jié)合關(guān)鍵字與Robotium框架并且引入粒子群優(yōu)化算法,使三者有效的結(jié)合起來(lái),以自動(dòng)化生成測(cè)試用例方法研究為重點(diǎn),通過(guò)自動(dòng)化的測(cè)試用例生成來(lái)避免低效的手動(dòng)測(cè)試,進(jìn)而通過(guò)對(duì)robotium的重新封裝來(lái)避免代碼冗余,最重要的是通過(guò)引入粒子群優(yōu)化算法生成“最優(yōu)”測(cè)試數(shù)據(jù),這里的最優(yōu)是指通過(guò)粒子群優(yōu)化算法可以通過(guò)調(diào)整測(cè)試數(shù)據(jù)中粒子的選取和粒子的位置,使得以往一條測(cè)試觸發(fā)一次或少數(shù)幾次異常變?yōu)橐粭l測(cè)試數(shù)據(jù)盡可能多的觸發(fā)異常,進(jìn)而能夠以最少的測(cè)試用例達(dá)到理想的測(cè)試效果,提高測(cè)試效率和覆蓋率。
【具體實(shí)施方式】
[0016]下面對(duì)本發(fā)明作進(jìn)一步介紹。
[0017]本發(fā)明的基于粒子群優(yōu)化算法的Android自動(dòng)化測(cè)試方法主要分為viewer、testmethod、PSO、test case、report/log模塊,其中PSO是整個(gè)方法的核心模塊,負(fù)責(zé)粒子群優(yōu)化算法對(duì)測(cè)試用例的生成,viewer負(fù)責(zé)獲取被測(cè)應(yīng)用的控件層次樹(shù)信息,test method模塊是對(duì)robot ium中基本測(cè)試方法的的重新封裝,負(fù)責(zé)減少代碼冗余提供更高效的測(cè)試方法,report/log模塊負(fù)責(zé)記錄運(yùn)行日志,方便查找異常信息、test case模塊用于存儲(chǔ)已經(jīng)生成的測(cè)試用例,便于復(fù)用以提高測(cè)試用例生成效率。
[0018]當(dāng)選定一個(gè)APK后,首先要連接其與viewer模塊的通信,由于viewserver獲得的控件層次樹(shù)信息是純文本的,所以需要將控件層次樹(shù)信息傳送給PSO模塊的buildtree方法,將控件層次樹(shù)信息整理成基于關(guān)鍵字的方便遍歷的控件層次樹(shù),而后調(diào)用create testcase方法,這個(gè)過(guò)程中會(huì)不斷查詢test case中是否有可復(fù)用的測(cè)試用例,若沒(méi)有則調(diào)用preseed生成,若有則跳過(guò),最終生成的所有測(cè)試用例均存儲(chǔ)于test case中。
[0019](I)Viewer獲取控件層次樹(shù)[°02°] Viewer模塊主要做下面3件事情:
[0021 ] I)把Android設(shè)備上的4939端口映射到PC的某端口上,這樣,向PC的該端口號(hào)發(fā)包都會(huì)轉(zhuǎn)發(fā)到Android設(shè)備的4939端口上;
[0022]2)打開(kāi) ViewServer服務(wù),連接 ViewServer ;
[0023]3)獲取 activity 列表;
[0024]4)獲取控件層次樹(shù)信息。
[°°25] 通過(guò)上述方法可以獲取Android應(yīng)用每一個(gè)Activity的控件層次樹(shù)信息。
[0026](2)Robotium 方法封裝
[0027]自動(dòng)化生成測(cè)試用例的前提是:需要的測(cè)試數(shù)據(jù)模型和測(cè)試方法需要預(yù)先定義在test data文件和test methods文件中。
[0028]Robotium提供一系列的基礎(chǔ)測(cè)試方法用于定位控件和對(duì)控件進(jìn)行操作。之所以以關(guān)鍵字為方法名封裝Robotium提供的基礎(chǔ)測(cè)試方法,是因?yàn)閷?duì)于同一種控件的測(cè)試動(dòng)作往往是相同的,尤其是按鈕等以點(diǎn)擊為觸發(fā)條件的控件,測(cè)試人員在針對(duì)同一種控件所編寫(xiě)的自動(dòng)化測(cè)試用例所要實(shí)現(xiàn)的往往是相同的動(dòng)作,這便使得按照控件類型封裝出小的功能組件成為可能。
[0029]test method中的封裝好的自動(dòng)化測(cè)試方法,實(shí)際上就是基于robotium提供的基礎(chǔ)方法的常用測(cè)試代碼段。
[0030](3)PS0生成測(cè)試用例
[0031 ]首先PSO模塊build tree部分會(huì)將viewer中獲取的控件層次文本信息以樹(shù)形邏輯結(jié)構(gòu)組織起來(lái),create test case部分遍歷test method和test case,選用合適關(guān)鍵字標(biāo)識(shí)其需要何種方法(方便調(diào)用test method)需要何種測(cè)試數(shù)據(jù)(這里指測(cè)試數(shù)據(jù)類型,如int、char)以及查詢是否有可復(fù)用的歷史測(cè)試用例,若有則跳過(guò),若沒(méi)有則調(diào)用PreSeed,PreSeed部分會(huì)遍歷測(cè)試用例生成樹(shù)使用粒子群優(yōu)化算法生成測(cè)試用例,Test Case模塊其中存儲(chǔ)的是粒子群優(yōu)化算法下生成的“最優(yōu)”測(cè)試數(shù)據(jù)。
[0032]首先是PSO中build tree方法的設(shè)計(jì),build tree方法主要實(shí)現(xiàn)將控件層次信息從文本中讀取出后,按照樹(shù)的數(shù)據(jù)結(jié)構(gòu)將其組織起來(lái),便于后續(xù)的遍歷,每一個(gè)節(jié)點(diǎn)會(huì)有一個(gè)hashcode的唯一標(biāo)識(shí)。
[0033]PSO
當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
许昌市| 临漳县| 冀州市| 镇坪县| 克拉玛依市| 浪卡子县| 晋江市| 成武县| 忻州市| 米易县| 常熟市| 江永县| 基隆市| 抚松县| 古丈县| 富锦市| 沂水县| 青川县| 香河县| 武冈市| 楚雄市| 和平区| 昆山市| 沾益县| 马关县| 日喀则市| 武功县| 姚安县| 九台市| 满洲里市| 安新县| 廊坊市| 河北区| 武平县| 方山县| 高邑县| 册亨县| 三都| 定南县| 北辰区| 永嘉县|