国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      基于Android自動化測試框架的功能遍歷方法及系統(tǒng)與流程

      文檔序號:11864582閱讀:425來源:國知局
      基于Android自動化測試框架的功能遍歷方法及系統(tǒng)與流程

      本發(fā)明涉及軟件測試技術(shù)領(lǐng)域,更具體的說,涉及一種基于Android自動化測試框架的功能遍歷方法及系統(tǒng)。



      背景技術(shù):

      所謂功能遍歷,是指對應(yīng)用中的每個功能均做一次且僅做一次訪問,以驗證某個功能是否可用。其中,可以將應(yīng)用中的每個功能看作一顆樹,在進(jìn)行功能遍歷時,沿著樹的路徑,依次對樹中的每個結(jié)點均做一次且僅做一次訪問,根據(jù)訪問結(jié)果來確定功能驗證是否成功。

      對應(yīng)用的功能遍歷通常都是基于Android自動化框架來完成的。然而,目前在利用Android自動化測試框架,例如Robutium、UIautomator、Appuim、MonkeyRunner等自動化測試框架進(jìn)行功能遍歷時,測試人員往往需要從初始化環(huán)境開始,一步步詳細(xì)寫出界面的邏輯跳轉(zhuǎn)等操作,以及進(jìn)行操作成功的判斷。即,現(xiàn)有的利用Android自動化測試框架所進(jìn)行的功能遍歷是一種面向函數(shù)的編程書寫方式,其需要測試人員寫出每個節(jié)點的跳轉(zhuǎn)路徑和設(shè)置每個節(jié)點的狀態(tài),這就意味著測試人員需要做大量的工作。因此,現(xiàn)有的基于Android自動化測試框架所進(jìn)行的功能遍歷的效率并不高,且一旦某個節(jié)點出現(xiàn)問題,測試人員需要對每個節(jié)點的跳轉(zhuǎn)路徑及狀態(tài)設(shè)置進(jìn)行檢查,以確定出現(xiàn)問題的節(jié)點,如此便會增加修改難度,從而進(jìn)一步降低測試人員的測試效率。



      技術(shù)實現(xiàn)要素:

      鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的基于Android自動化測試框架的功能遍歷方法和相應(yīng)的系統(tǒng)。

      依據(jù)本發(fā)明的一個方面,提供了一種基于Android自動化測試框架的功能遍歷方法,該方法在Android自動化測試框架上對需要驗證的操作行為進(jìn)行封裝,具體包括:

      將需要驗證的操作行為細(xì)化到每一步操作;

      確定每一步操作的前置操作;

      根據(jù)所述操作和所述操作的前置操作,確定與所述前置操作相對應(yīng)的前置操作狀態(tài)類型;

      根據(jù)前置操作狀態(tài)類型對所述操作行為進(jìn)行封裝。

      可選地,在將需要驗證的操作行為細(xì)化到每一步操作的過程中,將需要驗證的操作行為分解成若干基礎(chǔ)單元;其中,把一次對界面的操作和與所述操作相對應(yīng)的操作狀態(tài)確定為基礎(chǔ)單元,由若干所述基礎(chǔ)單元的組合構(gòu)成所述操作行為。

      可選地,在確定所述每一步操作的前置操作的過程中,設(shè)置所述操作的前置操作狀態(tài),根據(jù)所述前置操作狀態(tài)確定所述操作的前置操作。

      可選地,在確定與所述前置操作相對應(yīng)的前置操作狀態(tài)類型的過程中,根據(jù)所述前置操作與所述操作之間的邏輯關(guān)系,確定所述前置操作狀態(tài)類型;其中,所述前置操作狀態(tài)類型包括前置界面與前置配置。

      可選地,在根據(jù)所述前置操作狀態(tài)類型對所述操作行為進(jìn)行封裝的過程中,獲取所述前置界面與前置配置之間的共性,根據(jù)所述共性對所述操作行為進(jìn)行封裝。

      可選地,在所述操作行為中的其中一個操作必須執(zhí)行之后,才能執(zhí)行所述其中一個操作的后一個操作時,所述其中一個操作視為所述后一個操作的前置配置。

      可選地,當(dāng)所述操作行為中的其中兩個或以上操作的前置操作為同一個時,所述前置操作視為所述兩個或以上操作的前置界面。

      根據(jù)本發(fā)明的另一方面,提供了一種基于Android自動化測試框架的功能遍歷系統(tǒng),其包括:

      操作行為細(xì)化單元,用于將需要驗證的操作行為細(xì)化到每一步操作;

      前置操作確定單元,用于確定每一步操作的前置操作;

      前置操作狀態(tài)類型確定單元,用于根據(jù)所述操作和所述操作的前置操作,確定與所述前置操作相對應(yīng)的前置操作狀態(tài)類型;

      封裝單元,用于根據(jù)前置操作狀態(tài)類型對所述操作行為進(jìn)行封裝;其中,在Android自動化測試框架上對所述操作行為進(jìn)行封裝。

      可選地,所述操作行為細(xì)化單元進(jìn)一步包括:基礎(chǔ)單元確定模塊,用于把一次對界面的操作和與所述操作相對應(yīng)的操作狀態(tài)確定為基礎(chǔ)單元,由若干所述基礎(chǔ)單元的組合構(gòu)成所述操作行為。

      可選地,所述前置操作確定單元進(jìn)一步包括:前置操作狀態(tài)設(shè)置單元,用于設(shè)置所述操作的前置操作狀態(tài),根據(jù)所述前置操作狀態(tài)確定所述操作的前置操作。

      可選地,所述前置操作狀態(tài)類型確定單元根據(jù)所述前置操作與所述操作之間的邏輯關(guān)系,確定所述前置操作狀態(tài)類型,所述前置操作狀態(tài)類型包括前置界面與前置配置;其中,

      在所述操作行為中的其中一個操作必須執(zhí)行之后,才能執(zhí)行所述其中一個操作的后一個操作時,所述其中一個操作視為所述后一個操作的前置配置;

      當(dāng)所述操作行為中的其中兩個或以上操作的前置操作為同一個時,所述前置操作視為所述兩個或以上操作的前置界面。

      可選地,所述封裝單元進(jìn)一步包括:

      共性獲取單元,用于獲取所述前置界面與前置配置之間的共性,根據(jù)所述共性對所述操作行為進(jìn)行封裝。

      根據(jù)本發(fā)明的基于Android自動化測試框架的功能遍歷方法和相應(yīng)的系統(tǒng),在進(jìn)行自動化測試的過程中,能夠?qū)y試人員從繁瑣的路徑和狀態(tài)設(shè)置細(xì)節(jié)中解放出來,從而使測試人員更專注于添加操作以及操作的判斷,在減少測試人員工作量的同時,降低了修改難度,提高了測試人員的工作效率。

      上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式。

      附圖說明

      通過閱讀下文優(yōu)選實施方式的詳細(xì)描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:

      圖1示出了根據(jù)本發(fā)明一個實施例的基于Android自動化測試框架的功能遍歷方法的流程圖;

      圖2示出了根據(jù)本發(fā)明一個實施例的修改背景圖案操作行為的邏輯結(jié)構(gòu)框圖;

      圖3示出了根據(jù)本發(fā)明一個實施例的基于Android自動化測試框架的功能遍歷系統(tǒng)的第一邏輯結(jié)構(gòu)框圖;

      圖4示出了根據(jù)本發(fā)明另一個實施例的基于Android自動化測試框架的功能遍歷系統(tǒng)的第二邏輯結(jié)構(gòu)框圖。

      具體實施方式

      下面將參照附圖更詳細(xì)地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

      參考圖1,該圖示出了根據(jù)本發(fā)明一個實施例的基于Android自動化測試框架的功能遍歷方法的主要流程圖,本實施例中基于Android自動化測試框架的功能遍歷方法主要包括如下步驟:

      步驟S110,將需要驗證的操作行為細(xì)化到每一步操作。

      需要說明的是,上述需要驗證的操作行為即需要驗證的功能,一個操作行為由多個操作構(gòu)成。因此,在本實施例中,首先將需要驗證的操作行為進(jìn)行抽象處理,即:將用戶一次對界面的操作和對該操作的結(jié)果視為一個最小的單元,然后通過這些細(xì)小單元的組合(例如在用戶進(jìn)行某個操作后,以用戶點擊確定鍵為此次操作行為的結(jié)束標(biāo)志)來構(gòu)成一次完整的操作行為。也就是說,在將需要驗證的操作行為細(xì)化到每一步操作的過程中,將需要驗證的操作行為分解成若干基礎(chǔ)單元,其中,把一次對界面的操作和與該操作相對應(yīng)的操作狀態(tài)確定為基礎(chǔ)單元,由若干基礎(chǔ)單元的組合構(gòu)成該操作行為。

      例如:有一個需要修改APP背景圖案的操作行為需要驗證,首先根據(jù)預(yù)先定義的操作流程將該操作行為分解成若干基礎(chǔ)單元,具體如下:啟動應(yīng)用(startApp)->進(jìn)入設(shè)置(gotoSetting)->進(jìn)入背景設(shè)置(gotoBackgroundSetting)->選擇背景圖案(SelectBackground)->確認(rèn)選中的背景圖案(ConfirmBackground)->確認(rèn)背景修改彈窗(ConfirmBackgroundDialog),然后對所分解的每一個基礎(chǔ)單元進(jìn)行編程。

      其中,作為本發(fā)明的一個示例,將設(shè)置背景作為本次操作的操作行為,那么該操作行為包括多個基礎(chǔ)單元,點擊應(yīng)用程序設(shè)置按鈕與進(jìn)入設(shè)置頁面,為一個基礎(chǔ)單元,點擊背景設(shè)置按鈕與進(jìn)入到選擇背景圖案為一個基礎(chǔ)單元,選擇背景圖案并顯示選中的背景圖案和確認(rèn)按鈕為一個基礎(chǔ)單元,用戶確認(rèn)選中的背景圖案并顯示確認(rèn)背景修改彈窗為一個基礎(chǔ)單元,確認(rèn)背景修改彈窗與返回至應(yīng)用程序設(shè)置頁面或者直接退出設(shè)置頁面為一個基礎(chǔ)單元。當(dāng)用戶點擊設(shè)置背景按鍵時,代表此次操作行為開始,當(dāng)彈出確認(rèn)彈窗時,表示此次操作行為結(jié)束。操作行為有很多,比如設(shè)置來電鈴聲、閱讀短信、微信語音聊天等等,操作行為均可分解為一個個的基礎(chǔ)單元。每個操作行為都是由數(shù)次的對界面操作和顯示響應(yīng)頁面構(gòu)成的,通過將一個操作行為分解成若干個基礎(chǔ)單元,可以通過單元來直接構(gòu)建操作行為,而不需要從繁瑣的路徑、狀態(tài)設(shè)置細(xì)節(jié)來構(gòu)建操作行為。

      步驟S120:確定每一步操作的前置操作。

      在步驟S110中,雖然細(xì)化的基礎(chǔ)單元都綁定管理了每一步的操作以及該操作的操作狀態(tài),在一定程度上可以減少編程人員以及測試人員的工作量,但是大量的基礎(chǔ)單元的組合依舊是一個復(fù)雜的過程,因此,需要讓每一步的操作都能夠自行找到自己的前置操作。其中,通過設(shè)置每一步操作與其前置操作狀態(tài)建立關(guān)聯(lián),,在操作行為執(zhí)行時便可依據(jù)所建立的關(guān)聯(lián)給出的導(dǎo)引,得以自動執(zhí)行,而不需要測試人員進(jìn)行一個基礎(chǔ)單元一個基礎(chǔ)單元的操作。

      下面舉出一個具體實施例例。如圖2所示,在本實施例中,首先考慮,當(dāng)需要執(zhí)行選擇背景圖案(SelectBackground)這一操作時,其要求必須首先進(jìn)入背景設(shè)置(gotoBackgroundSetting),只有執(zhí)行進(jìn)入背景設(shè)置(gotoBackgroundSetting)之后才能選擇背景圖案(SelectBackground);但是要進(jìn)入背景設(shè)置(gotoBackgroundSetting),就需要先進(jìn)入設(shè)置(gotoSetting),不過在執(zhí)行確認(rèn)選中的背景圖案(ConfirmBackground)打開確認(rèn)彈窗后如果點擊取消(cancel)也可以進(jìn)入背景設(shè)置(gotoBackgroundSetting)。但是,對于選擇背景圖案(SelectBackground)而言,它只要求當(dāng)前處于【背景設(shè)置】這一狀態(tài)下,而對于在【背景設(shè)置】這一狀態(tài)的前一狀態(tài)是什么,是不關(guān)心的。

      也就是說,可以將啟動應(yīng)用(startApp)->進(jìn)入設(shè)置(gotoSetting)->進(jìn)入背景設(shè)置(gotoBackgroundSetting)->選擇背景圖案(SelectBackground)這一過程視作一條馬爾科夫鏈,當(dāng)然,在這條馬爾科夫鏈中可能還有其他的分支,比如進(jìn)入背景設(shè)置后,可直接確認(rèn)背景圖案的設(shè)置,不一定非要進(jìn)行背景圖案的選擇。但在執(zhí)行選擇背景圖案這一操作時,我們將這條馬爾科夫鏈上的其他分支忽略掉,然后倒用馬爾科夫鏈,那么,每一個操作都只需要記憶它的前一個操作狀態(tài),就可以最終到達(dá)并且執(zhí)行自身。作為本發(fā)明的一個示例,將“進(jìn)入背景設(shè)置”設(shè)置為“選擇背景圖案”這一操作的前置操作狀態(tài),通過“進(jìn)入背景設(shè)置”這一前置操作狀態(tài)便可以最終到達(dá)并執(zhí)行“選擇背景圖案”這一操作。

      實際上,在將操作行為分解為基礎(chǔ)單元時,還需要考慮到基礎(chǔ)單元之間的關(guān)系是否唯一。比如對于確認(rèn)背景圖案這一操作行為,基礎(chǔ)單元的構(gòu)成可以是啟動應(yīng)用(startApp)->進(jìn)入設(shè)置(gotoSetting)->進(jìn)入背景設(shè)置(gotoBackgroundSetting)->確認(rèn)背景圖案設(shè)置,也可以是啟動應(yīng)用(startApp)->進(jìn)入設(shè)置(gotoSetting)->進(jìn)入背景設(shè)置(gotoBackgroundSetting)->選擇背景圖案(SelectBackground)->確認(rèn)背景圖案設(shè)置,也就是說,在確認(rèn)背景圖案設(shè)置時,在確定為“確認(rèn)背景圖案設(shè)置”添加前置操作狀態(tài)時,就不能為其添加前置操作狀態(tài)。為每一個操作添加一個前置操作狀態(tài)的手段,可保證確定該操作的唯一的前置操作。

      S130:根據(jù)操作和操作的前置操作,確定與前置操作相對應(yīng)的前置操作狀態(tài)類型。

      其中,在確定與前置操作相對應(yīng)的前置操作狀態(tài)類型的過程中,根據(jù)前置操作與操作之間的邏輯關(guān)系,確定前置操作狀態(tài)類型;其中,前置操作狀態(tài)類型包括前置界面與前置配置。其中,在操作行為中的其中一個操作必須執(zhí)行之后,才能執(zhí)行該其中一個操作的后一個操作時,該其中一個操作視為后一個操作的前置配置;當(dāng)操作行為中的其中兩個或以上操作的前置操作為同一個時,前置操作視為兩個或以上操作的前置界面。

      同樣結(jié)合圖2的邏輯過程,例如,在執(zhí)行“確認(rèn)選中的背景圖案”這一操作時,對于它而言,它的前置操作狀態(tài)是“進(jìn)入背景設(shè)置”,因為只要“進(jìn)入背景設(shè)置”這一操作狀態(tài),就可以執(zhí)行“確認(rèn)選中的背景圖案”這一操作,而不需要先執(zhí)行“選擇背景圖案”這一操作,但是,當(dāng)要完成對背景圖案的修改時,在執(zhí)行“確認(rèn)選中的背景圖案”之前,必須先執(zhí)行“選擇背景圖案”這一操作。

      也是就說,進(jìn)入背景設(shè)置->選擇背景圖案->確認(rèn)選中的背景圖案是更換背景圖案這個操作行為的流程,因此,可以將“進(jìn)入背景設(shè)置”理解為“選擇背景圖案”和“確認(rèn)選中的背景圖案”這兩個操作的前置界面,但是僅當(dāng)必須執(zhí)行“選擇背景圖案”這一操作之后才可以執(zhí)行“確認(rèn)選中的背景圖案”的時候才能將“選擇背景圖案”視為“確認(rèn)選中的背景圖案”的前置配置。

      對于前置配置,更為恰當(dāng)?shù)氖纠谟贏ndroid設(shè)置中的開啟開發(fā)者選項,打開USB調(diào)試等功能。因為其必須首先到“關(guān)于手機(jī)”里去連續(xù)點擊版本號才能進(jìn)入“開發(fā)者模式”,然后才能進(jìn)去“開發(fā)者選項”,在其中必須打開“開啟開發(fā)者選項”,然后才能打開“USB調(diào)試”功能,否則該功能是無法使用的。此外,類似的例子還有提交反饋前,必須先驗證網(wǎng)絡(luò)的暢通等,在此不再作過多贅述。

      作為示例,首先將“確認(rèn)選中的背景圖案”這一操作的前置界面設(shè)置為“進(jìn)入背景設(shè)置”,將“確認(rèn)選中的背景圖案”這一操作的前置配置設(shè)置為“選擇背景圖案”,然后設(shè)定只有在僅當(dāng)必須執(zhí)行這一操作之后才可以執(zhí)行“確認(rèn)選中的背景圖案”這一操作,否則需要“選擇背景圖案”和“確認(rèn)選中的背景圖案”這兩個操作共同存在時才能完成設(shè)置背景這一操作行為。

      在具有兩種分支的情況下,還可考慮將一個分支作為一個基礎(chǔ)單元來實現(xiàn),比如“選擇背景圖案”、“確認(rèn)選中的背景圖案”作為一個基礎(chǔ)單元,為其設(shè)置前置狀態(tài)信息,將“確認(rèn)選中的背景圖案”作為一個基礎(chǔ)單元,為其設(shè)置前置狀態(tài)信息,從而保證一個基礎(chǔ)單元的前置狀態(tài)信息唯一。S140:根據(jù)前置操作狀態(tài)類型對操作行為進(jìn)行封裝。

      其中,在根據(jù)前置操作狀態(tài)類型對操作行為進(jìn)行封裝的過程中,將前置的界面和前置的配置條件結(jié)合起來,前置的配置條件比如有apk/功能、當(dāng)前UI的狀態(tài),因為前置條件不同,會有不同的操作方式。舉例來說,執(zhí)行一條操作“打開閃光燈當(dāng)手電筒用”有多種實現(xiàn)方式:(1)可以通過系統(tǒng)應(yīng)用打開;(2)可以通過系統(tǒng)的快捷菜單打開可能可以通過第三方應(yīng)用打開;(3)通過系統(tǒng)有預(yù)定義的快捷硬件操作;(4)可以通過硬件按鈕來操作。獲取前置界面與前置配置條件的關(guān)系,根據(jù)所述關(guān)系對操作行為進(jìn)行封裝。在封裝的過程中,可以在必要的位置加入日志和截圖,以方便統(tǒng)一管理和對邏輯進(jìn)行修改判斷。

      作為示例,當(dāng)用戶點擊啟動APP后,即開始了功能遍歷,在對功能進(jìn)行遍歷的過程中,可以給出正在進(jìn)行遍歷的某個功能所包含的操作的操作名稱以提示測試者當(dāng)前所遍歷功能以及該功能遍歷的進(jìn)程(即對該功能遍歷到哪一步了),當(dāng)對某一個功能遍歷失敗時,可以設(shè)置重新對某個遍歷失敗的功能進(jìn)行重新遍歷,也可以給出操作失敗的提示并插入一個截圖,以便于測試人員對遍歷失敗的功能邏輯進(jìn)行修改。

      綜上,利用本發(fā)明提供的基于Android自動化測試框架的功能遍歷方法進(jìn)行功能遍歷,能夠?qū)y試人員從繁瑣的路徑和狀態(tài)設(shè)置細(xì)節(jié)中解放出來,從而使測試人員更專注于添加操作以及操作的判斷,在減少測試人員工作量的同時,降低了修改難度,提高了測試人員的工作效率。

      下面說明本發(fā)明的另一方面。

      參考圖3,該圖示出了根據(jù)本發(fā)明一個實施例的基于Android自動化測試框架的功能遍歷系統(tǒng)的第一邏輯結(jié)構(gòu)。本實施例中的基于Android自動化測試框架的功能遍歷系統(tǒng)主要包括:

      操作行為細(xì)化單元310,本實施例中的操作行為細(xì)化單元310主要用于將需要驗證的操作行為細(xì)化到每一步操作。

      前置操作確定單元320,本實施例中的前置操作確定單元320主要用于確定每一步操作的前置操作。

      前置操作狀態(tài)類型確定單元330,本實施例中的前置操作狀態(tài)類型確定單元330主要用于根據(jù)操作和操作的前置操作,確定與前置操作相對應(yīng)的前置操作狀態(tài)類型;

      封裝單元340,本實施例中的封裝單元340主要用于根據(jù)前置操作狀態(tài)類型對操作行為進(jìn)行封裝;其中,在Android自動化測試框架上對操作行為進(jìn)行封裝。

      進(jìn)一步地,參考圖4,該圖示出了根據(jù)本發(fā)明另一個實施例的基于Android自動化測試框架的功能遍歷系統(tǒng)的第二邏輯結(jié)構(gòu)。

      圖4結(jié)合圖3,在本實施例中,操作行為細(xì)化單元310進(jìn)一步包括基礎(chǔ)單元確定模塊11,本實施例中的基礎(chǔ)單元確定模塊11主要用于把一次對界面的操作和與操作相對應(yīng)的操作狀態(tài)確定為基礎(chǔ)單元,由若干基礎(chǔ)單元的組合構(gòu)成操作行為。

      參考前述,例如:有一個需要修改APP背景圖案的操作行為需要驗證,首先根據(jù)預(yù)先定義的操作流程將該操作行為分解成若干基礎(chǔ)單元,具體如下:啟動應(yīng)用(startApp)->進(jìn)入設(shè)置(gotoSetting)->進(jìn)入背景設(shè)置(gotoBackgroundSetting)->選擇背景圖案(SelectBackground)->確認(rèn)選中的背景圖案(ConfirmBackground)->確認(rèn)背景修改彈窗(ConfirmBackgroundDialog),然后對所分解的每一個基礎(chǔ)單元進(jìn)行編程。

      此外,前置操作確定單元320進(jìn)一步包括前置操作狀態(tài)設(shè)置單元21,在本實施例中,前置操作狀態(tài)設(shè)置單元21主要用于設(shè)置操作的前置操作狀態(tài),根據(jù)前置操作狀態(tài)確定操作的前置操作。

      雖然細(xì)化的基礎(chǔ)單元都綁定管理了每一步的操作以及該操作的操作狀態(tài),在一定程度上可以減少測試人員的工作量,但是大量的基礎(chǔ)單元的組合依舊是一個復(fù)雜的過程,因此,需要讓每一步的操作都能夠自行找到自己的前置操作。其中,通過設(shè)置每一步操作的前置操作狀態(tài),根據(jù)所設(shè)置的前置操作狀態(tài)使每一步操作都能夠找到自己的前置操作。

      同樣參考前述,當(dāng)需要執(zhí)行選擇背景圖案(SelectBackground)這一操作時,其要求必須首先進(jìn)入背景設(shè)置(gotoBackgroundSetting),只有執(zhí)行進(jìn)入背景設(shè)置(gotoBackgroundSetting)之后才能選擇背景圖案(SelectBackground);但是要進(jìn)入背景設(shè)置(gotoBackgroundSetting),就需要先進(jìn)入設(shè)置(gotoSetting),不過在執(zhí)行確認(rèn)選中的背景圖案(ConfirmBackground)打開確認(rèn)彈窗后如果點擊取消(cancel)也可以進(jìn)入背景設(shè)置(gotoBackgroundSetting)。但是,對于選擇背景圖案(SelectBackground)而言,它只要求當(dāng)前處于【背景設(shè)置】這一狀態(tài)下,而對于在【背景設(shè)置】這一狀態(tài)的前一狀態(tài)是什么,是不關(guān)心的。

      也就是說,根據(jù)圖2所示的邏輯過程,可以將啟動應(yīng)用(startApp)->進(jìn)入設(shè)置(gotoSetting)->進(jìn)入背景設(shè)置(gotoBackgroundSetting)->選擇背景圖案(SelectBackground)這一過程視作一條馬爾科夫鏈,當(dāng)然,在這條馬爾科夫鏈中可能還有其他的分支,但在執(zhí)行選擇背景圖案這一操作時,我們將這條馬爾科夫鏈上的其他分支忽略掉,然后倒用馬爾科夫鏈,那么,每一個操作都只需要記憶它的前一個操作狀態(tài),就可以最終到達(dá)并且執(zhí)行自身。因此,需要為每一個操作添加一個前置操作狀態(tài),通過添加的這一前置操作狀態(tài)即可確定該操作的前置操作。

      另外,前置操作狀態(tài)類型確定單元330根據(jù)前置操作與操作之間的邏輯關(guān)系,確定前置操作狀態(tài)類型,前置操作狀態(tài)類型包括前置界面與前置配置;其中,在操作行為中的其中一個操作必須執(zhí)行之后,才能執(zhí)行所述其中一個操作的后一個操作時,其中一個操作視為后一個操作的前置配置;當(dāng)操作行為中的其中兩個或以上操作的前置操作為同一個時,前置操作視為兩個或以上操作的前置界面。

      例如,在執(zhí)行“確認(rèn)選中的背景圖案”這一操作時,對于它而言,它的前置操作狀態(tài)是“進(jìn)入背景設(shè)置”,因為只要“進(jìn)入背景設(shè)置”這一操作狀態(tài),就可以執(zhí)行“確認(rèn)選中的背景圖案”這一操作,而不需要先執(zhí)行“選擇背景圖案”這一操作,但是,當(dāng)要完成對背景圖案的修改時,在執(zhí)行“確認(rèn)選中的背景圖案”之前,必須先執(zhí)行“選擇背景圖案”這一操作。

      也是就說,進(jìn)入背景設(shè)置->選擇背景圖案->確認(rèn)選中的背景圖案是更換背景圖案這個操作行為的流程,因此,可以將“進(jìn)入背景設(shè)置”理解為“選擇背景圖案”和“確認(rèn)選中的背景圖案”這兩個操作的前置界面,但是僅當(dāng)必須執(zhí)行“選擇背景圖案”這一操作之后才可以執(zhí)行“確認(rèn)選中的背景圖案”的時候才能將“選擇背景圖案”視為“確認(rèn)選中的背景圖案”的前置配置。

      對于前置配置,更為恰當(dāng)?shù)氖纠谟贏ndroid設(shè)置中的開啟開發(fā)者選項,打開USB調(diào)試等功能。因為其必須首先到“關(guān)于手機(jī)”里去連續(xù)點擊版本號才能進(jìn)入“開發(fā)者模式”,然后才能進(jìn)去“開發(fā)者選項”,在其中必須打開“開啟開發(fā)者選項”,然后才能打開“USB調(diào)試”功能,否則該功能是無法使用的。此外,類似的例子還有提交反饋前,必須先驗證網(wǎng)絡(luò)的暢通等,在此不再作過多贅述。

      此外,封裝單元340進(jìn)一步包括共性獲取單元41,本實施例中的共性獲取單元41主要用于獲取前置界面與前置配置之間的共性,根據(jù)共性對操作行為進(jìn)行封裝。在封裝的過程中,可以在必要的位置加入日志和截圖,以方便統(tǒng)一管理和對邏輯進(jìn)行修改判斷。

      綜上,利用本發(fā)明提供的基于Android自動化測試框架的功能遍歷系統(tǒng)進(jìn)行功能遍歷,能夠?qū)y試人員從繁瑣的路徑和狀態(tài)設(shè)置細(xì)節(jié)中解放出來,從而使測試人員更專注于添加操作以及操作的判斷,在減少測試人員工作量的同時,降低了修改難度,提高了測試人員的工作效率。

      在此提供的算法和顯示不與任何特定計算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。

      在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細(xì)節(jié)的情況下實踐。在一些實例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。

      類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。

      本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。

      此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實施例的任意之一都可以以任意的組合方式來使用。

      本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP)來實現(xiàn)根據(jù)本發(fā)明實施例的實現(xiàn)提示窗展現(xiàn)廣告的系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計算機(jī)程序和計算機(jī)程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機(jī)可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。

      應(yīng)該注意的是上述實施例對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計出替換實施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計算機(jī)來實現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。

      本發(fā)明公開了,A1、一種基于Android自動化測試框架的功能遍歷方法,包括:

      將需要驗證的操作行為細(xì)化到每一步操作;

      確定每一步操作的前置操作;

      根據(jù)所述操作和所述操作的前置操作,確定與所述前置操作相對應(yīng)的前置操作狀態(tài)類型;

      根據(jù)前置操作狀態(tài)類型對所述操作行為進(jìn)行封裝。

      A2、根據(jù)A1所述的方法,其特征在于,在將需要驗證的操作行為細(xì)化到每一步操作的過程中,

      將需要驗證的操作行為分解成若干基礎(chǔ)單元;其中,把一次對界面的操作和與所述操作相對應(yīng)的操作狀態(tài)確定為基礎(chǔ)單元,由若干所述基礎(chǔ)單元的組合構(gòu)成所述操作行為。

      A3、根據(jù)A1所述的方法,其特征在于,在確定所述每一步操作的前置操作的過程中,

      設(shè)置所述操作的前置操作狀態(tài),根據(jù)所述前置操作狀態(tài)確定所述操作的前置操作。

      A4、根據(jù)A1所述的方法,其特征在于,在確定與所述前置操作相對應(yīng)的前置操作狀態(tài)類型的過程中,

      根據(jù)所述前置操作與所述操作之間的邏輯關(guān)系,確定所述前置操作狀態(tài)類型;其中,所述前置操作狀態(tài)類型包括前置界面與前置配置。

      A5、根據(jù)A4所述的方法,其特征在于,在根據(jù)所述前置操作狀態(tài)類型對所述操作行為進(jìn)行封裝的過程中,

      獲取所述前置界面與前置配置之間的共性,根據(jù)所述共性對所述操作行為進(jìn)行封裝。

      A6、根據(jù)A4所述的方法,其特征在于,在所述操作行為中的其中一個操作必須執(zhí)行之后,才能執(zhí)行所述其中一個操作的后一個操作時,所述其中一個操作視為所述后一個操作的前置配置。

      A7、根據(jù)A4所述的方法,其特征在于,當(dāng)所述操作行為中的其中兩個或以上操作的前置操作為同一個時,所述前置操作視為所述兩個或以上操作的前置界面。

      B8、一種基于Android自動化測試框架的功能遍歷系統(tǒng),包括:

      操作行為細(xì)化單元,用于將需要驗證的操作行為細(xì)化到每一步操作;

      前置操作確定單元,用于確定每一步操作的前置操作;

      前置操作狀態(tài)類型確定單元,用于根據(jù)所述操作和所述操作的前置操作,確定與所述前置操作相對應(yīng)的前置操作狀態(tài)類型;

      封裝單元,用于根據(jù)前置操作狀態(tài)類型對所述操作行為進(jìn)行封裝;其中,在Android自動化測試框架上對所述操作行為進(jìn)行封裝。

      B9、根據(jù)B8所述的系統(tǒng),其特征在于,所述操作行為細(xì)化單元進(jìn)一步包括:

      基礎(chǔ)單元確定模塊,用于把一次對界面的操作和與所述操作相對應(yīng)的操作狀態(tài)確定為基礎(chǔ)單元,由若干所述基礎(chǔ)單元的組合構(gòu)成所述操作行為。

      B10、根據(jù)B8所述的系統(tǒng),其特征在于,所述前置操作確定單元進(jìn)一步包括:

      前置操作狀態(tài)設(shè)置單元,用于設(shè)置所述操作的前置操作狀態(tài),根據(jù)所述前置操作狀態(tài)確定所述操作的前置操作。

      B11、根據(jù)B8所述的系統(tǒng),其特征在于,所述前置操作狀態(tài)類型確定單元根據(jù)所述前置操作與所述操作之間的邏輯關(guān)系,確定所述前置操作狀態(tài)類型,所述前置操作狀態(tài)類型包括前置界面與前置配置;其中,

      在所述操作行為中的其中一個操作必須執(zhí)行之后,才能執(zhí)行所述其中一個操作的后一個操作時,所述其中一個操作視為所述后一個操作的前置配置;

      當(dāng)所述操作行為中的其中兩個或以上操作的前置操作為同一個時,所述前置操作視為所述兩個或以上操作的前置界面。

      B12、根據(jù)B11所述的系統(tǒng),其特征在于,所述封裝單元進(jìn)一步包括:

      共性獲取單元,用于獲取所述前置界面與前置配置之間的共性,根據(jù)所述共性對所述操作行為進(jìn)行封裝。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1