999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

移動(dòng)應(yīng)用GUI 測(cè)試技術(shù)綜述

2019-05-17 07:42:28張光蘭萬瑩
現(xiàn)代計(jì)算機(jī) 2019年10期
關(guān)鍵詞:模型

張光蘭,萬瑩

(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)

0 引言

據(jù)統(tǒng)計(jì),全球智能手機(jī)用戶的數(shù)量預(yù)計(jì)將從2016年的21 億增加到2019 年的25 億左右[1]。這導(dǎo)致了對(duì)運(yùn)行在這些設(shè)備(應(yīng)用程序)上的新軟件應(yīng)用程序的持續(xù)需求,而目前針對(duì)移動(dòng)應(yīng)用的測(cè)試方法和傳統(tǒng)的桌面端軟件的測(cè)試方法一致,可分為手工測(cè)試和自動(dòng)化測(cè)試。手工GUI 測(cè)試方法,顧名思義,就是一種比較傳統(tǒng)也比較常見的方法,其存在的問題是:人工成本高、工作進(jìn)度無法評(píng)估、工作成果依賴于測(cè)試工程師的經(jīng)驗(yàn)[2]。并且隨著時(shí)間的發(fā)展,GUI 軟件會(huì)變得大型化、復(fù)雜化和多元化[3]。此外,帶有GUI 移動(dòng)應(yīng)用程序的自動(dòng)化技術(shù)比帶有GUI 桌面應(yīng)用程序自動(dòng)化測(cè)試技術(shù)要更加復(fù)雜,例如:平臺(tái)多樣性、移動(dòng)應(yīng)用更新速度快、市場(chǎng)壓力都給移動(dòng)應(yīng)用的測(cè)試帶了新的挑戰(zhàn)。

1 GUI測(cè)試的定義

GUI(Graphical User Interface,圖形用戶界面)是底層程序代碼的前端表示形式,對(duì)諸如選擇下拉列表框、菜單、導(dǎo)航欄、按鈕控件等用戶操作會(huì)作出相對(duì)應(yīng)的前端反映[4]。因?yàn)閹в袌D形界面的軟件相對(duì)與傳統(tǒng)的軟件而言,其美觀的圖形用戶界面帶給了用戶們最直觀的體驗(yàn),使得用戶可以快速上手而逐漸受到用戶的青睞。所以在目前市場(chǎng)上的軟件大多都帶圖形用戶界面。所以,針對(duì)GUI 進(jìn)行的軟件測(cè)試也應(yīng)該成為整個(gè)GUI 軟件測(cè)試中非常重要的一部分[4]。

而GUI 測(cè)試指對(duì)帶有GUI 的軟件進(jìn)行軟件測(cè)試,如文獻(xiàn)[5~8]中說提及的GUI 測(cè)試是通過測(cè)試應(yīng)用程序的GUI,從而達(dá)到測(cè)試被測(cè)系統(tǒng)的功能、GUI 的結(jié)構(gòu)及實(shí)現(xiàn)GUI 的代碼。而移動(dòng)端的GUI 測(cè)試用例指的是一個(gè)完成的用戶行為的一系列相關(guān)的事件/動(dòng)作,即移動(dòng)應(yīng)用程序的GUI 測(cè)試用例是由一系列的事件/動(dòng)作組成。由此可見,移動(dòng)應(yīng)用的GUI 測(cè)試的輸入一般都是事件/動(dòng)作,而輸出一般是狀態(tài)的變化。狀態(tài)變化可能體現(xiàn)為頁面的變化,也可能是頁面中某些元素的狀態(tài)變化等。針對(duì)移動(dòng)應(yīng)用的GUI 測(cè)試用例中,事件/動(dòng)作之間的依賴關(guān)系也是一項(xiàng)非常重要的活動(dòng)[9]。

2 GUI測(cè)試方法

2.1 GGUUII測(cè)試框架

目前存在常用的GUI 測(cè)試框架如表1 所示,由于篇幅的原因,我們只是列舉了比較常見的框架,其中Uiautomator 框架中提供的API 可以對(duì)移動(dòng)應(yīng)用程序進(jìn)行頁面截圖及頁面的元素的結(jié)構(gòu)信息文件。

表1 常見的GUI 測(cè)試框架

●Instrumentation 是Android 主推的白盒測(cè)試框架。在單元測(cè)試的基礎(chǔ)上進(jìn)行功能擴(kuò)展,達(dá)到對(duì)Android系統(tǒng)的高度控制,Robotium[10]、Selendroid[11]、Athrun[12]都是基于Instrumentation 的二次封裝框架,其缺點(diǎn)是不能跨應(yīng)用使用。

●Calabash[13]是一個(gè)適用于iOS 和Android 開發(fā)者的跨平臺(tái)App 測(cè)試框架,可用來測(cè)試屏幕截圖、手勢(shì)和實(shí)際功能代碼。缺點(diǎn):測(cè)試步驟失敗后,將跳過所有的后續(xù)步驟,需要Calabash 框架安裝在iOS 的ipa 文件中,因此測(cè)試人員必須要有iOS 的App 源碼。除了Ruby,對(duì)其他語言不友好。

●Monkey[14]是谷歌提出的,它可以生成一些偽隨機(jī)用戶事件流發(fā)送到被測(cè)試系統(tǒng)中,然后模擬用戶的點(diǎn)擊等手勢(shì),以及一些系統(tǒng)級(jí)的事件。它應(yīng)該是目前流行移動(dòng)端自動(dòng)化框架或者工具的一個(gè)鼻祖。Monkeyrunner 同樣是Android SDK 自帶的測(cè)試工具,它可以用于做功能測(cè)試,回歸測(cè)試并且可以自己定義測(cè)試擴(kuò)展,靈活性較大。Monkeyrunner 工具提供了一些API,可以通過該 API 來控制 Android 設(shè)備或者模擬器。

●Uiautomator 是通過以控件的方式來定位,當(dāng)然也是支持坐標(biāo)軸的方式來定位。缺點(diǎn):Uiautomator 是Android 4.1 后加入的,所以僅支持Android 4.1 和以上的版本,但是不支持Webview。

●Appium[15]:同時(shí)支持 Android、iOS、FirefoxOS。并且Appium 可以用任何你熟悉的開發(fā)語言來進(jìn)行編寫測(cè)試用例。例如 Java、Python、Ruby、PHP、JavaScript、Object-C、C#。采用的控件的定位方式對(duì)不懂Java 而熟悉其他語言的來說還是相當(dāng)不錯(cuò)的選擇。缺點(diǎn)是穩(wěn)定性相對(duì)較差。

2.2 GGUUII測(cè)試技術(shù)

在移動(dòng)應(yīng)用程序的測(cè)試中,現(xiàn)有很多的測(cè)試手段:云測(cè)、眾測(cè)、自測(cè)、外包測(cè)試等不同的方式;目前提供云測(cè)試的平臺(tái)服務(wù)很多,最出名的是Testin 云測(cè)(Android&iOS)、百度 MT(Android&iOS)、阿里 MQC(Android&iOS)、貫眾云測(cè)試(Android&iOS)、騰訊優(yōu)測(cè)(Android)。其中括號(hào)內(nèi)表示云測(cè)試平臺(tái)可以支持的測(cè)試類型。此外,這幾個(gè)測(cè)試平臺(tái)都是用到Monkey 工具做兼容性,穩(wěn)定性測(cè)試。這幾個(gè)云測(cè)試平臺(tái)的測(cè)試場(chǎng)景如表2 所示。但是云測(cè)試在測(cè)試過程中真正使用真機(jī)來測(cè)試的很少,據(jù)我們所知,在測(cè)試過程中使用真機(jī)和模擬機(jī)是有很大的不同的,模擬機(jī)消耗的資源太大,使用它作為測(cè)試平臺(tái)的話,測(cè)試出來的很多問題其實(shí)在真機(jī)中是不存在或者說是反應(yīng)是不一樣的。另外,眾測(cè)、自測(cè)、外包測(cè)試其實(shí)是屬于同一種測(cè)試方法的不同形式,即可分為手工測(cè)試和自動(dòng)化測(cè)試。目前國內(nèi)外已經(jīng)存在很多關(guān)于移動(dòng)應(yīng)用GUI 測(cè)試方法。這些有關(guān)移動(dòng)應(yīng)用GUI 測(cè)試方法的研究方向可分為模糊技術(shù)、錄制/回放,基于模型,且在這些技術(shù)中,基于模型生成測(cè)試用例的方法被認(rèn)為是最具有希望的研究方向之一[14]。

表3 列出了自動(dòng)化GUI 測(cè)試方法的優(yōu)缺點(diǎn),可供測(cè)試工程師選擇GUI 的測(cè)試方法作為一個(gè)依據(jù)。

2.3 GGUUII測(cè)試工具

表4 中列舉出針對(duì)現(xiàn)有的GUI 測(cè)試方法對(duì)應(yīng)的工具,其排名不分先后順序。這些工具來源于論文的整理得到,由于工具比較多,這里列出論文中出現(xiàn)較多次數(shù)的工具,包括隨機(jī)探測(cè)工具、基于模型探索、系統(tǒng)化探測(cè)工具及針對(duì)移動(dòng)應(yīng)用的錄制回放工具,另外我們還列出每個(gè)工作是否需要源代碼。

表2 云測(cè)試平臺(tái)對(duì)比表

表3 測(cè)試方法的優(yōu)缺點(diǎn)

表4 GUI 測(cè)試工具

2.4 GGUUII測(cè)試的評(píng)估方法

Amalfitano 等人在文獻(xiàn)[25]中提出GUI 測(cè)試的主要是以覆蓋率作為評(píng)價(jià)標(biāo)準(zhǔn)。其覆蓋率包括缺陷覆蓋率、活動(dòng)覆蓋率、事件覆蓋率。如公式(1)所示,缺陷覆蓋率是規(guī)定的測(cè)試時(shí)間內(nèi)或者執(zhí)行相同數(shù)目的測(cè)試用例時(shí)覆蓋的缺陷數(shù)目與缺陷總數(shù)的比值,是衡量測(cè)試工具或者測(cè)試用例有效性的主要指標(biāo)之一。活動(dòng)覆蓋率如公式(2)所示是在規(guī)定的測(cè)試時(shí)間內(nèi)或者執(zhí)行相同數(shù)目的測(cè)試用例時(shí)已經(jīng)覆蓋的活動(dòng)數(shù)量與活動(dòng)總數(shù)的比值。事件覆蓋率如公式(3)所示是在規(guī)定的測(cè)試時(shí)間內(nèi)或者執(zhí)行相同數(shù)目的測(cè)試用例時(shí)已覆蓋事件數(shù)量與事件總數(shù)的比值。另外,現(xiàn)今軟件開發(fā)人員通常采用更多的代碼來實(shí)現(xiàn)應(yīng)用軟件的GUI,幾乎能占到整個(gè)應(yīng)用軟件程序代碼量的60%[26],現(xiàn)在也有代碼覆蓋率來評(píng)估工具的效率之一,例如文獻(xiàn)[20]、[28]中就使用代碼覆蓋率來評(píng)估。

2.5 GGUUII測(cè)試技術(shù)的挑戰(zhàn)

Ozlem Muslu 提出了基于模型的GUI 測(cè)試用例生成的三大挑戰(zhàn),狀態(tài)相等的判斷,狀態(tài)搜索,輸入之間的等待時(shí)間[29]。在Choudhary S Rdeng 等人[24]對(duì)目前研究存在有關(guān)移動(dòng)應(yīng)用的自動(dòng)化工具進(jìn)行對(duì)比研究,目的是為了驗(yàn)證當(dāng)前的自動(dòng)化工具是否實(shí)現(xiàn)自動(dòng)輸入技術(shù),最后發(fā)現(xiàn),我們的自動(dòng)化輸入可以實(shí)現(xiàn),但是輸入的值并不能模擬用戶的真實(shí)輸入,只能是簡(jiǎn)單的隨機(jī)輸入而已。正如因?yàn)槊媾R這些挑戰(zhàn),使得自動(dòng)化測(cè)試在實(shí)際工程中使用甚少。這一結(jié)果和Vasquez M L 等人[27]通過向移動(dòng)應(yīng)用測(cè)試工作者發(fā)送問卷調(diào)查的方式來統(tǒng)計(jì)實(shí)際工業(yè)中的測(cè)試工程師依然采用測(cè)試手段,最后發(fā)現(xiàn)實(shí)際測(cè)試工程中測(cè)試工程師偏向于手工測(cè)試。在表4 的工具只有Monkey、MobiGUITAR 在實(shí)際中也得到一些測(cè)試工程師的青睞。

3 結(jié)語

本文從GUI 測(cè)試的定義,自動(dòng)化的測(cè)試框架、工具特別多,但是在實(shí)際工作中并沒有得到真正意義上的應(yīng)用,存在這一現(xiàn)象的原因是很多方面的,最突出的原因如下:

(1)測(cè)試工程師缺少自動(dòng)化相關(guān)的測(cè)試知識(shí);

(2)當(dāng)前的自動(dòng)化工具缺乏相應(yīng)的使用文檔;

(3)工具的安裝環(huán)境比較復(fù)雜,安裝過程比較耗時(shí)。

為了滿足實(shí)際測(cè)試工作者的需求,我們需要研究出可行度極高的移動(dòng)應(yīng)用GUI 自動(dòng)化測(cè)試方法,使得測(cè)試工作者從測(cè)試工作中的某些階段逐漸解脫出來,把更多的精力放在更重要的測(cè)試階段中。

4 未來展望

按照目前的發(fā)展趨勢(shì),未來的移動(dòng)應(yīng)用會(huì)呈現(xiàn)爆炸式增大,而我們的移動(dòng)應(yīng)用的GUI 測(cè)試實(shí)現(xiàn)自動(dòng)化是必然的趨勢(shì),我們當(dāng)前使用到的隨機(jī)測(cè)試、基于模型的測(cè)試、錄制回放測(cè)試中,基于模型的測(cè)試被認(rèn)為是最具有研究?jī)r(jià)值的測(cè)試,而基于模型的測(cè)試難點(diǎn)在于模型的構(gòu)建上。現(xiàn)有的MobiGUITAR[5]工具主要應(yīng)用于在模擬器上,構(gòu)建出的模型是映射到被測(cè)系統(tǒng)的控件上,其控件的有效性沒有進(jìn)行驗(yàn)證,另外,通過控件模型轉(zhuǎn)化為事件模型,最后再轉(zhuǎn)化為有限狀態(tài)機(jī)模型。接下來,通過遍歷模型得到的測(cè)試用例并沒有進(jìn)行測(cè)試用例約簡(jiǎn)和優(yōu)先級(jí)的排序。導(dǎo)致在有限的時(shí)間內(nèi),測(cè)試用例的執(zhí)行力不高。這樣子就沒有滿足盡快盡早暴露被測(cè)系統(tǒng)的缺陷。而Stoat[20]工具構(gòu)建出的模型是隨機(jī)模型,然后根據(jù)隨機(jī)模型進(jìn)行遍歷,從一開始的模型就不能真正映射到系統(tǒng),所以Stoat 構(gòu)建出來的模型不能完全代表被測(cè)系統(tǒng)。因此,在未來的研究中,對(duì)于模型的自動(dòng)化構(gòu)建以及如何構(gòu)建出可以映射被測(cè)系統(tǒng)的模型是未來研究方向之一。

猜你喜歡
模型
一半模型
一種去中心化的域名服務(wù)本地化模型
適用于BDS-3 PPP的隨機(jī)模型
提煉模型 突破難點(diǎn)
函數(shù)模型及應(yīng)用
p150Glued在帕金森病模型中的表達(dá)及分布
函數(shù)模型及應(yīng)用
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 在线视频一区二区三区不卡| 午夜啪啪福利| 欧美午夜视频在线| 久久77777| 在线国产毛片| 色综合国产| 成人国产精品一级毛片天堂| 欧美性猛交一区二区三区| 欧美亚洲欧美| 日本精品视频一区二区| 无码中文AⅤ在线观看| av色爱 天堂网| 超级碰免费视频91| 亚洲V日韩V无码一区二区| 国产福利2021最新在线观看| 亚洲一级色| 久久福利片| 55夜色66夜色国产精品视频| 香港一级毛片免费看| 亚洲色图在线观看| 毛片在线看网站| 2022国产无码在线| 精品人妻系列无码专区久久| 少妇精品在线| 欧洲亚洲欧美国产日本高清| 国产精品吹潮在线观看中文| 免费一级全黄少妇性色生活片| 波多野结衣一区二区三视频| 亚洲精品制服丝袜二区| 激情国产精品一区| 在线a网站| 欧美色综合网站| 精品国产中文一级毛片在线看| 都市激情亚洲综合久久| 国产精品第一区在线观看| 亚洲国产天堂久久综合| 亚洲综合网在线观看| 国产91精品调教在线播放| 欧美人在线一区二区三区| 五月婷婷综合网| 国产精品性| 伊人久久婷婷| 女高中生自慰污污网站| 谁有在线观看日韩亚洲最新视频| 欧美成人怡春院在线激情| 亚洲日韩AV无码一区二区三区人| 色偷偷综合网| 久久亚洲中文字幕精品一区| 欧美日韩在线第一页| 国产欧美日韩精品综合在线| 国产亚洲视频免费播放| 色老头综合网| 沈阳少妇高潮在线| 91福利免费| 中文字幕久久精品波多野结| 毛片国产精品完整版| 国产精品浪潮Av| 成人亚洲视频| 亚洲色图在线观看| 人人91人人澡人人妻人人爽| 1769国产精品视频免费观看| 国产在线观看91精品| 国产97区一区二区三区无码| 人妻精品全国免费视频| 亚洲欧美一级一级a| 天堂成人在线| 国产乱人伦AV在线A| 秋霞午夜国产精品成人片| 国产高颜值露脸在线观看| 伊在人亞洲香蕉精品區| 久久久久久午夜精品| 少妇精品在线| 国产视频一区二区在线观看 | 欧美激情福利| 国产成人免费视频精品一区二区| 无遮挡国产高潮视频免费观看 | 99热国产这里只有精品无卡顿"| 成人字幕网视频在线观看| 一级毛片基地| 男女性色大片免费网站| 搞黄网站免费观看| 亚州AV秘 一区二区三区|