行操作。
[0042]圖2是根據(jù)本發(fā)明實(shí)施例一的使用測(cè)試用例測(cè)試應(yīng)用程序的流程圖。
[0043]如圖2所示,使用測(cè)試用例測(cè)試應(yīng)用程序可以包括如下步驟:
[0044]步驟S202:生成測(cè)試用例。
[0045]具體地,如上述的將執(zhí)行圖1中所示實(shí)施例的流程進(jìn)行腳本化處理得到測(cè)試用例,在得到測(cè)試用例之后,將測(cè)試用例保存入用例庫(kù)中,以供后續(xù)對(duì)應(yīng)用程序進(jìn)行測(cè)試時(shí)調(diào)用。
[0046]具體地,在對(duì)上述流程就行腳本化處理的過程中,可以將被測(cè)控件的描述信息和被測(cè)控件的操作寫入測(cè)試用例,控制被測(cè)控件執(zhí)行操作的預(yù)設(shè)控制指令以及控制路徑等基本信息寫入測(cè)試用例。每個(gè)測(cè)試用例均可以包括一個(gè)簡(jiǎn)介,簡(jiǎn)介中包括下列詳細(xì)信息:用例編號(hào)、用例名稱、測(cè)試等級(jí)、入口準(zhǔn)則、驗(yàn)證步驟、期望結(jié)果(含判斷標(biāo)準(zhǔn))、出口準(zhǔn)則、注釋等,以上內(nèi)容涵蓋了測(cè)試用例的基本元素:測(cè)試索引,測(cè)試環(huán)境(如安卓4.0的系統(tǒng)),測(cè)試輸入(如上述的測(cè)試信息),測(cè)試操作(如上述被測(cè)控件執(zhí)行的操作),預(yù)期結(jié)果以及評(píng)價(jià)標(biāo)準(zhǔn)。
[0047]步驟S204:執(zhí)行測(cè)試用例。
[0048]具體地,在用例庫(kù)中選擇與測(cè)試請(qǐng)求對(duì)應(yīng)的產(chǎn)品和測(cè)試用例,然后對(duì)產(chǎn)品執(zhí)行該對(duì)應(yīng)的測(cè)試用例??蛇x地,用戶在對(duì)被測(cè)應(yīng)用程序測(cè)試時(shí),可以從用例庫(kù)中選擇執(zhí)行一條測(cè)試用例或者同時(shí)執(zhí)行多條測(cè)試用例。在對(duì)被測(cè)應(yīng)用程序測(cè)試時(shí),同時(shí)執(zhí)行多條測(cè)試用例可以進(jìn)一步地節(jié)省測(cè)試時(shí)間。
[0049]更具體地,在確定同時(shí)執(zhí)行多條測(cè)試用例的情況下,則每條測(cè)試用例是串行執(zhí)行,這里的同時(shí)是指在進(jìn)行測(cè)試時(shí)可以同時(shí)選擇多條測(cè)試用例,在實(shí)際執(zhí)行時(shí)仍然按照選擇的先后順序串行執(zhí)行,最后生成一份總的測(cè)試報(bào)告。在上述實(shí)施例中,可以使用Python(—種面向?qū)ο?、直譯式計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言)構(gòu)建測(cè)試用例的執(zhí)行引擎,執(zhí)行引擎根據(jù)測(cè)試請(qǐng)求將相關(guān)的測(cè)試套和測(cè)試用例庫(kù)中導(dǎo)出并保存為一個(gè)執(zhí)行腳本,然后在測(cè)試支持庫(kù)的支持下將它加載到被測(cè)試應(yīng)用程序中執(zhí)行。
[0050]步驟S206:記錄測(cè)試結(jié)果。
[0051]具體地,在測(cè)試用例執(zhí)行完成后,將測(cè)試結(jié)果保存入與測(cè)試終端連接的SD卡(SP安全數(shù)碼)上,在SD卡的測(cè)試目錄下存儲(chǔ)上述測(cè)試用例的執(zhí)行結(jié)果和測(cè)試項(xiàng)的數(shù)據(jù)結(jié)果。
[0052]本發(fā)明上述實(shí)施例的測(cè)試方法可以應(yīng)用于移動(dòng)終端上,移動(dòng)終端(如手機(jī))上的SD卡的存儲(chǔ)控件比移動(dòng)終端上的存儲(chǔ)控件大,SD卡保存的數(shù)據(jù)更加完整,并且不影響移動(dòng)終端其他程序的運(yùn)行;并且SD卡可以方便的從移動(dòng)終端上取下來,從而可以方便的進(jìn)行數(shù)據(jù)傳輸,以便后續(xù)對(duì)測(cè)試結(jié)果的查看和深度分析。
[0053]具體地,上述實(shí)施例中的測(cè)試方法可以應(yīng)用于基于Android平臺(tái)的移動(dòng)終端設(shè)備(如手機(jī)、平板電腦),可選地可以將本發(fā)明的上述測(cè)試方法應(yīng)用于Android手機(jī)的軟件測(cè)試中。例如,可以將本發(fā)明的上述測(cè)試方法應(yīng)用于Android手機(jī)的競(jìng)品對(duì)比測(cè)試中。
[0054]圖3是根據(jù)本發(fā)明實(shí)施例一的執(zhí)行測(cè)試用例的流程圖。如圖3所示,圖2中的步驟S204:執(zhí)行測(cè)試用例具體可以通過如下方法實(shí)現(xiàn):
[0055]步驟S302:獲取與測(cè)試請(qǐng)求對(duì)應(yīng)的被測(cè)產(chǎn)品。
[0056]其中,被測(cè)產(chǎn)品即為上述的被測(cè)應(yīng)用程序。具體地,測(cè)試請(qǐng)求可以為競(jìng)品測(cè)試請(qǐng)求,如,對(duì)第一手機(jī)管家和第二手機(jī)管家的對(duì)比測(cè)試,則需要在上述的兩個(gè)產(chǎn)品(如第一手機(jī)管家和第二手機(jī)管家)上分別測(cè)試,可以通過在通過一個(gè)測(cè)試終端上運(yùn)行兩個(gè)被測(cè)應(yīng)用程序來實(shí)現(xiàn)對(duì)產(chǎn)品的測(cè)試,也可以在不同的測(cè)試終端(可選地,不同的測(cè)試終端的運(yùn)行環(huán)境相同)上分別運(yùn)行兩個(gè)被測(cè)應(yīng)用程序來進(jìn)行測(cè)試。
[0057]步驟S304:選擇待執(zhí)行測(cè)試用例。
[0058]具體地,測(cè)試請(qǐng)求可以為對(duì)被測(cè)應(yīng)用程序的全部功能進(jìn)行測(cè)試,也可以僅僅對(duì)其中的一個(gè)功能進(jìn)行測(cè)試。在對(duì)被測(cè)應(yīng)用程序的全部功能進(jìn)行測(cè)試的情況下,測(cè)試用例可以為一個(gè)或多個(gè);在對(duì)被測(cè)應(yīng)用程序的某個(gè)功能進(jìn)行測(cè)試的情況下,測(cè)試用例可以為一個(gè)。
[0059]步驟S306:判斷是否成功執(zhí)行該測(cè)試用例。
[0060]其中,在成功執(zhí)行該測(cè)試用例的情況下,執(zhí)行步驟S308 ;在沒有成功執(zhí)行該測(cè)試用例的情況下,返回執(zhí)行步驟S302。
[0061]步驟S308:判斷是否存在未執(zhí)行的其他測(cè)試用例。
[0062]其中,在存在未執(zhí)行的其他測(cè)試用例的情況下,返回執(zhí)行步驟S304 ;在不存在未執(zhí)行的其他測(cè)試用例的情況下,結(jié)束測(cè)試。
[0063]具體地,在執(zhí)行步驟S304中獲取到的測(cè)試用例可能不止一個(gè),執(zhí)行步驟S308的過程中,可以通過檢測(cè)獲取到的測(cè)試用例的數(shù)量來確定是否還存在未執(zhí)行的其他測(cè)試用例,并通過檢測(cè)步驟S304中獲取到的測(cè)試用例的順序確定下一個(gè)待執(zhí)行的測(cè)試用例。
[0064]需要進(jìn)一步說明的是,在該實(shí)施例中,每個(gè)操作可能包括一個(gè)或多個(gè)動(dòng)作,每個(gè)動(dòng)作可以分別對(duì)應(yīng)一個(gè)被測(cè)控件。
[0065]根據(jù)本發(fā)明的上述實(shí)施例,描述信息可以包括層級(jí)位置信息,其中,在被測(cè)應(yīng)用程序的頁(yè)面上獲取與描述信息對(duì)應(yīng)的被測(cè)控件可以包括:獲取頁(yè)面的配置文件;對(duì)配置文件進(jìn)行可視化處理得到頁(yè)面層級(jí)文件;在頁(yè)面層級(jí)文件中查找與層級(jí)位置信息對(duì)應(yīng)的被測(cè)控件。
[0066]在上述實(shí)施例中,可以從控件庫(kù)中調(diào)用預(yù)設(shè)的被測(cè)控件的查找方法,還以采用上述的方法確定被測(cè)控件。具體地,可以通過界面自動(dòng)監(jiān)控器抓取測(cè)試終端上運(yùn)行的被測(cè)應(yīng)用程序的當(dāng)前頁(yè)面的配置文件,從配置文件中提取層級(jí)信息,并將當(dāng)前頁(yè)面的層級(jí)信息進(jìn)行可視化處理得到頁(yè)面層級(jí)文件。該頁(yè)面層級(jí)文件可以是樹狀結(jié)構(gòu)的文檔,由于在每個(gè)頁(yè)面上頁(yè)面控件的層級(jí)位置信息是唯一的,通過遍歷該頁(yè)面層級(jí)文件可以在頁(yè)面層級(jí)文件中查找到與層級(jí)位置信息對(duì)應(yīng)的被測(cè)控件,從而唯一地確定被測(cè)控件。
[0067]其中,將當(dāng)前頁(yè)面的層級(jí)信息進(jìn)行可視化處理即為使用計(jì)算機(jī)圖形技術(shù)將層級(jí)信息轉(zhuǎn)換為圖形在屏幕上顯示出來,以供用戶查看。具體地,通過層級(jí)信息確定網(wǎng)頁(yè)的層次結(jié)構(gòu),并根據(jù)鏈接的線路(如線性結(jié)構(gòu)、樹狀結(jié)構(gòu)和網(wǎng)狀結(jié)果)不同,將網(wǎng)頁(yè)的層次結(jié)構(gòu)使用其鏈接的線路結(jié)構(gòu)展示出來。
[0068]Uiautomator即界面自動(dòng)監(jiān)控器,該自動(dòng)監(jiān)控器包含用來做UI測(cè)試的測(cè)試包和一系列的測(cè)試接口。
[0069]UI =User Interface (即用戶界面)的簡(jiǎn)稱,也稱人機(jī)界面,是指用戶和某些系統(tǒng)進(jìn)行交互方法的集合,這些系統(tǒng)不單單指電腦程序,還包括某種特定的機(jī)器、設(shè)備及復(fù)雜的工具等。
[0070]根據(jù)本發(fā)明的上述實(shí)施例,描述信息可以包括第一文字信息,其中,在被測(cè)應(yīng)用程序的頁(yè)面上獲取與描述信息對(duì)應(yīng)的被測(cè)控件可以包括:獲取頁(yè)面的配置文件,從配置文件中獲取與第一文字信息對(duì)應(yīng)的被測(cè)控件;或獲取頁(yè)面上所有頁(yè)面控件的第二文字信息得到文字信息集,通過文字信息集查找與第一文字信息對(duì)應(yīng)的第三文字信息,將第三文字信息對(duì)應(yīng)的頁(yè)面控件作為被測(cè)控件。
[0071]在上述實(shí)施例中提供了兩種通過第一文字信息確定被測(cè)控件的方法,其中,第一種是通過界面自動(dòng)監(jiān)控器抓取到的當(dāng)前頁(yè)面的配置文件,直接在配置文件搜索與第一文字信息對(duì)應(yīng)的被測(cè)控件。
[0072]例如,測(cè)試信息中攜帶的被測(cè)控件的描述信息包括對(duì)“確定”按鈕的描述,操作為:點(diǎn)擊,則確定第一文字信息為確定二字,則在配置文件中搜索第二文字信息為確定的頁(yè)面控件,將文字描述為“確定”的頁(yè)面控件確定為被測(cè)控件。其中,第二文字信息可以用字符表不。
[0073]根據(jù)本發(fā)明的上述實(shí)施例,還提供了一種可選的確定被測(cè)控件的方法。具體地,獲取頁(yè)面上所有頁(yè)面控件的第二文字信息,將第二文字信息保存在文字信息集中,通過文字信息集查找與第一文字信息對(duì)應(yīng)的第三文字信息,并將第三文字信息對(duì)應(yīng)的頁(yè)面控件作為被測(cè)控件。
[0074]例如,測(cè)試信息中攜帶的被測(cè)控件的描述信息包括對(duì)“確定”按鈕的描述,操作為:點(diǎn)擊,則確定第一文字信息為確定二字。提取當(dāng)前頁(yè)面上所有頁(yè)面控件的第二文字信息(如:開始、掃描、暫停、確定等信息)得到文字信息集,在該文字信息集中查找對(duì)應(yīng)“確定”的第三文字信息,將查找到的第三文字信息對(duì)應(yīng)的頁(yè)面控件作為被測(cè)控件。
[0075]在本發(fā)明的上述實(shí)施例中,由于不同的應(yīng)用程序在相似或相同的功能上,對(duì)控件的描述可能是不一致的,如:深層掃描和深度掃描,對(duì)測(cè)試終端上的掃描范圍和掃描結(jié)果的分析程度類似,然而在進(jìn)行競(jìng)品對(duì)比測(cè)試時(shí),可能需要將上述測(cè)試流程在不同的產(chǎn)品(即相似或相同功能的應(yīng)用程序)上執(zhí)行,為了保證測(cè)試的完整性和準(zhǔn)確性,在本發(fā)明上述的兩種確定被測(cè)控件的方法中,提供了進(jìn)一步地被測(cè)控件的確定方案。
[0076]本發(fā)明提供了一種可選的通過文字信息集查找與第一文字信息對(duì)應(yīng)的第三文字信息的實(shí)現(xiàn)方法,具體地:提取第一文字信息中的第一字符和第二文字信息中的第二字符;計(jì)算第一字符和第二字符的相似度;在相似度大于或等于預(yù)設(shè)閾值的情況下,從文字信息集中提取與第二字符對(duì)應(yīng)的第三文字信息;在相似度小于預(yù)設(shè)閾值的情況下,從預(yù)設(shè)文字
息對(duì)應(yīng)表中提取第二文字息。
[0077]在該可選的方案中,可以適用于直接在配置文件搜索與第一文字信息對(duì)應(yīng)的被測(cè)控件的方法。具體地,從配置文件中提取當(dāng)前頁(yè)面的頁(yè)面控件的第二文字信息,然后提取第一文字信息中的第一字符和第二文字信息中的第二字符;計(jì)算第一字符和第二字符的相似度;在相似度大于或等于預(yù)設(shè)閾值的情況下,從文字信息集中提取與第二字符對(duì)應(yīng)的第三文字信息。
[0078]可選地,計(jì)算第一字符和第二字符的相似度可以通過拼音編碼和五筆編碼計(jì)算兩個(gè)字符的編輯距離、矩陣算法、或者余弦距離算法計(jì)算得到該相似度。由于每個(gè)頁(yè)面上的頁(yè)面控件至少為一個(gè),在當(dāng)前頁(yè)面上的頁(yè)面控件的數(shù)量大于一個(gè)的情況下,需要分別計(jì)算第一字符和每個(gè)第二字符的相似度;在計(jì)算得到的第一字符和第二字符的相似度之后,檢測(cè)相似度是否大于等于預(yù)設(shè)閾值,在該相似度大于或等于預(yù)設(shè)閾值的情況下,確定該第二字符對(duì)應(yīng)的頁(yè)面控件即為被測(cè)控件。
[0079]例如,上述實(shí)施例中提及的深層掃描和深度掃描兩個(gè)控件,點(diǎn)擊這兩個(gè)控件實(shí)際上完成的功能是一致(或相似)的,但是這兩個(gè)控件的文字描述信息不完全一致,從兩個(gè)文字描述信息中提取表征“深度掃描”的第一字符和表征“深層掃描”的第二字符,該實(shí)施例中的第一字符和第二字符應(yīng)該是不一致的,計(jì)算第一字符和第二字符的相似度S,判斷該相似度是否大于或等于預(yù)設(shè)閾值(該預(yù)設(shè)閾值可以是經(jīng)驗(yàn)值,并且該預(yù)設(shè)閾值可以使用百分比表示,如75%),若S ^ 75%,則確定表征“深層掃描”的第二字符對(duì)應(yīng)的頁(yè)面控件為被測(cè)控件。
[0080]由于不同的應(yīng)用程序在相似或相同的功能上,對(duì)控件的描述可能是不一致的,通過上述方案中比較相似度與預(yù)設(shè)閾值的大小,從而確定被測(cè)控件,可以減少對(duì)被測(cè)控件的漏判或誤判,從而進(jìn)一步地保證對(duì)應(yīng)用程序的測(cè)試的完整性和準(zhǔn)確性。
[0081]需要進(jìn)一步地說明的是,在上述實(shí)施例中,計(jì)算得到的第一字符和第二字符的相似度小于預(yù)設(shè)閾值的情況下,可以調(diào)用匹配庫(kù),該匹配庫(kù)中預(yù)存著被測(cè)控件的文字信息匹配表,通過在該匹配庫(kù)中進(jìn)行匹配確定被測(cè)控件。其中,該文字信息匹配表中即為上述的預(yù)設(shè)文字信息對(duì)應(yīng)表,表中保存著相似度很低但是表征同一控件的文字信息。
[0082]例如,控件“完成”和控件“結(jié)束”,這兩個(gè)控件實(shí)際對(duì)應(yīng)的功能是一致的,但是通過上述相似度確定被測(cè)控件的方法可能無法確定描述“完成”的第二文字信息對(duì)應(yīng)的頁(yè)面控件即為描述“結(jié)束”的第一文字信息的被測(cè)控件。采用本發(fā)明的上述方法可以從文字信息匹配表中匹配得到與“