移動終端中應用程序的測試方法和系統(tǒng)的制作方法
【技術(shù)領域】
[0001]本發(fā)明涉及移動設備制造技術(shù)領域,尤其涉及一種移動終端中應用程序的測試方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動終端智能化的迅速發(fā)展,各種功能的應用程序也越來越多元化,用戶越來越傾向于通過在移動終端上安裝不同的應用程序,來輔助進行商務、娛樂、生活等多種活動。由于應用程序市場上各種應用程序琳瑯滿目,質(zhì)量參差不齊,若保障應用程序具有良好的市場競爭力,則首先需要保障應用程序的測試質(zhì)量。
[0003]目前,Robotium是安卓Android平臺測試中一個簡單而又強大的工具。Robotium是基于Android測試框架Instrumentat1nTestCase2進行的2次封裝,把一些基本操作又簡化了一遍,Robotium的文檔只有一個Solo類,而且配置步驟是固定的幾步。Robotium測試工具的優(yōu)點是,在有源碼時可以測試源碼,進行白盒測試,在沒有源碼時,只有一個應用程序的APK (AndroidPackage, Android安裝包)也可以對其進行黑盒測試,而且對應用程序上的每一個按鈕、文本控件、圖像等都可以捕捉到,既可以使用按鈕顯示的名字進行點擊,也可以使用坐標進行點擊。
[0004]目前至少存在以下問題:(I) Robotium由于是使用和Android系統(tǒng)一樣的開發(fā)技術(shù),所以對測試人員的技術(shù)水平要求較高,對測試人員編寫出來的測試腳本,需要進行仔細的檢查和修改,當測試腳本運行和移動終端上的界面不一致時,會導致移動終端的應用程序直接崩潰;(2)由于Android系統(tǒng)為開放源代碼,各個廠家對其中的代碼各有定制,所以有些Robotium的功能無法實現(xiàn),而在測試中有些功能Robotium并不具備;(3)Robotium提供的API (Applicat1n Programming Interface,應用程序編程接口)是面向過程的,測試代碼的可擴展性差,從而導致維護工作量較大。
【發(fā)明內(nèi)容】
[0005]本發(fā)明旨在至少解決上述技術(shù)問題之一。
[0006]為此,本發(fā)明的第一個目的在于提出一種移動終端中應用程序的測試方法。該方法使得學習門檻降低,經(jīng)過簡單的培訓即可使用,便于推廣使用,并且減少了手動編寫測試腳本的工作量,提高了測試腳本的編寫速度。
[0007]本發(fā)明的第二個目的在于提出一種移動終端中應用程序的測試系統(tǒng)。
[0008]為了實現(xiàn)上述目的,本發(fā)明第一方面實施例的移動終端中應用程序的測試方法,包括以下步驟:測試端建立移動終端中測試引擎與待測應用程序的關(guān)聯(lián)關(guān)系;所述測試端啟動所述測試引擎和所述待測應用程序,并將測試腳本加載至所述移動終端;所述測試引擎將所述測試腳本轉(zhuǎn)換為相應的控制指令,并控制所述待測應用程序執(zhí)行所述控制指令;以及所述測試端采集所述待測應用程序執(zhí)行所述控制指令之后生成的界面數(shù)據(jù),并根據(jù)所述界面數(shù)據(jù)對所述待測應用程序進行測試。
[0009]根據(jù)本發(fā)明實施例的移動終端中應用程序的測試方法,可通過移動終端中的測試引擎將測試腳本轉(zhuǎn)換為相應的控制指令,并控制待測應用程序執(zhí)行控制指令,測試端可采集待測應用程序執(zhí)行控制指令之后生成的界面數(shù)據(jù),并根據(jù)界面數(shù)據(jù)對待測應用程序進行測試,至少具有以下優(yōu)點:(1)測試工程師無須知道Robotium的任何技術(shù)細節(jié),經(jīng)過簡單的培訓即可使用并測試,學習門檻降低,便于推廣使用;(2)測試腳本可以通過移動終端模擬器快速生成,減少了手工編寫測試腳本的工作量,減少了編寫出錯的可能,同時也提高了測試腳本編寫速度;(3)功能有所擴展,測試腳本的穩(wěn)定性大大提高。
[0010]為了實現(xiàn)上述目的,本發(fā)明第二方面實施例的移動終端中應用程序的測試系統(tǒng),包括:測試端和移動終端,其中,所述測試端,用于建立所述移動終端中測試引擎與待測應用程序的關(guān)聯(lián)關(guān)系,并啟動所述測試引擎和所述待測應用程序,并將測試腳本加載至所述移動終端,以使所述移動終端中的所述測試引擎將所述測試腳本轉(zhuǎn)換為相應的控制指令,并使得所述測試引擎控制所述待測應用程序執(zhí)行所述控制指令,以及采集所述待測應用程序執(zhí)行所述控制指令之后生成的界面數(shù)據(jù),并根據(jù)所述界面數(shù)據(jù)對所述待測應用程序進行測試;所述移動終端,用于獲取所述測試腳本,并將所述測試腳本轉(zhuǎn)換為相應的控制指令,并控制所述待測應用程序執(zhí)行所述控制指令。
[0011]根據(jù)本發(fā)明實施例的移動終端中應用程序的測試系統(tǒng),可通過移動終端中的測試引擎將測試腳本轉(zhuǎn)換為相應的控制指令,并控制待測應用程序執(zhí)行控制指令,測試端可采集待測應用程序執(zhí)行控制指令之后生成的界面數(shù)據(jù),并根據(jù)界面數(shù)據(jù)對待測應用程序進行測試,至少具有以下優(yōu)點:(1)測試工程師無須知道RobOtium的任何技術(shù)細節(jié),經(jīng)過簡單的培訓即可使用并測試,學習門檻降低,便于推廣使用;(2)測試腳本可以通過移動終端模擬器快速生成,減少了手工編寫測試腳本的工作量,減少了編寫出錯的可能,同時也提高了測試腳本編寫速度;(3)功能有所擴展,測試腳本的穩(wěn)定性大大提高。
[0012]本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
【附圖說明】
[0013]本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中,
[0014]圖1是根據(jù)本發(fā)明一個實施例的移動終端中應用程序的測試方法的流程圖;
[0015]圖2是根據(jù)本發(fā)明一個實施例的移動終端中應用程序的測試系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實施方式】
[0016]下面詳細描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反,本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0017]在本發(fā)明的描述中,需要理解的是,術(shù)語“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對重要性。在本發(fā)明的描述中,需要說明的是,除非另有明確的規(guī)定和限定,術(shù)語“相連”、“連接”應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連。對于本領域的普通技術(shù)人員而言,可以具體情況理解上述術(shù)語在本發(fā)明中的具體含義。此外,在本發(fā)明的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
[0018]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應被本發(fā)明的實施例所屬技術(shù)領域的技術(shù)人員所理解。
[0019]下面結(jié)合說明書附圖詳細說明本發(fā)明實施例的移動終端中應用程序的測試方法和系統(tǒng)。
[0020]為了解決Robotium測試工具對于測試人員編寫測試腳本能力的要求較高的問題,以及為了解決Robotium測試工具中測試代碼的可擴展性差,從而導致維護工作量較大的問題,本發(fā)明提出一種移動終端中應用程序的測試方法。
[0021]圖1是根據(jù)本發(fā)明一個實施例的移動終端中應用程序的測試方法的流程圖。如圖1所示,移動終端中應用程序的測試方法包括以下步驟:
[0022]S101,測試端建立移動終端中測試引擎與待測應用程序的關(guān)聯(lián)關(guān)系。
[0023]在本發(fā)明的一個實施例中,測試端可以為PC (Personal Computer,個人計算機)機。
[0024]在本發(fā)明的一個實施例中,移動終端的操作系統(tǒng)可為An dr ο i d操作系統(tǒng),測試引擎可為Robotium測試框架。其中,移動終端可以是智能手機、平板電腦、個人數(shù)字助理、電子書等具有Android操作系統(tǒng)的硬件設備。
[0025]具體地,測試端可通過修改測試引擎的源代碼以建立測試引擎與待測應用程序的關(guān)聯(lián)關(guān)系。例如,將待測應用程序的包名和啟動入口填寫至測試引擎中,這樣就可將測試引擎和移動終端中的待測應用程序進行了綁定。其中,待測應用程序的包名即為待測應用程序的packagename屬性,可通過PackageManger管理類獲取待測應用程序的packagename屬性。
[0026]S102,測試端啟動測試引擎和待測應用程序