亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種APP測(cè)試方法和裝置與流程

文檔序號(hào):12595916閱讀:430來源:國(guó)知局
一種APP測(cè)試方法和裝置與流程

本發(fā)明涉及軟件技術(shù)領(lǐng)域,特別是涉及一種APP測(cè)試方法和一種APP測(cè)試裝置。



背景技術(shù):

APP(Application,應(yīng)用程序)是指智能手機(jī)的第三方應(yīng)用程序,是目前被人們廣泛使用的一種工具。

在一款A(yù)PP的使用過程中,該APP的開發(fā)商需要不斷對(duì)APP的各UI界面進(jìn)行測(cè)試,以測(cè)試系統(tǒng)的穩(wěn)定性。目前常用測(cè)試方法是monkey測(cè)試,monkey(monkey是Android中的一個(gè)命令行工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中)測(cè)試是Android系統(tǒng)自帶的一種命令行測(cè)試工具,可以運(yùn)行在模擬器里或?qū)嶋H設(shè)備中,monkey測(cè)試的原理是:利用socket(套接字)通訊的方式模擬用戶觸摸屏幕、滑動(dòng)Trackball、按鍵等操作對(duì)APP程序進(jìn)行穩(wěn)定性的測(cè)試,向系統(tǒng)發(fā)送偽隨機(jī)的事件流、數(shù)據(jù)流,實(shí)現(xiàn)對(duì)正在開發(fā)的應(yīng)用程序進(jìn)行測(cè)試。

但是,由于monkey測(cè)試時(shí)使用的事件流、數(shù)據(jù)流是完全隨機(jī)的,不受人工控制的,例如,monkey程序在模擬用戶操作對(duì)多個(gè)頁面點(diǎn)擊測(cè)試的過程中,其中,各頁面含有多個(gè)UI(User Interface,用戶界面)界面元素,如果對(duì)于某個(gè)頁面,只需要測(cè)試其中的一個(gè)UI界面元素時(shí),而由于monkey在對(duì)該頁面的點(diǎn)擊過程總是完全隨機(jī)的,可能需要很多次點(diǎn)擊操作才能點(diǎn)擊到上述UI界面元素從而獲取到測(cè)試數(shù)據(jù),或者根本獲取相應(yīng)UI界面元素的測(cè)試數(shù)據(jù)。因此在先技術(shù)中,無效點(diǎn)擊次數(shù)多,并且可能漏測(cè)關(guān)鍵的UI界面元素,測(cè)試效率低。



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

鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的APP測(cè)試方法和相應(yīng)的APP測(cè)試裝置。

依據(jù)本發(fā)明的一個(gè)方面,提供了一種APP測(cè)試方法,包括:

針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

優(yōu)選地,在所述針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略的步驟之前,還包括:

獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹;

接收對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略;

根據(jù)所述對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略,生成針對(duì)所述應(yīng)用的測(cè)試模板配置信息。

可選地,所述獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹的步驟包括:

通過調(diào)用Hierarchy Viewer工具的各布局結(jié)構(gòu)獲取API,獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

可選地,所述從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試的步驟包括:

將當(dāng)前激活的Activity中的UI界面元素,與測(cè)試模板配置信息中的各Activity中的UI界面元素進(jìn)行匹配,確定允許觸發(fā)的UI界面元素;

對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試。

可選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略包括:

各Activity中允許觸發(fā)的UI界面元素、各UI界面元素的觸發(fā)位置、各 UI界面元素的觸發(fā)操作類型、各UI界面元素的觸發(fā)順序。

可選地,所述對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試的步驟包括:

對(duì)于存在觸發(fā)順序的UI界面元素,按照所述觸發(fā)順序觸發(fā)所述UI界面元素進(jìn)行測(cè)試;

對(duì)于相互之間不存在觸發(fā)順序的UI界面元素,隨機(jī)觸發(fā)各UI界面元素進(jìn)行測(cè)試。

可選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,還包括:

對(duì)各Activity的觸發(fā)比例,和/或?qū)Ω鱑I界面元素的觸發(fā)次數(shù)。

可選地,所述對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試的步驟,還包括:

記錄所述UI界面元素所在的Activity的被觸發(fā)數(shù)量;和/或記錄所述UI界面元素被觸發(fā)的數(shù)量。

根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種APP測(cè)試裝置,包括:

測(cè)試模板配置信息加載模塊,適于針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

UI界面元素獲取模塊,適于在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

測(cè)試模塊,適于從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

輸出模塊,適于將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

優(yōu)選地,在所述測(cè)試模板配置信息加載模塊之前,還包括:

結(jié)構(gòu)樹獲取模塊,適于獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹;

測(cè)試策略接收模塊,適于接收對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略;

測(cè)試模板配置信息生成模塊,適于根據(jù)所述對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略,生成針對(duì)所述應(yīng)用的測(cè)試模板配置信息。

優(yōu)選地,所述結(jié)構(gòu)樹獲取模塊包括:

結(jié)構(gòu)樹獲取子模塊,適于通過調(diào)用Hierarchy Viewer工具的各布局結(jié)構(gòu)獲取API,獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

優(yōu)選地,所述測(cè)試模塊包括:

UI界面元素觸發(fā)確定子模塊,適于將當(dāng)前激活的Activity中的UI界面元素,與測(cè)試模板配置信息中的各Activity中的UI界面元素進(jìn)行匹配,確定允許觸發(fā)的UI界面元素;

UI界面元素測(cè)試子模塊,適于對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試。

優(yōu)選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略包括:

各Activity中允許觸發(fā)的UI界面元素、各UI界面元素的觸發(fā)位置、各UI界面元素的觸發(fā)操作類型、各UI界面元素的觸發(fā)順序。

優(yōu)選地,所述UI界面元素測(cè)試子模塊包括:

UI界面元素順序測(cè)試子模塊,適于對(duì)于存在觸發(fā)順序的UI界面元素,按照所述觸發(fā)順序觸發(fā)所述UI界面元素進(jìn)行測(cè)試;

UI界面元素隨機(jī)測(cè)試子模塊,適于對(duì)于相互之間不存在觸發(fā)順序的UI界面元素,隨機(jī)觸發(fā)各UI界面元素進(jìn)行測(cè)試。

優(yōu)選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,還包括:

對(duì)各Activity的觸發(fā)比例,和/或?qū)Ω鱑I界面元素的觸發(fā)次數(shù)。

優(yōu)選地,所述UI界面元素測(cè)試子模塊還包括:

界面元素觸發(fā)數(shù)量記錄子模塊,適于記錄所述UI界面元素所在的Activity的被觸發(fā)數(shù)量;和/或記錄所述UI界面元素被觸發(fā)的數(shù)量。

根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種APP測(cè)試設(shè)備,包括:

存儲(chǔ)器,加載有多條可執(zhí)行指令;

處理器,執(zhí)行所述多條可執(zhí)行指令;所述多條指令包括執(zhí)行以下步驟的方法:

針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

本發(fā)明實(shí)施例可以對(duì)待測(cè)試的應(yīng)用加載相應(yīng)的測(cè)試模版配置信息,該測(cè)試模版配置信息中包括了對(duì)該應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,并在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素,提取測(cè)試模版配置信息中對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并依據(jù)各UI界面元素的測(cè)試邏輯對(duì)各UI界面元素進(jìn)行測(cè)試。解決了在先技術(shù)中,無效點(diǎn)擊次數(shù)多,并且可能漏測(cè)關(guān)鍵的UI界面元素,測(cè)試效率低的問題,取得了可以精確的控制對(duì)哪些UI界面元素進(jìn)行點(diǎn)擊,降低無效點(diǎn)擊次數(shù),提高了UI界面的測(cè)試效率的效果。

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

附圖說明

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

圖1是本發(fā)明實(shí)施例提供的一種APP測(cè)試方法的步驟流程圖;

圖2是本發(fā)明實(shí)施例提供的一種APP測(cè)試方法的步驟流程圖;

圖3是本發(fā)明實(shí)施例提供的一種APP測(cè)試方法的步驟流程圖;

圖4是本發(fā)明實(shí)施例提供的一種APP測(cè)試裝置的結(jié)構(gòu)框圖;

圖5是本發(fā)明實(shí)施例提供的一種APP測(cè)試裝置的結(jié)構(gòu)框圖;

圖6是本發(fā)明實(shí)施例提供的一種APP測(cè)試裝置的結(jié)構(gòu)框圖;及

圖7是本發(fā)明實(shí)施例提供的一種APP測(cè)試設(shè)備的結(jié)構(gòu)框圖。

具體實(shí)施方式

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

實(shí)施例一

參照?qǐng)D1,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種APP測(cè)試方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:

步驟S110:針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略。

本發(fā)明實(shí)施例可以應(yīng)用于針對(duì)各種類型APP的UI界面元素被點(diǎn)擊時(shí)的穩(wěn)定性進(jìn)行測(cè)試。針對(duì)APP的測(cè)試是基于UI層面的自動(dòng)化測(cè)試,也即基于APP顯示界面的控件層面,主要是通過獲取當(dāng)前顯示窗口的視圖信息,然后在當(dāng)前視圖內(nèi)查找目標(biāo)控件,并根據(jù)控件屬性信息來實(shí)現(xiàn)對(duì)應(yīng)用的自動(dòng)化測(cè)試。Instrumentation是目前常用的測(cè)試方法,其是通過將測(cè)試APK(Android Package,應(yīng)用程序包文件)和被測(cè)APK運(yùn)行在同一進(jìn)程中,通過Java的反射機(jī)制,來獲取當(dāng)前窗口中的所有視圖,并根據(jù)視圖信息查找到目標(biāo)控件的屬性信息,并計(jì)算出目標(biāo)控件中心點(diǎn)坐標(biāo),然后利用Instrumentation內(nèi)部API(Application Programming Interface,應(yīng)用程序編程接口),實(shí)現(xiàn)對(duì)目標(biāo)控件的點(diǎn)擊操作,并由此產(chǎn)生一個(gè)輸入事件。Instrumentation測(cè)試方法常見的應(yīng)用模式可以包括:Hierachyview+monkey、uiautomator等等。

在應(yīng)用程序中,Activity是一個(gè)應(yīng)用程序組件,提供一個(gè)屏幕,用戶可以用來交互為了完成某項(xiàng)任務(wù)。Activity可以用于處理應(yīng)用程序的整體性工作,為用戶顯示指定的頁面。在各Activity都有相應(yīng)的UI(User Interface)界面,UI界面即向用戶所能看到的APP顯示頁面。本發(fā)明實(shí)施例中的UI界面元素是指UI界面中相應(yīng)的控件(如點(diǎn)擊按鈕)。

針對(duì)待測(cè)試的APP應(yīng)用程序,可以預(yù)先針對(duì)該APP應(yīng)用程序預(yù)先設(shè)置對(duì)應(yīng)的測(cè)試模版配置信息,該測(cè)試模版配置信息可以包括對(duì)該應(yīng)用的各個(gè)Activity中的各UI界面的測(cè)試策略,該測(cè)試策略如,針對(duì)各Activity,設(shè)定允許觸發(fā)的UI界面元素,設(shè)定UI界面元素的觸發(fā)位置,設(shè)定對(duì)UI界面元素的觸發(fā)操作類型、設(shè)定不同Activity的UI界面元素之間的測(cè)試順序等等,對(duì)于測(cè)試模版配置信息中包含的對(duì)待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面的測(cè)試策略示例將在實(shí)施例三中進(jìn)行詳細(xì)說明。

在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例可設(shè)置一個(gè)測(cè)試策略配置窗口,該測(cè)試策略窗口中可以展示各Activity、該Activity中的UI界面元素的信息,Activity以及UI界面元素之間的層級(jí)關(guān)系。

在實(shí)際應(yīng)用中,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要自行設(shè)置針對(duì)待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,本發(fā)明對(duì)此不加以限制。

在配置了對(duì)于一個(gè)APP的測(cè)試模板配置信息之后,本發(fā)明實(shí)施例在對(duì)APP的UI界面元素測(cè)試之前,先加載相應(yīng)的測(cè)試模板配置信息。

步驟S120:在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素。

本發(fā)明實(shí)施例中,在啟動(dòng)的待測(cè)試應(yīng)用后,激活A(yù)PP的主頁面的Activity,那么可以獲取該Activity中的UI界面元素,按照測(cè)試模板配置信息包括的該Activity的各UI界面元素的測(cè)試策略,對(duì)相應(yīng)的UI界面元素進(jìn)行測(cè)試。當(dāng)點(diǎn)擊了某個(gè)UI界面元素,進(jìn)入到其他頁面,則激活相應(yīng)頁面的Activity,然后可以獲取該Activity中的UI界面元素,測(cè)試模板配置信息包括的該Activity的各UI界面元素的測(cè)試策略,對(duì)相應(yīng)的UI界面元素進(jìn)行測(cè)試。

步驟S130:從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試。

本發(fā)明實(shí)施例中,各UI界面元素的測(cè)試邏輯可以是針對(duì)UI界面元素預(yù)先設(shè)置相應(yīng)的點(diǎn)擊次數(shù),例如,針對(duì)某UI界面元素M設(shè)置觸發(fā)次數(shù)為10次,在對(duì)APP進(jìn)行一次測(cè)試的整個(gè)過程中,當(dāng)對(duì)該UI界面元素M的觸發(fā)次數(shù)達(dá)到10次時(shí),則對(duì)APP的當(dāng)前UI界面元素M不再執(zhí)行觸發(fā)操作。各UI界面元素的測(cè)試邏輯也可以是針對(duì)UI界面元素預(yù)先設(shè)置針對(duì)APP的UI界面中不同元素的觸發(fā)順序,例如,針對(duì)某UI界面元素M,首先對(duì)該UI界面元素M執(zhí)行觸發(fā)操作,然后針對(duì)點(diǎn)擊該UI界面元素M對(duì)應(yīng)的第二層次UI界面中的界面元素再設(shè)置相應(yīng)的觸發(fā)順序,進(jìn)而根據(jù)該觸發(fā)順序?qū)υ摰诙哟蜺I界面中的UI界面元素執(zhí)行相應(yīng)地觸發(fā)操作等等。

在實(shí)際應(yīng)用中,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要自行設(shè)置針對(duì)各UI界面元素的測(cè)試邏輯,本發(fā)明對(duì)此不加以限制。

步驟S140:將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

本發(fā)明實(shí)施例中,在對(duì)待測(cè)試應(yīng)用的激活的Activity中的UI界面元素測(cè)試依據(jù)測(cè)試策略測(cè)試完成之后,對(duì)于測(cè)試過程中各UI界面元素的觸發(fā)次數(shù)以及相應(yīng)的測(cè)試信息在各對(duì)應(yīng)的Activity中都有相應(yīng)地信息記錄,將各Activity中針對(duì)各UI界面元素的測(cè)試信息進(jìn)行分析,并依據(jù)分析結(jié)果查找該APP所對(duì)應(yīng)的系統(tǒng)的穩(wěn)定性是否存在問題。

在本發(fā)明實(shí)施例中,如果對(duì)于APP啟動(dòng)后,對(duì)某個(gè)UI界面元素測(cè)試時(shí),APP崩潰,則重啟該APP,繼續(xù)按照測(cè)試模板配置信息進(jìn)行測(cè)試。

本發(fā)明實(shí)施例通過對(duì)待測(cè)試的應(yīng)用加載相應(yīng)的測(cè)試模版配置信息,該測(cè)試模版配置信息中包括了對(duì)該應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,并在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素,提取測(cè)試模版配置信息中對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并依據(jù)各UI界面元素的測(cè)試邏輯對(duì)各UI界面元素進(jìn)行測(cè)試。解決了在先技術(shù)中,無效點(diǎn)擊次數(shù)多,并且可能漏測(cè)關(guān)鍵的UI界面元素,測(cè)試效率低的問題, 可以精確的控制對(duì)哪些UI界面元素進(jìn)行點(diǎn)擊,降低無效點(diǎn)擊次數(shù),提高了UI界面的測(cè)試效率。

實(shí)施例二

參照?qǐng)D2,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種APP測(cè)試方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:

步驟S210:獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

在本發(fā)明實(shí)施例中,可以為用戶提供一個(gè)測(cè)試模板配置信息的配置界面,然后獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹展示在該配置界面中,那么用即可在該配置界面中,基于結(jié)構(gòu)樹對(duì)各個(gè)節(jié)點(diǎn)進(jìn)行配置。

本發(fā)明實(shí)施例中,view即各Activity中對(duì)應(yīng)的顯示界面,每個(gè)Activity都有對(duì)應(yīng)的view,Activity用于控制view中的事件響應(yīng),例如,針對(duì)頁面控件的點(diǎn)擊事件等等可以在Activity中實(shí)現(xiàn),將控件顯示給用戶,則用view實(shí)現(xiàn)。也即view是具體的顯示頁面布局,各個(gè)應(yīng)用中的Activity的布局結(jié)構(gòu)是由相應(yīng)的結(jié)構(gòu)樹(view tree)構(gòu)成的。以360手機(jī)助手APP為例,在其啟動(dòng)后,激活的Activity渲染的view中,包含有控件“推薦”、“游戲”、“軟件”等控件,這些控件即為本發(fā)明實(shí)施例的UI界面元素。

而在當(dāng)前view結(jié)構(gòu)的控件下對(duì)應(yīng)有相應(yīng)的子view,則當(dāng)前顯示頁面為父view。例如,觸發(fā)控件“軟件”時(shí),激活下一級(jí)Activity,該Activity渲染的顯示界面即為子view,在該子view中也可以有相應(yīng)的控件,如“特權(quán)福利”、“首發(fā)”、等控件。相應(yīng)地,在觸發(fā)該子view的控件后,則激活再下一級(jí)Activity,該Activity渲染的頁面為該子view的子view,以此類推。從而,各個(gè)Activity即是按照這種view結(jié)構(gòu)樹構(gòu)成了view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

優(yōu)選地,所述步驟S210可以包括:

子步驟S2102:通過調(diào)用Hierarchy Viewer工具的各布局結(jié)構(gòu)獲取API, 獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

本發(fā)明實(shí)施例中,Hierarchy Viewer是一種可視化的布局優(yōu)化工具,可以用于調(diào)試和調(diào)整顯示界面。在APP啟動(dòng)之后,可以從android SDK工具包中,通過命令行的方式啟動(dòng)Hierarchy Viewer。具體的,可以在android SDK工具包下的tools目錄下,在命令行方式下運(yùn)行Hierarchy Viewer,進(jìn)而可以通過Load View Hierarchy查看界面的控件層次。其中,該Load View Hierarchy即為一個(gè)布局結(jié)構(gòu)獲取API。在主窗口中,點(diǎn)擊每一個(gè)控件時(shí),將可以看到關(guān)于這個(gè)控件的詳細(xì)信息,相應(yīng)的,在該空間的上方彈出一個(gè)窗口,該窗口中除了可以顯示該控件的實(shí)際效果圖外,還可以顯示該控件的屬性信息,及與該控件對(duì)應(yīng)的子控件的數(shù)目等,相應(yīng)地,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要將所需的與控件關(guān)聯(lián)的信息在窗口中進(jìn)行展現(xiàn),本發(fā)明對(duì)此不加以限制。

因此,通過Hierarchy Viewer工具,調(diào)用相應(yīng)布局結(jié)構(gòu)獲取API,可以獲取到APP的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。在本發(fā)明實(shí)施例中,將Hierarchy Viewer的調(diào)整顯示界面進(jìn)行了改進(jìn),增加了對(duì)結(jié)構(gòu)樹進(jìn)行配置的輸入框、按鈕等功能。

步驟S220:接收對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略。

本發(fā)明實(shí)施例中,在展示前述結(jié)構(gòu)樹的界面中,結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)包括了UI界面元素,Activity等。可以為用戶提供測(cè)試策略配置工具,用戶可以通過測(cè)試策略配置工具對(duì)每個(gè)Activity的UI界面元素的測(cè)試策略進(jìn)行配置。比如勾選哪些UI界面元素允許被測(cè)試,各個(gè)UI界面元素的測(cè)試次數(shù)或者測(cè)試比例,各個(gè)Activity中UI界面元素的測(cè)試總比例、各層級(jí)的UI界面元素的測(cè)試順序等。

步驟S230:根據(jù)所述對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略,生成針對(duì)所述應(yīng)用的測(cè)試模板配置信息。

在用戶配置完畢后,點(diǎn)擊配置界面中的保存按鈕,則可以基于步驟S220的配置生成針對(duì)該APP的測(cè)試模板配置信息,該測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略。

步驟S240:針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息。

步驟S250:在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素。

步驟S260:從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試。

步驟S270:將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

本發(fā)明實(shí)施例中,在啟動(dòng)待測(cè)試應(yīng)用之后,可以根據(jù)待測(cè)試應(yīng)用中當(dāng)前激活的Activity中的UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)UI界面元素進(jìn)行相應(yīng)地測(cè)試,并返回各Activity中的各UI界面元素的測(cè)試結(jié)果。

本發(fā)明實(shí)施例通過獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)對(duì)應(yīng)的結(jié)構(gòu)樹,為結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)配置對(duì)應(yīng)的測(cè)試策略,并通過對(duì)待測(cè)試的應(yīng)用加載相應(yīng)的測(cè)試模版配置信息,該測(cè)試模版配置信息中包括了對(duì)該應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,并在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素,提取測(cè)試模版配置信息中對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并依據(jù)各UI界面元素的測(cè)試邏輯對(duì)各UI界面元素進(jìn)行測(cè)試。解決了在先技術(shù)中,無效點(diǎn)擊次數(shù)多,并且可能漏測(cè)關(guān)鍵的UI界面元素,測(cè)試效率低的問題,可以精確的控制對(duì)哪些UI界面元素進(jìn)行點(diǎn)擊,降低無效點(diǎn)擊次數(shù),提高了UI界面的測(cè)試效率。并且,可以給用戶提供配置界面,讓用戶能夠可視化的基于Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹,對(duì)應(yīng)用的各個(gè)Activity的各UI界面元素配置測(cè)試策略,操作方便。

實(shí)施例三

參照?qǐng)D3,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種APP測(cè)試方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:

步驟S310:針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試 策略。

步驟S320:在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素。

本發(fā)明實(shí)施例中,針對(duì)待測(cè)試的應(yīng)用加載相應(yīng)的測(cè)試模版配置信息,該測(cè)試模版配置信息可以包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,并在待測(cè)試應(yīng)用啟動(dòng)之后,獲取該應(yīng)用中當(dāng)前激活的Activity的UI界面元素,然后進(jìn)入步驟S330。

在實(shí)際應(yīng)用中,APP啟動(dòng)后,激活主頁面的Activity,當(dāng)根據(jù)測(cè)試模板配置信息對(duì)該Activity的某個(gè)UI界面元素進(jìn)行測(cè)試時(shí),如果激活了下一層的Activity,則根據(jù)測(cè)試模板配置信息對(duì)該下一層的Activity中的UI界面元素進(jìn)行測(cè)試,以此類推。

步驟S330:將當(dāng)前激活的Activity中的UI界面元素,與測(cè)試模板配置信息中的各Activity中的UI界面元素進(jìn)行匹配,確定允許觸發(fā)的UI界面元素。

本發(fā)明實(shí)施例中,可以預(yù)先對(duì)待測(cè)試的應(yīng)用加載相應(yīng)的測(cè)試模版配置信息,該測(cè)試模版配置信息中可以包括針對(duì)各Activity中具體的UI界面元素,在待測(cè)試應(yīng)用啟動(dòng)之后,將當(dāng)前激活的Activity中的UI界面元素與待測(cè)試應(yīng)用中加載的測(cè)試模版配置信息中各Activity中的UI界面元素進(jìn)行匹配,以選擇出匹配上的UI界面元素用于進(jìn)行觸發(fā)操作。例如,對(duì)待測(cè)試應(yīng)用加載的測(cè)試模版配置信息中針對(duì)一個(gè)Activity的某UI界面的UI界面元素包含:A、B、C,而該UI界面中的UI界面元素包含A、B、C、D、E、F六個(gè),則從該UI界面元素中只對(duì)UI界面元素A、B、C進(jìn)行觸發(fā)操作。當(dāng)然如果對(duì)UI界面元素A、B、C的某個(gè)進(jìn)行觸發(fā)操作時(shí),激活了另一個(gè)Activity,則繼續(xù)匹配該Activity中允許測(cè)試的UI界面元素,對(duì)匹配上的進(jìn)行測(cè)試。

在本發(fā)明實(shí)施例中,可以限定觸發(fā)操作的點(diǎn)擊區(qū)域只在允許測(cè)試的UI界面元素的區(qū)域之上,因此可以避免觸發(fā)不允許測(cè)試的UI界面元素。

步驟S340:對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試。

本發(fā)明實(shí)施例中,在選取與待測(cè)試應(yīng)用的測(cè)試模版配置信息中相匹配的UI界面元素之后,根據(jù)其它相應(yīng)的針對(duì)各UI界面元素的測(cè)試策略對(duì)相應(yīng)的UI界面元素進(jìn)行測(cè)試,具體情況可以包括如下優(yōu)選實(shí)施例的方式。

優(yōu)選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略可以包括:

各Activity中允許觸發(fā)的UI界面元素、各UI界面元素的觸發(fā)位置、各UI界面元素的觸發(fā)操作類型、各UI界面元素的觸發(fā)順序。

本發(fā)明實(shí)施例中,待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略可以包括:各Activity中允許觸發(fā)的UI界面元素,例如,某Activity中包含有兩個(gè)UI界面,分別為:UI界面1、UI界面2,在UI界面1中允許被觸發(fā)的UI界面元素為UI界面元素A和UI界面元素B,在UI界面2中允許被觸發(fā)的UI界面元素為UI界面元素C和UI界面元素D等等。

待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略還可以包括:各UI界面元素的觸發(fā)位置,各UI界面元素在顯示界面都有相應(yīng)的位置坐標(biāo),通過獲取可以被觸發(fā)UI界面元素的在當(dāng)前界面的中心點(diǎn)坐標(biāo),并依據(jù)該中心點(diǎn)坐標(biāo)設(shè)置對(duì)應(yīng)的針對(duì)UI界面元素的觸發(fā)策略,例如,某個(gè)可以被觸發(fā)的UI界面元素在當(dāng)前界面的中心點(diǎn)坐標(biāo)為:(25,25),則設(shè)置在觸發(fā)到該中心點(diǎn)坐標(biāo)時(shí),即為觸發(fā)該UI界面元素。各UI界面元素的觸發(fā)位置,也可以是各UI界面元素在顯示界面相應(yīng)的區(qū)域范圍,則可以通過獲取各區(qū)域的對(duì)應(yīng)的頂點(diǎn)坐標(biāo),設(shè)置各UI界面元素可被觸發(fā)的位置,例如,某個(gè)UI界面元素可被觸發(fā)的UI界面元素在當(dāng)前界面的可被觸發(fā)的區(qū)域頂點(diǎn)坐標(biāo)為:(10,15)(10,20)(20,15)(20,20),則設(shè)置在觸發(fā)到這些頂點(diǎn)坐標(biāo)時(shí),即為觸發(fā)該UI界面元素等等。

待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略還可以包括:各UI界面元素的觸發(fā)操作類型,可以設(shè)置可被觸發(fā)的UI界面元素的觸發(fā)操作為點(diǎn)擊操作,也可以設(shè)置可被觸發(fā)的UI界面元素的觸發(fā)操作為滑動(dòng)操作等等。待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略還可以包括:各UI界面元素的觸發(fā)順序,例如,針對(duì)某個(gè)UI界面中可被觸發(fā)的UI界面 元素A和UI界面元素B,可以設(shè)置先對(duì)UI界面元素A執(zhí)行觸發(fā)操作,然后再對(duì)UI界面元素B執(zhí)行操作。

相應(yīng)地,在實(shí)際應(yīng)用中,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際需要自行設(shè)置針對(duì)UI界面元素的測(cè)試策略,本發(fā)明對(duì)此不加以限制。

優(yōu)選地,所述步驟S340可以包括:

子步驟S3402:對(duì)于存在觸發(fā)順序的UI界面元素,按照所述觸發(fā)順序觸發(fā)所述UI界面元素進(jìn)行測(cè)試;

本發(fā)明實(shí)施例中,針對(duì)各UI界面元素設(shè)置對(duì)應(yīng)的觸發(fā)順序,在觸發(fā)該UI界面元素后,激活下一層的Activity,而在該Activity中包含了該層Activity的UI界面元素,相應(yīng)的,可以對(duì)這些UI界面元素設(shè)置對(duì)應(yīng)的觸發(fā)順序,并按照觸發(fā)順序?qū)@些UI界面元素進(jìn)行測(cè)試,其他情況以此類推。例如,Activity1中包含有可被觸發(fā)的UI界面元素A和UI界面元素B,觸發(fā)UI界面元素A后對(duì)應(yīng)有Activity1下一層的Activity1-1,Activity1-1中包含有UI界面元素C和UI界面元素D,可以設(shè)置UI界面元素A和UI界面元素B的觸發(fā)順序是先觸發(fā)UI界面元素A,而UI界面元素C和UI界面元素D的觸發(fā)順序是先觸發(fā)UI界面元素C,則在進(jìn)行測(cè)試的過程中,先觸發(fā)Activity1中的UI界面元素A,在觸發(fā)UI界面元素A之后,則激活A(yù)ctivity 1-1,再對(duì)Activity1-1中的UI界面元素C執(zhí)行觸發(fā)操作,然后再對(duì)UI界面元素D執(zhí)行觸發(fā)操作,之后,觸發(fā)Activity1-1中用于返回的UI界面元素以激活A(yù)ctivity1,對(duì)Activity1的UI界面元素B執(zhí)行相應(yīng)的觸發(fā)操作,然后對(duì)UI界面元素B對(duì)應(yīng)的Activity中的UI界面元素按照相應(yīng)的觸發(fā)順序執(zhí)行對(duì)應(yīng)的觸發(fā)操作,以完成對(duì)UI界面元素的測(cè)試??梢岳斫獾?,對(duì)于存在觸發(fā)順序的UI界面元素,是按照對(duì)應(yīng)的順序執(zhí)行UI界面元素的測(cè)試,在最底層的Activity中的UI界面元素測(cè)試完成后,返回,執(zhí)行倒數(shù)第二層Activity中UI界面元素的測(cè)試,以此類推,直至對(duì)所有UI界面元素的測(cè)試完成。

子步驟S3404:對(duì)于相互之間不存在觸發(fā)順序的UI界面元素,隨機(jī)觸發(fā)各UI界面元素進(jìn)行測(cè)試。

本發(fā)明實(shí)施例中,對(duì)于不存在觸發(fā)順序的各UI界面元素,則可以依據(jù) 系統(tǒng)隨機(jī)的選擇UI界面元素進(jìn)行測(cè)試。

優(yōu)選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,還可以包括:

對(duì)各Activity的觸發(fā)比例,和/或?qū)Ω鱑I界面元素的觸發(fā)次數(shù)。

本發(fā)明實(shí)施例中,對(duì)各Activity的觸發(fā)比例是指在預(yù)先設(shè)置了對(duì)應(yīng)用中的所有的Activity的觸發(fā)總數(shù)之后,針對(duì)各個(gè)Activity可以對(duì)各Activity觸發(fā)的數(shù)量所占觸發(fā)總數(shù)的比例。待測(cè)試應(yīng)用中的各個(gè)Activity的各UI界面元素的測(cè)試策略可以包括如下三種情況:

第一種情況是:待測(cè)試應(yīng)用中的各個(gè)Activity的各UI界面元素的測(cè)試策略只包括:對(duì)各Activity的觸發(fā)比例,例如,待測(cè)試應(yīng)用中有三個(gè)Activity,分別是:ActivityM、ActivityN和ActivityP,在一次測(cè)試時(shí),對(duì)該待測(cè)試應(yīng)用預(yù)先設(shè)置的觸發(fā)次數(shù)為100次,可以預(yù)先對(duì)上述三個(gè)Activity分別配置對(duì)應(yīng)的觸發(fā)比例,如觸發(fā)ActivityM的比例為50%,觸發(fā)ActivityN的比例為40%,觸發(fā)ActivityP的比例為10%,則在該次的測(cè)試過程中,觸發(fā)ActivityM中的UI界面元素的次數(shù)為50次,觸發(fā)ActivityN中的UI界面元素的次數(shù)為40次,觸發(fā)ActivityP中的UI界面元素的次數(shù)為10次。

第二種情況是:待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略只包括:對(duì)各UI界面元素的觸發(fā)次數(shù),例如,針對(duì)某個(gè)UI界面中的三個(gè)UI界面元素,為UI界面元素A配置10次的最大觸發(fā)次數(shù),為UI界面元素B配置20次的最大觸發(fā)次數(shù),為UI界面元素C配置35次的最大觸發(fā)次數(shù),則在整個(gè)測(cè)試的過程中,針對(duì)UI界面元素測(cè)試的整個(gè)過程中,對(duì)每個(gè)UI界面元素的觸發(fā)次數(shù)可以少于或者等于所配置的最大觸發(fā)次數(shù),但不會(huì)大于所配置的最大觸發(fā)次數(shù)。

第三種情況是:待測(cè)試應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略同時(shí)包括:對(duì)各Activity的觸發(fā)比例及對(duì)各UI界面元素的觸發(fā)次數(shù),此種情況下,為所有的Activity配置了觸發(fā)總數(shù),并按照觸發(fā)總數(shù)為各UI界面元素分別配置了對(duì)應(yīng)的觸發(fā)次數(shù),在一次測(cè)試完成時(shí),對(duì)各UI界面元素的觸發(fā)次數(shù)與預(yù)先配置的各UI界面元素的觸發(fā)次數(shù)相同,例如,待測(cè)試應(yīng) 用中有三個(gè)Activity,分別是:ActivityM、ActivityN和ActivityP,ActivityM中包含有UI界面元素A、UI界面元素B,ActivityN中包含有UI界面元素C,ActivityP中包含有UI界面元素D,在一次測(cè)試時(shí),對(duì)該待測(cè)試應(yīng)用預(yù)先設(shè)置的觸發(fā)次數(shù)為100次,可以預(yù)先對(duì)上述三個(gè)Activity分別配置對(duì)應(yīng)的觸發(fā)比例,如觸發(fā)ActivityM的比例為50%,觸發(fā)ActivityN的比例為40%,觸發(fā)ActivityP的比例為10%,則在該次的測(cè)試過程中,觸發(fā)ActivityM中的UI界面元素的次數(shù)為50次,觸發(fā)ActivityN中的UI界面元素的次數(shù)為40次,觸發(fā)ActivityP中的UI界面元素的次數(shù)為10次,相應(yīng)的,可以設(shè)置UI界面元素A的觸發(fā)次數(shù)為10次,UI界面元素的觸發(fā)次數(shù)則為40次,UI界面元素C的觸發(fā)次數(shù)為40次,UI界面元素D的觸發(fā)次數(shù)為10次,則在一次測(cè)試的整個(gè)過程中,對(duì)各UI界面元素的觸發(fā)次數(shù)與預(yù)先設(shè)置的針對(duì)各UI界面元素的觸發(fā)次數(shù)相同。

優(yōu)選地,所述步驟S340還可以包括:

子步驟S3406:記錄所述UI界面元素所在的Activity的被觸發(fā)數(shù)量;和/或記錄所述UI界面元素被觸發(fā)的數(shù)量。

本發(fā)明實(shí)施例中,對(duì)待測(cè)試應(yīng)用的各UI界面元素的測(cè)試過程中,可以針對(duì)各UI界面元素所在的Activity的被觸發(fā)數(shù)量進(jìn)行記錄,還可以對(duì)各UI界面元素被觸發(fā)的數(shù)量進(jìn)行記錄,還可以同時(shí)對(duì)UI界面元素所在的Activity的被觸發(fā)數(shù)量和各UI界面元素被觸發(fā)的數(shù)量進(jìn)行記錄。

在只對(duì)各UI界面元素所在的Activity的被觸發(fā)數(shù)量進(jìn)行記錄的情況下,在測(cè)試完成時(shí),可以根據(jù)該記錄中的觸發(fā)Activity的信息與預(yù)先配置的測(cè)試策略進(jìn)行匹配,當(dāng)對(duì)部分Activity的觸發(fā)數(shù)量小于預(yù)先配置的觸發(fā)數(shù)量時(shí),則對(duì)這些Activity執(zhí)行再次的測(cè)試工作,當(dāng)對(duì)Activity的觸發(fā)數(shù)量等于預(yù)先配置的觸發(fā)數(shù)量時(shí),則測(cè)試工作完成。例如,對(duì)ActivityM預(yù)先配置了30次的觸發(fā)數(shù)量,在一次測(cè)試完成時(shí),根據(jù)記錄中的信息,發(fā)現(xiàn)對(duì)該ActivityM的觸發(fā)數(shù)量為20次,則對(duì)該ActivityM配置對(duì)應(yīng)的測(cè)試策略,即對(duì)該ActivityM配置10次的觸發(fā)數(shù)量,并執(zhí)行再次的測(cè)試。

在只對(duì)UI界面元素被觸發(fā)的數(shù)量進(jìn)行就的情況下,在測(cè)試完成時(shí),可 以根據(jù)該記錄中的觸發(fā)UI界面元素的信息與預(yù)先配置的測(cè)試策略進(jìn)行匹配,當(dāng)對(duì)部分UI界面元素的觸發(fā)數(shù)量小于預(yù)先配置的觸發(fā)數(shù)量時(shí),則對(duì)這些UI元素界面執(zhí)行再次的測(cè)試工作。例如,對(duì)UI界面元素A預(yù)先配置的觸發(fā)數(shù)量是10次,在一次測(cè)試完成時(shí),根據(jù)記錄中的信息,發(fā)現(xiàn)對(duì)該UI界面元素A的觸發(fā)數(shù)量為8次,則對(duì)該UI界面元素配置2次的觸發(fā)數(shù)量,并執(zhí)行再次的測(cè)試。

在同時(shí)對(duì)UI界面元素所在的Activity的被觸發(fā)數(shù)量和UI界面元素被觸發(fā)的數(shù)量進(jìn)行記錄的情況下,在一次測(cè)試過程中,只要在記錄的信息中,存在對(duì)Activity和UI界面元素的兩個(gè)或者其中之一的測(cè)試數(shù)量少于預(yù)先配置的測(cè)試策略中設(shè)置的觸發(fā)數(shù)量時(shí),則對(duì)這部分的Activity及UI界面元素再分配對(duì)應(yīng)的測(cè)試策略,并執(zhí)行再次的測(cè)試。

步驟S350:將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

本發(fā)明實(shí)施例中,依據(jù)上述測(cè)試策略對(duì)各Activity的各UI界面元素的測(cè)試完成之后,將各Activity的各UI界面元素的測(cè)試結(jié)果輸出,并對(duì)測(cè)試結(jié)果進(jìn)行分析,以確定是否存在系統(tǒng)不穩(wěn)定的問題。

在一次測(cè)試完成之后,還可以針對(duì)各Activity及各UI界面元素的被觸發(fā)數(shù)量與預(yù)先配置的測(cè)試策略中的針對(duì)相應(yīng)的Activity及UI界面元素的被觸發(fā)數(shù)量是否相等,如果其中存在部分Activity及部分UI界面元素的被觸發(fā)數(shù)量少于預(yù)先配置的測(cè)試策略中的觸發(fā)數(shù)量時(shí),則挑選出這部分的Activity及UI界面元素,并為這部分的Activity及UI界面元素再重新配置對(duì)應(yīng)的測(cè)試策略,進(jìn)行再次的測(cè)試,再次測(cè)試的方式與上述實(shí)施例中的測(cè)試方式相同,本發(fā)明實(shí)施例在此不加加以贅述。

本發(fā)明實(shí)施例通過對(duì)待測(cè)試的應(yīng)用加載相應(yīng)的測(cè)試模版配置信息,該測(cè)試模版配置信息中包括了對(duì)該應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,并在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素,提取測(cè)試模版配置信息中對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并依據(jù)各UI界面元素的測(cè)試邏輯對(duì)各UI界面元素進(jìn)行測(cè)試。解決了在先技術(shù)中,無效點(diǎn)擊次數(shù)多,并且可能漏測(cè)關(guān)鍵的UI界面元素,測(cè)試效率低的問題, 取得了可以精確的控制對(duì)哪些UI界面元素進(jìn)行點(diǎn)擊,降低無效點(diǎn)擊次數(shù),提高了UI界面的測(cè)試效率的效果。

對(duì)于方法實(shí)施例,為了簡(jiǎn)單描述,故將其都表述為一系列的動(dòng)作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明實(shí)施例并不受所描述的動(dòng)作順序的限制,因?yàn)橐罁?jù)本發(fā)明實(shí)施例,某些步驟可以采用其他順序或者同時(shí)進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動(dòng)作并不一定是本發(fā)明實(shí)施例所必須的。

實(shí)施例四

參照?qǐng)D4,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種APP測(cè)試裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:

測(cè)試模板配置信息加載模塊410,適于針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

UI界面元素獲取模塊420,適于在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

測(cè)試模塊430,適于從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

輸出模塊440,適于將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

實(shí)施例五

參照?qǐng)D5,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種APP測(cè)試裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:

結(jié)構(gòu)樹獲取模塊510,適于獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

優(yōu)選地,所述結(jié)構(gòu)樹獲取模塊510可以包括:

結(jié)構(gòu)樹獲取子模塊5102,適于通過調(diào)用Hierarchy Viewer工具的各布局結(jié)構(gòu)獲取API,獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

測(cè)試策略接收模塊520,適于接收對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略。

測(cè)試模板配置信息生成模塊530,適于根據(jù)所述對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略,生成針對(duì)所述應(yīng)用的測(cè)試模板配置信息。

測(cè)試模板配置信息加載模塊540,適于針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略。

UI界面元素獲取模塊550,適于在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素。

測(cè)試模塊560,適于從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試。

輸出模塊570,適于將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

實(shí)施例六

參照?qǐng)D6,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種APP測(cè)試裝置實(shí)施例的結(jié)構(gòu)框圖,具體可以包括如下模塊:

測(cè)試模板配置信息加載模塊610,適于針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略。

UI界面元素獲取模塊620,適于在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素。

測(cè)試模塊630,適于從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試。

優(yōu)選地,所述測(cè)試模塊630可以包括:

UI界面元素觸發(fā)確定子模塊6302,適于將當(dāng)前激活的Activity中的UI界面元素,與測(cè)試模板配置信息中的各Activity中的UI界面元素進(jìn)行匹配,確定允許觸發(fā)的UI界面元素;

UI界面元素測(cè)試子模塊6304,適于對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試。

優(yōu)選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略包括:

各Activity中允許觸發(fā)的UI界面元素、各UI界面元素的觸發(fā)位置、各UI界面元素的觸發(fā)操作類型、各UI界面元素的觸發(fā)順序。

優(yōu)選地,所述UI界面元素測(cè)試子模塊6304包括:

UI界面元素順序測(cè)試子模塊63042,適于對(duì)于存在觸發(fā)順序的UI界面元素,按照所述觸發(fā)順序觸發(fā)所述UI界面元素進(jìn)行測(cè)試;

UI界面元素隨機(jī)測(cè)試子模塊63044,適于對(duì)于相互之間不存在觸發(fā)順序的UI界面元素,隨機(jī)觸發(fā)各UI界面元素進(jìn)行測(cè)試。

優(yōu)選地,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,還可以包括:

對(duì)各Activity的觸發(fā)比例,和/或?qū)Ω鱑I界面元素的觸發(fā)次數(shù)。

優(yōu)選地,所述UI界面元素測(cè)試子模塊6304還可以包括:

界面元素觸發(fā)數(shù)量記錄子模塊63046,適于記錄所述UI界面元素所在的Activity的被觸發(fā)數(shù)量;和/或記錄所述UI界面元素被觸發(fā)的數(shù)量。

輸出模塊640,適于將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。

實(shí)施例七

參照?qǐng)D7,示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種APP測(cè)試設(shè)備700實(shí)施 例的結(jié)構(gòu)框圖,具體可以包括:

存儲(chǔ)器710,加載有多條可執(zhí)行指令;

處理器720,執(zhí)行所述多條可執(zhí)行指令;所述多條指令包括執(zhí)行以下步驟的方法:

針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

優(yōu)選地,本發(fā)明實(shí)施例的多條可執(zhí)行指令還可包括前述各個(gè)步驟的方法,本發(fā)明實(shí)施例不對(duì)其加以限定。

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

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

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

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

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

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

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

本發(fā)明公開了A1、一種APP測(cè)試方法,包括:

針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

A2、如A1所述的方法,在所述針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略的步驟之前,還包括:

獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹;

接收對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略;

根據(jù)所述對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略,生成針對(duì)所述應(yīng)用的測(cè)試模板配置信息。

A3、如A2所述的方法,所述獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹的步驟包括:

通過調(diào)用Hierarchy Viewer工具的各布局結(jié)構(gòu)獲取API,獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

A4、如A1所述的方法,所述從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所 述UI界面元素進(jìn)行測(cè)試的步驟包括:

將當(dāng)前激活的Activity中的UI界面元素,與測(cè)試模板配置信息中的各Activity中的UI界面元素進(jìn)行匹配,確定允許觸發(fā)的UI界面元素;

對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試。

A5、如A4所述的方法,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略包括:

各Activity中允許觸發(fā)的UI界面元素、各UI界面元素的觸發(fā)位置、各UI界面元素的觸發(fā)操作類型、各UI界面元素的觸發(fā)順序。

A6、如A5所述的方法,所述對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試的步驟包括:

對(duì)于存在觸發(fā)順序的UI界面元素,按照所述觸發(fā)順序觸發(fā)所述UI界面元素進(jìn)行測(cè)試;

對(duì)于相互之間不存在觸發(fā)順序的UI界面元素,隨機(jī)觸發(fā)各UI界面元素進(jìn)行測(cè)試。

A7、如A5所述的方法,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,還包括:

對(duì)各Activity的觸發(fā)比例,和/或?qū)Ω鱑I界面元素的觸發(fā)次數(shù)。

A8、如A7所述的方法,所述對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試的步驟,還包括:

記錄所述UI界面元素所在的Activity的被觸發(fā)數(shù)量;和/或記錄所述UI界面元素被觸發(fā)的數(shù)量。

本發(fā)明還公開了B9、一種APP測(cè)試裝置,包括:

測(cè)試模板配置信息加載模塊,適于針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

UI界面元素獲取模塊,適于在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

測(cè)試模塊,適于從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI 界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

輸出模塊,適于將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

B10、如B9所述的裝置,在所述測(cè)試模板配置信息加載模塊之前,還包括:

結(jié)構(gòu)樹獲取模塊,適于獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹;

測(cè)試策略接收模塊,適于接收對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略;

測(cè)試模板配置信息生成模塊,適于根據(jù)所述對(duì)結(jié)構(gòu)樹的各個(gè)節(jié)點(diǎn)所配置的測(cè)試策略,生成針對(duì)所述應(yīng)用的測(cè)試模板配置信息。

B11、如B10所述的裝置,所述結(jié)構(gòu)樹獲取模塊包括:

結(jié)構(gòu)樹獲取子模塊,適于通過調(diào)用Hierarchy Viewer工具的各布局結(jié)構(gòu)獲取API,獲取待測(cè)試應(yīng)用的各個(gè)Activity的view布局結(jié)構(gòu)所對(duì)應(yīng)的結(jié)構(gòu)樹。

B12、如B9所述的裝置,所述測(cè)試模塊包括:

UI界面元素觸發(fā)確定子模塊,適于將當(dāng)前激活的Activity中的UI界面元素,與測(cè)試模板配置信息中的各Activity中的UI界面元素進(jìn)行匹配,確定允許觸發(fā)的UI界面元素;

UI界面元素測(cè)試子模塊,適于對(duì)各UI界面元素,按照相應(yīng)的測(cè)試策略觸發(fā)所述UI界面元素進(jìn)行測(cè)試。

B13、如B12所述的裝置,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略包括:

各Activity中允許觸發(fā)的UI界面元素、各UI界面元素的觸發(fā)位置、各UI界面元素的觸發(fā)操作類型、各UI界面元素的觸發(fā)順序。

B14、如B13所述的裝置,所述UI界面元素測(cè)試子模塊包括:

UI界面元素順序測(cè)試子模塊,適于對(duì)于存在觸發(fā)順序的UI界面元素,按照所述觸發(fā)順序觸發(fā)所述UI界面元素進(jìn)行測(cè)試;

UI界面元素隨機(jī)測(cè)試子模塊,適于對(duì)于相互之間不存在觸發(fā)順序的UI界面元素,隨機(jī)觸發(fā)各UI界面元素進(jìn)行測(cè)試。

B15、如B13所述的裝置,所述對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略,還包括:

對(duì)各Activity的觸發(fā)比例,和/或?qū)Ω鱑I界面元素的觸發(fā)次數(shù)。

B16、如B15所述的裝置,所述UI界面元素測(cè)試子模塊還包括:

界面元素觸發(fā)數(shù)量記錄子模塊,適于記錄所述UI界面元素所在的Activity的被觸發(fā)數(shù)量;和/或記錄所述UI界面元素被觸發(fā)的數(shù)量。

本發(fā)明還公開了C17、一種APP測(cè)試設(shè)備,包括:

存儲(chǔ)器,加載有多條可執(zhí)行指令;

處理器,執(zhí)行所述多條可執(zhí)行指令;所述多條指令包括執(zhí)行以下步驟的方法:

針對(duì)待測(cè)試的應(yīng)用,加載相應(yīng)的測(cè)試模板配置信息;所述測(cè)試模板配置信息包括對(duì)所述應(yīng)用的各個(gè)Activity的各UI界面元素的測(cè)試策略;

在待測(cè)試應(yīng)用啟動(dòng)后,獲取當(dāng)前激活的Activity中的UI界面元素;

從所述測(cè)試模板配置信息中提取對(duì)當(dāng)前Activity中UI界面元素的測(cè)試策略,并根據(jù)各UI界面元素的測(cè)試邏輯對(duì)所述UI界面元素進(jìn)行測(cè)試;

將各Activity的各UI界面元素的測(cè)試結(jié)果輸出。

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