。替代GPS跟蹤技術(shù)或者在GPS跟蹤技術(shù)之外,可以使用可以跟蹤移動(dòng)終端的位置的其它技術(shù)。另外,至少一個(gè)GPS衛(wèi)星300可以選擇性地或者額外地處理衛(wèi)星DMB傳輸。
[0072]作為無(wú)線通信系統(tǒng)的一個(gè)典型操作,BS270接收來(lái)自各種移動(dòng)終端100的反向鏈路信號(hào)。移動(dòng)終端100通常參與通話、消息收發(fā)和其它類(lèi)型的通信。特定基站270接收的每個(gè)反向鏈路信號(hào)被在特定BS270內(nèi)進(jìn)行處理。獲得的數(shù)據(jù)被轉(zhuǎn)發(fā)給相關(guān)的BSC275。BSC提供通話資源分配和包括BS270之間的軟切換過(guò)程的協(xié)調(diào)的移動(dòng)管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務(wù)。類(lèi)似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應(yīng)地控制BS270以將正向鏈路信號(hào)發(fā)送到移動(dòng)終端100。
[0073]基于上述移動(dòng)終端硬件結(jié)構(gòu)以及通信系統(tǒng),提出本發(fā)明測(cè)試腳本生成裝置的各個(gè)實(shí)施例。
[0074]參照?qǐng)D3,在本發(fā)明測(cè)試腳本生成裝置的第一實(shí)施例中,所述測(cè)試腳本生成裝置包括:
[0075]第一獲取模塊10,用于獲取預(yù)設(shè)平均故障間隔時(shí)間MTBF測(cè)試流程中各個(gè)測(cè)試步驟對(duì)應(yīng)的控制指令;
[0076]本實(shí)施例提供的測(cè)試腳本生成裝置,可以應(yīng)用于手機(jī)、筆記本電腦、數(shù)字廣播接收器、PDA(個(gè)人數(shù)字助理)、PAD (平板電腦)、PMP (便攜式多媒體播放器)等移動(dòng)終端的MTBF(Mean Time Between Failure,平均故障間隔時(shí)間)測(cè)試中,例如,在進(jìn)行批量手機(jī)的MTBF測(cè)試時(shí),基于Uiautomator框架編寫(xiě)測(cè)試腳本,可供不同屏幕大小的手機(jī)執(zhí)行,而無(wú)需重復(fù)編寫(xiě)測(cè)試腳本。
[0077]需要說(shuō)明的是,不同的通信運(yùn)營(yíng)商擁有各自的MTBF測(cè)試標(biāo)準(zhǔn),例如國(guó)外的AT&T和我國(guó)的中國(guó)移動(dòng)的MTBF測(cè)試標(biāo)準(zhǔn)不同,具體由測(cè)試用例體現(xiàn)。以下實(shí)施例以基于Android系統(tǒng)的移動(dòng)終端進(jìn)行說(shuō)明。
[0078]考慮到Uiautomator提供了基于控件和坐標(biāo)的操作方式,可以模擬實(shí)現(xiàn)幾乎UI (User Interface,用戶界面)層所有的人工操作,而且可以直接調(diào)用系統(tǒng)的API函數(shù),能夠方便和輕易的將測(cè)試用例轉(zhuǎn)化為測(cè)試腳本,因此,本實(shí)施例優(yōu)選采用Uiautomator進(jìn)行測(cè)試腳本的開(kāi)發(fā)。
[0079]MTBF測(cè)試的是手機(jī)的常用基本功能,整套測(cè)試用例可按使用功能分成以下幾類(lèi):通信類(lèi)、信息類(lèi)、郵件類(lèi)、瀏覽器和下載類(lèi)、多媒體類(lèi)以及個(gè)人服務(wù)類(lèi),此外,還包括針對(duì)不同的手機(jī)的專(zhuān)用測(cè)試用例,例如,針對(duì)努比亞手機(jī)的穩(wěn)定性專(zhuān)用測(cè)試用例。每個(gè)大類(lèi)下又包括數(shù)個(gè)用例,每個(gè)用例又可根據(jù)動(dòng)作是否需要重復(fù)執(zhí)行,而分成數(shù)個(gè)子例,最后,子例將成為最小的測(cè)試單元,子例是動(dòng)作的集合,一個(gè)子例里面至少存在一個(gè)動(dòng)作。本領(lǐng)域技術(shù)人員可以理解的是,自動(dòng)化測(cè)試的重點(diǎn)在于將前述測(cè)試用例包括的動(dòng)作由控制指令來(lái)模擬人工執(zhí)行,這些控制指令的集合構(gòu)成測(cè)試腳本。
[0080]本實(shí)施例首先將預(yù)設(shè)測(cè)試用例拆分為控制指令的集合,具體的,不同的測(cè)試用例對(duì)應(yīng)不同的穩(wěn)定性測(cè)試流程,而不同的測(cè)試流程包括不同的測(cè)試步驟,例如,某測(cè)試手機(jī)多媒體播放穩(wěn)定性的測(cè)試用例對(duì)應(yīng)的測(cè)試流程包括主菜單的顯示以及快捷鍵,菜單的順序,視頻播放功能使用情況三個(gè)測(cè)試步驟。前述測(cè)試步驟可以拆分為至少一個(gè)獨(dú)立的動(dòng)作,例如,可將視頻播放功能使用情況部分拆分為:選擇任意節(jié)目開(kāi)始播放,節(jié)目播放時(shí)點(diǎn)擊暫停,節(jié)目暫停時(shí)點(diǎn)擊播放,節(jié)目播放時(shí)點(diǎn)擊停止,節(jié)目播放停止時(shí)點(diǎn)擊播放,節(jié)目播放時(shí)點(diǎn)擊全屏和節(jié)目播放時(shí)點(diǎn)擊音量調(diào)節(jié)等獨(dú)立動(dòng)作。第一獲取模塊10在將整個(gè)測(cè)試流程拆分為動(dòng)作的集合之后,將動(dòng)作轉(zhuǎn)換為控制指令。
[0081]第二獲取模塊20,用于基于Uiautomator框架獲取各所述控制指令的執(zhí)行控件的標(biāo)識(shí)信息;
[0082]本實(shí)施例中,第二獲取模塊20基于Uiautomator框架獲取各所述控制指令的執(zhí)行控件的標(biāo)識(shí)信息??蛇x地,第二獲取模塊20可通過(guò)層關(guān)系法和類(lèi)索引法來(lái)標(biāo)識(shí)各所述控制指令對(duì)應(yīng)的執(zhí)行控件,為其分配唯一標(biāo)識(shí)信息,從而可根據(jù)標(biāo)識(shí)信息實(shí)現(xiàn)基于控件的操作。
[0083]生成模塊30,用于基于所述預(yù)設(shè)MTBF測(cè)試流程包括的控制指令,以及各所述控制指令的執(zhí)行控件的標(biāo)識(shí)信息,生成所述預(yù)設(shè)MTBF測(cè)試流程的測(cè)試腳本。
[0084]本實(shí)施例中,在第一獲取模塊10將測(cè)試用例拆分為控制指令,第二獲取模塊20以及獲取到各所述控制指令的執(zhí)行控件的標(biāo)識(shí)信息之后,生成模塊30使用JAVA進(jìn)行測(cè)試腳本的編寫(xiě),最后得到j(luò)ar包形式的測(cè)試腳本。本領(lǐng)域技術(shù)人員可以理解的是,將編寫(xiě)的測(cè)試腳本分發(fā)至移動(dòng)終端,接收到測(cè)試腳本的移動(dòng)終端將自動(dòng)執(zhí)行測(cè)試腳本,即自動(dòng)執(zhí)行MTBF測(cè)試的測(cè)試用例。
[0085]此外,為了統(tǒng)計(jì)測(cè)試腳本的執(zhí)行結(jié)果,本實(shí)施例在測(cè)試腳本中引入了斷言機(jī)制,其實(shí)現(xiàn)如下:在判斷用例的操作是否成功的關(guān)鍵點(diǎn),插入檢查點(diǎn),并預(yù)置正確的結(jié)果,作為斷言的判斷標(biāo)準(zhǔn),當(dāng)測(cè)試執(zhí)行到相應(yīng)的動(dòng)作的時(shí)候,斷言會(huì)主動(dòng)和預(yù)置的結(jié)果相匹配,并給出結(jié)論。具體的,斷言的方式有多種,本實(shí)施例主要采用控件的對(duì)比,在控件對(duì)比失效的情況下,輔助字符串匹配,在部分無(wú)字符串的的情況下,采用圖片的對(duì)比。斷言的結(jié)果,作為動(dòng)作是否成功執(zhí)行判斷依據(jù),統(tǒng)計(jì)每個(gè)動(dòng)作的結(jié)果,從而得每條子例的結(jié)果,最后得到所有的用例的結(jié)果,并得到整體測(cè)試用例的測(cè)試結(jié)果。
[0086]本實(shí)施例提供的測(cè)試腳本生成裝置,基于Uiautomator框架進(jìn)行測(cè)試腳本的編寫(xiě),實(shí)現(xiàn)了基于控件的人工動(dòng)作模擬,無(wú)需針對(duì)不同屏幕大小的移動(dòng)終端重復(fù)編寫(xiě)測(cè)試腳本,能夠有效提尚測(cè)試腳本的編與效率。
[0087]進(jìn)一步的,基于第一實(shí)施例,提出本發(fā)明測(cè)試腳本生成裝置的第二實(shí)施例,在本實(shí)施例中,所述第二獲取模塊20包括:
[0088]信息獲取單元,用于基于Uiautomator框架獲取各所述控制指令的執(zhí)行控件的描述信息,其中,所述描述信息包括控件的文本信息、尺寸信息、位置信息以及是否可點(diǎn)擊;
[0089]標(biāo)識(shí)生成單元,用于分別基于各所述執(zhí)行控件的描述信息,生成各所述執(zhí)行控件的唯一標(biāo)識(shí)信息。
[0090]本實(shí)施例中,信息獲取單元首先基于Uiautomator框架提供的功能獲取各所述控制指令的描述信息,其中,所述描述信息包括控件的文本信息、尺寸信息、位置信息以及是否可點(diǎn)擊。然后標(biāo)識(shí)生成單元分別基于各所述執(zhí)行控件的描述信息,生成各所述執(zhí)行控件的唯一標(biāo)識(shí)信息??蛇x地,執(zhí)行控件的標(biāo)識(shí)可通過(guò)如下方式實(shí)現(xiàn):
[0091]1、層級(jí)關(guān)系法(Indexlist)
[0092]移動(dòng)終端用戶界面的所有控件元素是以層級(jí)關(guān)系排列的,例如,一個(gè)frame中包括兩個(gè)view,其中第一個(gè)view包括兩個(gè)button,每個(gè)控件元素都有一個(gè)index,用于標(biāo)識(shí)其在父元素中的位置(Ο-based),例如前述兩個(gè)button,若想標(biāo)識(shí)第一個(gè)button,那么它的Indexlist就是:000,第O個(gè)frame中的第O個(gè)view中的第O個(gè)button元素。
[0093]2、類(lèi)索引法(ClassIndex)
[0094]移動(dòng)終端用戶界面的所有控件元素都是分類(lèi)的,例如frame、view以及button等,可以統(tǒng)計(jì)出所有元素類(lèi)型出現(xiàn)的次數(shù),并編號(hào),例如:
[0095]Frame:frame0、frame 1、frame2、frame 3......
[0096]View:view0、viewl、view2、view3、view4......
[0097]Button:button0、buttonl、button2、button3......
[0098]當(dāng)解析所有元素的時(shí)候,每次出現(xiàn)一個(gè)同類(lèi)型的元素,就統(tǒng)計(jì)這個(gè)元素出現(xiàn)的次數(shù),這個(gè)次數(shù)就是Classindex,既將層級(jí)結(jié)構(gòu)扁平化展示。
[0099]進(jìn)一步的,基于第一或第二實(shí)施例,提出本發(fā)明測(cè)試腳本生成裝置的第三實(shí)施例,在本實(shí)施例中,所述測(cè)試腳本生成裝置還包括:
[0100]腳本分發(fā)模塊,用于在接收到測(cè)試指令時(shí),將所述測(cè)試腳本發(fā)送至移動(dòng)終端,以供所述移動(dòng)終端執(zhí)行接收的測(cè)試腳本,并返回執(zhí)行所述測(cè)試腳本生成的執(zhí)行日志;
[0101]報(bào)告生成模塊,用于接收并基于所述移動(dòng)終端返回的執(zhí)行日志生成測(cè)試報(bào)告。
[0102]需要說(shuō)明的是,本實(shí)施例的實(shí)現(xiàn)基于測(cè)試服務(wù)器和移動(dòng)終端之間的通訊連接,參照?qǐng)D4,可選地,為了確保在測(cè)試腳本的執(zhí)行過(guò)程中移動(dòng)終端能夠有足夠的電流輸入,本實(shí)施例在測(cè)試服務(wù)器和移動(dòng)終端之間添加了硬件設(shè)備穩(wěn)壓器,并由穩(wěn)壓器負(fù)責(zé)所述測(cè)試服務(wù)器以及所述移動(dòng)終端之間的數(shù)據(jù)交互。
[0103]下面以多媒體播放穩(wěn)定性的測(cè)試用例對(duì)本實(shí)施例做詳細(xì)說(shuō)明:
[0104]參照?qǐng)D4,在測(cè)試開(kāi)始前,將測(cè)試服務(wù)器和移動(dòng)終端通過(guò)穩(wěn)壓器建立通信連接。用戶在腳本分發(fā)模塊基于測(cè)試服務(wù)器提供的測(cè)試用例的選擇界面上選中上述測(cè)試手機(jī)多媒體播放穩(wěn)定性的測(cè)試用例,腳本分發(fā)模塊根據(jù)用戶選中的測(cè)試用例獲取對(duì)應(yīng)的測(cè)試腳本,并將獲取的所述測(cè)試腳本發(fā)送至移動(dòng)終端。
[0105]測(cè)試開(kāi)始后,移動(dòng)終端依次執(zhí)行測(cè)試腳本中的控制指令:移動(dòng)終端顯示主菜單,移動(dòng)終端進(jìn)入主菜單下的任一子菜單,移動(dòng)終端返回主菜單,移動(dòng)終端返回待機(jī)界面(完成主菜單的顯示以及快捷鍵的測(cè)試步驟),移動(dòng)終端進(jìn)入到在線節(jié)目列表,移動(dòng)終端進(jìn)入到節(jié)目列表下的精彩推薦選項(xiàng),移動(dòng)終端更新在線節(jié)目列表,移動(dòng)終端播放任一節(jié)目,移動(dòng)終端停止播放,移動(dòng)終端返回在線節(jié)目列表,移動(dòng)終端返回待機(jī)界面(完成菜單的順序測(cè)試步驟),移動(dòng)終端播放任意節(jié)目,移動(dòng)終端暫停播放,移動(dòng)終端開(kāi)始播放,移動(dòng)終端停止播放,移動(dòng)終端開(kāi)始播放,移動(dòng)終端全屏播放,移動(dòng)終端調(diào)整音量,移動(dòng)終端停止播放,移動(dòng)終端返回待機(jī)界面(完成視頻播放功能使用情況測(cè)試步驟)。移動(dòng)終端在執(zhí)行完測(cè)試腳本中的所有控制指令后,將其執(zhí)行所述測(cè)試腳本生成的執(zhí)行日志發(fā)送至所述測(cè)試服務(wù)器。
[0106]報(bào)告生成模塊在基于測(cè)試服務(wù)器接收到移動(dòng)終端返回的執(zhí)行日志時(shí),分析所述執(zhí)行日志中各控制指令的執(zhí)行結(jié)果,生成包括各所述移動(dòng)終端的MTBF(Mean Time BetweenFailure,平均故障間隔時(shí)間)值的測(cè)試報(bào)告。具體的,所述報(bào)告生成模塊在分析所述執(zhí)行日志時(shí),若控制指令的執(zhí)行結(jié)果為失敗,則視作一次故障,從而根據(jù)穩(wěn)定性測(cè)試的持續(xù)時(shí)長(zhǎng)(移動(dòng)終端執(zhí)行測(cè)試腳本的時(shí)長(zhǎng)),以及所述持續(xù)時(shí)長(zhǎng)中移動(dòng)終端的故障總數(shù),生成包括所述移動(dòng)終端的MTBF值的測(cè)試報(bào)告。
[0107]此外,本