隨機按鍵測試方法和裝置制造方法
【專利摘要】本發(fā)明公開了一種隨機按鍵測試方法和裝置,屬于通信【技術領域】。所述方法包括:搜索移動終端的當前窗口;如果所述當前窗口中存在虛擬鍵盤或預設的可用控件,則對所述當前窗口進行有序按鍵操作;如果所述當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對所述當前窗口進行無序按鍵操作。所述裝置包括:搜索模塊、第一按鍵操作模塊和第二按鍵操作模塊。本發(fā)明如果當前窗口中存在虛擬鍵盤或預設的可用控件,則對當前窗口進行有序按鍵操作,如果當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對當前窗口進行無序按鍵操作,可以將有序按鍵操作和無序按鍵操作相結合,不是完全隨機的,減少了無效的按鍵操作,可以提高測試的效率。
【專利說明】 隨機按鍵測試方法和裝置
【技術領域】
[0001]本發(fā)明涉及通信【技術領域】,特別涉及一種隨機按鍵測試方法和裝置。
【背景技術】
[0002]隨著通信技術的發(fā)展,手機等移動終端已經成為常用的通信工具,而在使用移動終端的過程中,常常會遇到移動終端Crash (繃潰、閃退等)的情況。為了避免移動終端出現Crash的情況,需要預先對移動終端進行隨機按鍵測試,通過隨機按鍵測試檢測移動終端是否會Crash,當檢測到移動終端Crash時,記錄Crash情況,根據Crash情況判斷Crash原因,對移動終端進行改進。
[0003]現有隨機按鍵測試方法,主要包括下面二種:
[0004]第一種,在移動終端當前窗口(view)上隨機選擇一個像素點,對選擇的像素點進行按鍵操作,其中,按鍵操作包括:點擊、雙擊、滑動或長按等。
[0005]第二種,查找移動終端當前窗口上的可用控件,從查找到的可用控件中隨機選擇一個可用控件,對選擇的可用控件進行按鍵操作,其中,按鍵操作包括:點擊、雙擊、滑動或長按等。
[0006]然而,在實現本發(fā)明的過程中,發(fā)明人發(fā)現現有技術至少存在以下問題:
[0007]現有技術是通過隨機選擇像素點或可用控件進行按鍵操作,由于是完全隨機的,很多無法進行操作的像素點或可用控件也會隨機到,無效的按鍵操作比較多,導致測試的效率低。
【發(fā)明內容】
[0008]為了解決現有技術的問題,本發(fā)明實施例提供了一種隨機按鍵測試方法和裝置。所述技術方案如下:
[0009]一種隨機按鍵測試方法,所述方法包括:
[0010]搜索移動終端的當前窗口 ;
[0011]如果所述當前窗口中存在虛擬鍵盤或預設的可用控件,則對所述當前窗口進行有序按鍵操作;
[0012]如果所述當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對所述當前窗口進行無序按鍵操作。
[0013]一種隨機按鍵測試裝置,所述裝置包括:
[0014]搜索模塊,用于搜索移動終端的當前窗口 ;
[0015]第一按鍵操作模塊,用于當所述搜索模塊搜索到所述當前窗口中存在虛擬鍵盤或預設的可用控件時,對所述當前窗口進行有序按鍵操作;
[0016]第二按鍵操作模塊,用于當所述搜索模塊搜索到所述當前窗口中沒有存在虛擬鍵盤或預設的可用控件時,對所述當前窗口進行無序按鍵操作。
[0017]本發(fā)明實施例提供的技術方案帶來的有益效果是:[0018]如果當前窗口中存在虛擬鍵盤或預設的可用控件,則對當前窗口進行有序按鍵操作,如果當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對當前窗口進行無序按鍵操作,可以將有序按鍵操作和無序按鍵操作相結合,不是完全隨機的,減少了無效的按鍵操作,可以提高測試的效率。
【專利附圖】
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
[0020]圖1是本發(fā)明實施例一提供的一種隨機按鍵測試方法流程圖;
[0021]圖2是本發(fā)明實施例二提供的一種隨機按鍵測試方法流程圖;
[0022]圖3是本發(fā)明實施例三提供的一種隨機按鍵測試裝置結構示意圖;
[0023]圖4是本發(fā)明實施例三提供的另一種隨機按鍵測試裝置結構示意圖。
【具體實施方式】
[0024]為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0025]實施例一
[0026]本發(fā)明實施例提供了一種隨機按鍵測試方法,參見圖1,該方法包括:
[0027]101:搜索移動終端的當前窗口。
[0028]102:如果當前窗口中存在虛擬鍵盤或預設的可用控件,則對當前窗口進行有序按鍵操作。
[0029]103:如果當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對當前窗口進行無序按鍵操作。
[0030]進一步地,如果當前窗口中存在虛擬鍵盤或預設的可用控件,則對當前窗口進行有序按鍵操作,包括:
[0031]判斷當前窗口中是否存在虛擬鍵盤;
[0032]如果當前窗口中存在虛擬鍵盤,則對當前窗口中的虛擬鍵盤進行有序按鍵操作;
[0033]如果當前窗口中沒有存在虛擬鍵盤,則判斷當前窗口中是否存在預設的可用控件;
[0034]如果當前窗口中存在預設的可用控件,則對當前窗口中的可用控件進行有序按鍵操作。
[0035]進一步地,對當前窗口中的虛擬鍵盤進行有序按鍵操作,包括:
[0036]按照預設的選擇規(guī)則,從預設的字符庫中,選擇一個字符輸入當前窗口中虛擬鍵盤的輸入框,并回車;或
[0037]利用預設的隨機函數,隨機產生一個字符,將產生的字符輸入當前窗口中虛擬鍵盤的輸入框,并回車;或
[0038]按照預設的輸入規(guī)則,從當前窗口的虛擬鍵盤中,選擇字符輸入當前窗口中虛擬鍵盤的輸入框,并回車。
[0039]進一步地,對當前窗口中的可用控件進行有序按鍵操作,包括:
[0040]根據當前窗口中可用控件的特性,從預設的指令庫中,選取有序的操作指令;
[0041]按照有序的操作指令,對當前窗口中的可用控件進行按鍵操作。
[0042]進一步地,對當前窗口進行有序按鍵操作或對當前窗口進行無序按鍵操作之后,還包括:
[0043]判斷移動終端是否繃潰閃退crash ;
[0044]如果crash,則記錄crash情況,重新啟動移動終端,然后執(zhí)行搜索移動終端的當前窗口的步驟。
[0045]本發(fā)明實施例所述的隨機按鍵測試方法,如果當前窗口中存在虛擬鍵盤或預設的可用控件,則對當前窗口進行有序按鍵操作,如果當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對當前窗口進行無序按鍵操作,可以將有序按鍵操作和無序按鍵操作相結合,不是完全隨機的,減少了無效的按鍵操作,可以提高測試的效率。并且,有序按鍵操作對應有相應的操作位置,可以提高測試的覆蓋率。
[0046]實施例二
[0047]本發(fā)明實施例提供了一種隨機按鍵測試方法,參見圖2,該方法包括:
[0048]201:啟動測試,判斷是否到達指定的測試時間,如果到達,則結束;否則,執(zhí)行202。
[0049]具體地,可以預先設置指定的測試時間,在指定的測試時間內循環(huán)進行隨機按鍵測試,其中,指定的測試時間可以是I分鐘、I小時、2小時等,可以根據實際應用情況,設置指定的測試時間的具體取值,對此不做限定。
[0050]202:搜索移動終端的當前窗口,判斷當前窗口中是否存在虛擬鍵盤,如果存在,則執(zhí)行203 ;否則,執(zhí)行206。
[0051]具體地,可以通過移動終端系統(tǒng)提供的接口函數來判斷當前窗口中是否存在虛擬鍵盤,對于iOS系統(tǒng),如果接口函數返回I,則當前窗口中存在虛擬鍵盤;如果接口函數返回0,則當前窗口中沒有存在虛擬鍵盤。
[0052]203:對當前窗口中的虛擬鍵盤進行有序按鍵操作。
[0053]具體地,對當前窗口中的虛擬鍵盤進行有序按鍵操作,包括下面幾種方法:
[0054]第一:按照預設的選擇規(guī)則,從預設的字符庫中,選擇一個字符輸入當前窗口中虛擬鍵盤的輸入框,并回車。
[0055]其中,預設的選擇規(guī)則包括:隨機選擇、按照從左到右從上到小的順序等,可以根據實際應用狀況,設置選擇規(guī)則,對此不做限定。
[0056]其中,預設的字符庫是預先設置的存儲有各種字符的數據庫,并且,各個字符的長短不做限定,可以是任意長短的字符。預設的字符庫可以設置在移動終端服務器中等。
[0057]選擇一個字符輸入當前窗口中虛擬鍵盤的輸入框,并回車,具體地,將選擇的字符輸入虛擬鍵盤的輸入框對應的位置坐標,并點擊回車鍵的位置坐標。
[0058]第二:利用預設的隨機函數,隨機產生一個字符,將產生的字符輸入當前窗口中虛擬鍵盤的輸入框,并回車。
[0059]其中,預設的隨機函數可以是可以產生字符的任意一個函數,可以根據實際應用狀況,選擇任何隨機函數,對此不做限定。其中,產生的字符可以是任意長度的。
[0060]第三:按照預設的輸入規(guī)則,從當前窗口的虛擬鍵盤中,選擇字符輸入當前窗口中虛擬鍵盤的輸入框,并回車。
[0061]其中,預設的輸入規(guī)則可以是隨機從虛擬鍵盤中選擇字符輸入輸入框,或是從虛擬鍵盤中選擇預設的字符輸入輸入框等,可以根據實際應用狀況,選擇任何輸入規(guī)則,對此不做限定。
[0062]204:判斷移動終端是否繃潰閃退crash,如果crash,則執(zhí)行205 ;否則,執(zhí)行201。
[0063]205:記錄crash情況,重新啟動移動終端,然后執(zhí)行201。
[0064]206:判斷當前窗口中是否存在預設的可用控件,如果存在,則執(zhí)行207 ;否則,執(zhí)行 208。
[0065]其中,判斷當前窗口中是否存在預設的可用控件,可以通過可用控件的名稱或ID(Identity,標識)等進行判斷,具體地包括:
[0066]判斷當前窗口中存在的可用控件中,是否存在有可用控件的名稱與預設的關鍵詞相同的可用控件:
[0067]如果存在,則判斷當前窗口中存在預設的可用控件。或
[0068]判斷當前窗口中存在的可用控件中,是否存在有可用控件的ID與預設的ID相同的可用控件;
[0069]如果存在,則判斷當前窗口中存在預設的可用控件。
[0070]207:對當前窗口中的可用控件進行有序按鍵操作,然后執(zhí)行204。
[0071]具體地,對當前窗口中的可用控件進行有序按鍵操作,包括:
[0072]根據當前窗口中可用控件的特性,從預設的指令庫中,選取有序的操作指令;
[0073]按照有序的操作指令,對當前窗口中的可用控件進行按鍵操作。
[0074]具體地,當前窗口的界面不同,則相應的可用控件不同,則有序的操作指令也不同,如當前窗口的界面為書簽界面,則相應的可用控件為編輯控件、控制某書簽的控件等,則相應有序的操作指令為:點擊編輯控件對應的位置一> 點擊某一條書簽控件對應的位置一> 在輸入控件對應的位置輸入一串字符一> 點擊完成控件對應的位置。
[0075]可以根據各個窗口中可用控件的特征,設置有序的操作指令,存儲在預設的指令庫中,當需要時,再從預設的指令庫中選取。
[0076]208:對當前窗口進行無序按鍵操作,然后執(zhí)行204。
[0077]具體地,對當前窗口進行無序按鍵操作,包括:
[0078]在移動終端當前窗口上隨機選擇一個像素點,對選擇的像素點進行按鍵操作;或
[0079]查找移動終端當前窗口上的可用控件,從查找到的可用控件中隨機選擇一個可用控件,對選擇的可用控件進行按鍵操作。
[0080]本發(fā)明實施例所述的隨機按鍵測試方法,如果當前窗口中存在虛擬鍵盤或預設的可用控件,則對當前窗口進行有序按鍵操作,如果當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對當前窗口進行無序按鍵操作,可以將有序按鍵操作和無序按鍵操作相結合,不是完全隨機的,減少了無效的按鍵操作,可以提高測試的效率。并且,有序按鍵操作對應有相應的操作位置,可以提高測試的覆蓋率。
[0081]實施例三[0082]參見圖3,本發(fā)明實施例提供了一種隨機按鍵測試裝置,該裝置包括:
[0083]搜索模塊301,用于搜索移動終端的當前窗口 ;
[0084]第一按鍵操作模塊302,用于當搜索模塊301搜索到當前窗口中存在虛擬鍵盤或預設的可用控件時,對當前窗口進行有序按鍵操作;
[0085]第二按鍵操作模塊303,用于當搜索模塊301搜索到當前窗口中沒有存在虛擬鍵盤或預設的可用控件時,對當前窗口進行無序按鍵操作。
[0086]進一步地,第一按鍵操作模塊302包括:
[0087]第一判斷單元,用于當搜索模塊301搜索移動終端的當前窗口后,判斷當前窗口中是否存在虛擬鍵盤;
[0088]第一按鍵操作單元,用于當第一判斷單元判斷當前窗口中存在虛擬鍵盤時,對當前窗口中的虛擬鍵盤進行有序按鍵操作;
[0089]第二判斷單元,用于當第一判斷單元判斷當前窗口中沒有存在虛擬鍵盤時,判斷當前窗口中是否存在預設的可用控件;
[0090]第二按鍵操作單元,用于當第二判斷單元判斷當前窗口中存在預設的可用控件時,對當前窗口中的可用控件進行有序按鍵操作。
[0091]進一步地,第一按鍵操作單元包括:
[0092]第一按鍵操作子單元,用于按照預設的選擇規(guī)則,從預設的字符庫中,選擇一個字符輸入當前窗口中虛擬鍵盤的輸入框,并回車;或
[0093]第二按鍵操作子單元,用于利用預設的隨機函數,隨機產生一個字符,將產生的字符輸入當前窗口中虛擬鍵盤的輸入框,并回車;或
[0094]第三按鍵操作子單元,用于按照預設的輸入規(guī)則,從當前窗口的虛擬鍵盤中,選擇字符輸入當前窗口中虛擬鍵盤的輸入框,并回車。
[0095]進一步地,第二按鍵操作單元包括:
[0096]選取子單元,用于根據當前窗口中可用控件的特性,從預設的指令庫中,選取有序的操作指令;
[0097]處理子單元,用于在選取子單元選取有序的操作指令后,按照有序的操作指令,對當前窗口中的可用控件進行按鍵操作。
[0098]進一步地,參見圖4,該裝置還包括:
[0099]判斷模塊304,用于當第一按鍵操作模塊302對當前窗口進行有序按鍵操作或第二按鍵操作模塊303對當前窗口進行無序按鍵操作之后,判斷移動終端是否繃潰閃退crash ;
[0100]通知模塊305,用于當判斷模塊304判斷移動終端crash后,記錄crash情況,重新啟動移動終端,然后通知搜索模塊301執(zhí)行搜索移動終端的當前窗口的步驟。
[0101]本發(fā)明實施例所述的隨機按鍵測試裝置,如果當前窗口中存在虛擬鍵盤或預設的可用控件,則對當前窗口進行有序按鍵操作,如果當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對當前窗口進行無序按鍵操作,可以將有序按鍵操作和無序按鍵操作相結合,不是完全隨機的,減少了無效的按鍵操作,可以提高測試的效率。并且,有序按鍵操作對應有相應的操作位置,可以提高測試的覆蓋率。
[0102]需要說明的是:上述實施例提供的隨機按鍵測試裝置,僅以上述各功能模塊的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模塊完成,即將裝置的內部結構劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的隨機按鍵測試裝置與隨機按鍵測試方法實施例屬于同一構思,其具體實現過程詳見方法實施例,這里不再贅述。
[0103]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0104]本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
[0105]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1.一種隨機按鍵測試方法,其特征在于,所述方法包括: 搜索移動終端的當前窗口; 如果所述當前窗口中存在虛擬鍵盤或預設的可用控件,則對所述當前窗口進行有序按鍵操作; 如果所述當前窗口中沒有存在虛擬鍵盤或預設的可用控件,則對所述當前窗口進行無序按鍵操作。
2.根據權利要求1所述的方法,其特征在于,所述如果所述當前窗口中存在虛擬鍵盤或預設的可用控件,則對所述當前窗口進行有序按鍵操作,包括: 判斷所述當前窗口中是否存在虛擬鍵盤; 如果所述當前窗口中存在虛擬鍵盤,則對所述當前窗口中的虛擬鍵盤進行有序按鍵操作; 如果所述當前窗口中沒有存在虛擬鍵盤,則判斷所述當前窗口中是否存在預設的可用控件; 如果所述當前窗口中存在預設的可用控件,則對所述當前窗口中的可用控件進行有序按鍵操作。
3.根據權利要求2所述的方法,其特征在于,所述對所述當前窗口中的虛擬鍵盤進行有序按鍵操作,包括: 按照預設的選擇規(guī)則,從預設的字符庫中,選擇一個字符輸入所述當前窗口中虛擬鍵盤的輸入框,并回車;或` 利用預設的隨機函數,隨機產生一個字符,將產生的字符輸入所述當前窗口中虛擬鍵盤的輸入框,并回車;或 按照預設的輸入規(guī)則,從所述當前窗口的虛擬鍵盤中,選擇字符輸入所述當前窗口中虛擬鍵盤的輸入框,并回車。
4.根據權利要求2所述的方法,其特征在于,所述對所述當前窗口中的可用控件進行有序按鍵操作,包括: 根據所述當前窗口中可用控件的特性,從預設的指令庫中,選取有序的操作指令; 按照有序的操作指令,對所述當前窗口中的可用控件進行按鍵操作。
5.根據權利要求1-4任意一項權利要求所述的方法,其特征在于,所述對所述當前窗口進行有序按鍵操作或對所述當前窗口進行無序按鍵操作之后,還包括: 判斷所述移動終端是否繃潰閃退crash ; 如果crash,則記錄crash情況,重新啟動所述移動終端,然后執(zhí)行所述搜索移動終端的當前窗口的步驟。
6.一種隨機按鍵測試裝置,其特征在于,所述裝置包括: 搜索模塊,用于搜索移動終端的當前窗口 ; 第一按鍵操作模塊,用于當所述搜索模塊搜索到所述當前窗口中存在虛擬鍵盤或預設的可用控件時,對所述當前窗口進行有序按鍵操作; 第二按鍵操作模塊,用于當所述搜索模塊搜索到所述當前窗口中沒有存在虛擬鍵盤或預設的可用控件時,對所述當前窗口進行無序按鍵操作。
7.根據權利要求6所述的裝置,其特征在于,所述第一按鍵操作模塊包括:第一判斷單元,用于當所述搜索模塊搜索移動終端的當前窗口后,判斷所述當前窗口中是否存在虛擬鍵盤; 第一按鍵操作單元,用于當所述第一判斷單元判斷所述當前窗口中存在虛擬鍵盤時,對所述當前窗口中的虛擬鍵盤進行有序按鍵操作; 第二判斷單元,用于當所述第一判斷單元判斷所述當前窗口中沒有存在虛擬鍵盤時,判斷所述當前窗口中是否存在預設的可用控件; 第二按鍵操作單元,用于當所述第二判斷單元判斷所述當前窗口中存在預設的可用控件時,對所述當前窗口中的可用控件進行有序按鍵操作。
8.根據權利要求7所述的裝置,其特征在于,所述第一按鍵操作單元包括: 第一按鍵操作子單元,用于按照預設的選擇規(guī)則,從預設的字符庫中,選擇一個字符輸入所述當前窗口中虛擬鍵盤的輸入框,并回車;或 第二按鍵操作子單元,用于利用預設的隨機函數,隨機產生一個字符,將產生的字符輸入所述當前窗口中虛擬鍵盤的輸入框,并回車;或 第三按鍵操作子單元,用于按照預設的輸入規(guī)則,從所述當前窗口的虛擬鍵盤中,選擇字符輸入所述當前窗口中虛擬鍵盤的輸入框,并回車。
9.根據權利要求7所述的裝置,其特征在于,所述第二按鍵操作單元包括: 選取子單元,用于根據所述當前窗口中可用控件的特性,從預設的指令庫中,選取有序的操作指令; 處理子單元,用于在所述選取子單元選取有序的操作指令后,按照有序的操作指令,對所述當前窗口中的可用控件進`行按鍵操作。
10.根據權利要求6-9任意一項權利要求所述的裝置,其特征在于,所述裝置還包括: 判斷模塊,用于當所述第一按鍵操作模塊對所述當前窗口進行有序按鍵操作或所述第二按鍵操作模塊對所述當前窗口進行無序按鍵操作之后,判斷所述移動終端是否繃潰閃退crash ; 通知模塊,用于當所述判斷模塊判斷所述移動終端crash后,記錄crash情況,重新啟動所述移動終端,然后通知所述搜索模塊執(zhí)行所述搜索移動終端的當前窗口的步驟。
【文檔編號】G06F11/36GK103678094SQ201210318525
【公開日】2014年3月26日 申請日期:2012年8月31日 優(yōu)先權日:2012年8月31日
【發(fā)明者】丁如敏, 張錦銘 申請人:騰訊科技(深圳)有限公司