程序測(cè)試裝置及方法
【專利摘要】本發(fā)明公開(kāi)了一種程序測(cè)試方法,所述方法包括以下步驟:從程序中選擇可視控件并根據(jù)所述可視控件獲取方法屬性,以及根據(jù)所述方法屬性對(duì)所述程序進(jìn)行測(cè)試并獲取所述程序的測(cè)試反應(yīng);記錄所述程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間;計(jì)算所述程序的運(yùn)行時(shí)間,以及判斷所述運(yùn)行時(shí)間是否符合預(yù)定要求并生成第一判斷結(jié)果,所述運(yùn)行時(shí)間等于所述測(cè)試結(jié)束時(shí)間與所述測(cè)試開(kāi)始時(shí)間的差;在所述第一判斷結(jié)果為所述運(yùn)行時(shí)間符合所述預(yù)定要求時(shí)停止對(duì)所述程序進(jìn)行測(cè)試。本發(fā)明還公開(kāi)了一種程序測(cè)試裝置。本發(fā)明能避免進(jìn)行不必要的測(cè)試,使得針對(duì)程序的測(cè)試更加有針對(duì)性,提高程序的測(cè)試效率。
【專利說(shuō)明】程序測(cè)試裝置及方法
【【技術(shù)領(lǐng)域】】
[0001]本發(fā)明涉及程序測(cè)試領(lǐng)域,特別涉及一種程序測(cè)試裝置及方法。
【【背景技術(shù)】】
[0002]在程序(軟件)的開(kāi)發(fā)過(guò)程中需要對(duì)所開(kāi)發(fā)的程序(軟件)進(jìn)行測(cè)試。Android (安卓)提供了一個(gè)命令行工具(例如,Monkey ),這個(gè)命令行工具可以運(yùn)行在模擬器或?qū)嶋H設(shè)備中。在傳統(tǒng)的測(cè)試過(guò)程中,該命令行工具向模擬器或?qū)嶋H設(shè)備發(fā)送偽隨機(jī)的用戶事件流,例如,按鍵輸入、觸摸屏輸入、手勢(shì)輸入等,從而實(shí)現(xiàn)對(duì)程序(軟件)進(jìn)行測(cè)試。
[0003]上述命令行工具具有這樣一個(gè)缺陷:測(cè)試所使用的事件流數(shù)據(jù)流是隨機(jī)的,不能進(jìn)行自定義。
[0004]對(duì)于該命令行工具,由于測(cè)試所使用的事件流數(shù)據(jù)流是隨機(jī)的,因此會(huì)出現(xiàn)較多無(wú)效的點(diǎn)擊(操作),即,很多無(wú)法進(jìn)行操作的像素點(diǎn)也會(huì)隨機(jī)(測(cè)試)到,尤其是在有彈出框等的用戶界面中,上述出現(xiàn)較多無(wú)效的點(diǎn)擊(操作)的現(xiàn)象更加明顯,這會(huì)導(dǎo)致針對(duì)程序(軟件)進(jìn)行測(cè)試的效率非常低。
[0005]故,有必要提出一種新的技術(shù)方案,以解決上述技術(shù)問(wèn)題。
【
【發(fā)明內(nèi)容】
】
[0006]本發(fā)明的一 個(gè)目的在于提供一種程序測(cè)試方法,其能避免進(jìn)行不必要的測(cè)試,使得針對(duì)程序的測(cè)試更加有針對(duì)性,提高程序的測(cè)試效率。
[0007]為解決上述問(wèn)題,本發(fā)明提供了一種程序測(cè)試方法,所述方法包括以下步驟:從程序中選擇可視控件并根據(jù)所述可視控件獲取方法屬性,以及根據(jù)所述方法屬性對(duì)所述程序進(jìn)行測(cè)試并獲取所述程序的測(cè)試反應(yīng);記錄所述程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間;計(jì)算所述程序的運(yùn)行時(shí)間,以及判斷所述運(yùn)行時(shí)間是否符合預(yù)定要求并生成第一判斷結(jié)果,所述運(yùn)行時(shí)間等于所述測(cè)試結(jié)束時(shí)間與所述測(cè)試開(kāi)始時(shí)間的差;在所述第一判斷結(jié)果為所述運(yùn)行時(shí)間符合所述預(yù)定要求時(shí)停止對(duì)所述程序進(jìn)行測(cè)試。
[0008]本發(fā)明的另一個(gè)目的在于提供一種程序測(cè)試裝置,其能避免進(jìn)行不必要的測(cè)試,使得針對(duì)程序的測(cè)試更加有針對(duì)性,提高程序的測(cè)試效率。
[0009]為解決上述問(wèn)題,本發(fā)明提供了一種程序測(cè)試裝置,所述裝置包括:測(cè)試模塊,用于從程序中選擇可視控件并根據(jù)所述可視控件獲取方法屬性,以及用于根據(jù)所述方法屬性對(duì)所述程序進(jìn)行測(cè)試并獲取所述程序的測(cè)試反應(yīng);時(shí)間記錄模塊,用于記錄所述程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間;第一判斷模塊,用于計(jì)算所述程序的運(yùn)行時(shí)間,以及用于判斷所述運(yùn)行時(shí)間是否符合預(yù)定要求并生成第一判斷結(jié)果,所述運(yùn)行時(shí)間等于所述測(cè)試結(jié)束時(shí)間與所述測(cè)試開(kāi)始時(shí)間的差;所述測(cè)試模塊還用于在所述第一判斷結(jié)果為所述運(yùn)行時(shí)間符合所述預(yù)定要求時(shí)停止對(duì)所述程序進(jìn)行測(cè)試。
[0010]相對(duì)現(xiàn)有技術(shù),本發(fā)明可以使得針對(duì)程序的測(cè)試更有針對(duì)性以及更有效率,原因是在對(duì)程序進(jìn)行測(cè)試的過(guò)程中從程序中選擇可視控件,避免了對(duì)一些非可視的控件進(jìn)行測(cè)試,因此可以使得該測(cè)試有效果并且有效率,此外,由于利用該可視屬性來(lái)對(duì)控件進(jìn)行篩選,從而得出用戶看得見(jiàn)的控件,因此可以提高對(duì)程序進(jìn)行測(cè)試的有效性和有針對(duì)性。
[0011]為讓本發(fā)明的上述內(nèi)容能更明顯易懂,下文特舉優(yōu)選實(shí)施例,并配合所附圖式,作詳細(xì)說(shuō)明如下:
【【專利附圖】
【附圖說(shuō)明】】
[0012]圖1為本發(fā)明的程序測(cè)試裝置的框圖;
[0013]圖2為圖1中測(cè)試模塊的框圖;
[0014]圖3和圖4為本發(fā)明的程序測(cè)試方法的流程圖。
【【具體實(shí)施方式】】
[0015]以下各實(shí)施例的說(shuō)明是參考附加的圖式,用以例示本發(fā)明可用以實(shí)施的特定實(shí)施例。
[0016]為了防止在對(duì)程序進(jìn)行測(cè)試的過(guò)程中對(duì)一些不必要的點(diǎn)擊(操作)也進(jìn)行測(cè)試,使得針對(duì)程序的測(cè)試更加有針對(duì)性,提高程序的測(cè)試效率,本發(fā)明的技術(shù)方案如下:
[0017]參考圖1和圖2,圖1為本發(fā)明的程序測(cè)試裝置10的框圖,圖2為圖1中測(cè)試模塊104的框圖。
[0018]本發(fā)明的程序測(cè)試裝置包括測(cè)試模塊104、時(shí)間記錄模塊103和第一判斷模塊106。測(cè)試模塊104電性連接時(shí)間記錄模塊103,時(shí)間記錄模塊103還與第一判斷模塊106電性連接。測(cè)試模塊104用于從程序中選擇可視控件并根據(jù)可視控件獲取方法屬性,以及用于根據(jù)方法屬性對(duì)程序進(jìn)行測(cè)試并獲取程序的測(cè)試反應(yīng)。從程序中選擇可視控件是為了使得針對(duì)程序的測(cè)試更有針對(duì)性以及更有效率,原因是用戶只會(huì)對(duì)那些能看得到的控件進(jìn)行點(diǎn)擊或操作,而對(duì)于一些看不見(jiàn)的控件,用戶不可能會(huì)點(diǎn)擊或操作,這就使得在對(duì)程序進(jìn)行測(cè)試的過(guò)程中,對(duì)一些非可視的控件進(jìn)行測(cè)試是沒(méi)有必要的,而首先選擇可視控件,然后再對(duì)可視控件進(jìn)行測(cè)試,這會(huì)使得該測(cè)試有效果并且有效率。時(shí)間記錄模塊103用于記錄程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間。對(duì)程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間有利于對(duì)針對(duì)程序的測(cè)試是否符合預(yù)定要求作出更好的判斷。第一判斷模塊106用于計(jì)算程序的運(yùn)行時(shí)間,以及用于判斷運(yùn)行時(shí)間是否符合預(yù)定要求并生成第一判斷結(jié)果,運(yùn)行時(shí)間等于測(cè)試結(jié)束時(shí)間與測(cè)試開(kāi)始時(shí)間的差。測(cè)試模塊104還用于在第一判斷結(jié)果為運(yùn)行時(shí)間符合預(yù)定要求時(shí)停止對(duì)程序進(jìn)行測(cè)試。
[0019]本發(fā)明的程序測(cè)試裝置10還包括啟動(dòng)控制模塊101和第二判斷模塊102。啟動(dòng)控制模塊101與第二判斷模塊102電性連接,第二判斷模塊102還與測(cè)試模塊104電性連接。啟動(dòng)控制模塊101用于控制程序啟動(dòng),具體地,在需要對(duì)程序進(jìn)行測(cè)試時(shí),控制要測(cè)試的程序啟動(dòng)。第二判斷模塊102用于判斷程序是否與當(dāng)前的界面對(duì)應(yīng)并生成第二判斷結(jié)果。與當(dāng)前的界面對(duì)應(yīng)指的是程序是否在當(dāng)前的界面上面對(duì)用戶展示,并且處于準(zhǔn)備接收用戶操作的狀態(tài)。判斷要進(jìn)行測(cè)試的程序是否與當(dāng)前的界面對(duì)應(yīng)是為了實(shí)現(xiàn)只在程序正處于被使用的狀態(tài)下進(jìn)行測(cè)試,而如果程序不再被使用的狀態(tài)下,例如,處于后臺(tái)處理的狀態(tài)下,用戶是不會(huì)對(duì)其進(jìn)行點(diǎn)擊等操作的,因此,為了不做不必要的測(cè)試,需要確保要測(cè)試的程序與當(dāng)前的界面對(duì)應(yīng)。測(cè)試模塊104還用于在第二判斷結(jié)果為程序與當(dāng)前的界面對(duì)應(yīng)時(shí)對(duì)程序進(jìn)行測(cè)試。這樣,便可以確保針對(duì)程序所進(jìn)行的測(cè)試時(shí)有效的,此外,還能提高測(cè)試的效率。時(shí)間記錄模塊103還用于記錄程序的測(cè)試開(kāi)始時(shí)間。測(cè)試模塊104還用于在第一判斷結(jié)果為運(yùn)行時(shí)間不符合預(yù)定要求時(shí)再次對(duì)程序進(jìn)行測(cè)試。
[0020]本發(fā)明的程序測(cè)試裝置10還包括監(jiān)控模塊105。監(jiān)控模塊105與測(cè)試模塊104、第一判斷模塊106和啟動(dòng)控制模塊101電性連接。監(jiān)控模塊105用于判斷程序的測(cè)試反應(yīng)是否正常并生成監(jiān)控結(jié)果,測(cè)試反應(yīng)不正常的情況可以是崩潰(Crash)。對(duì)程序的測(cè)試反應(yīng)進(jìn)行監(jiān)控是為了實(shí)時(shí)地掌握測(cè)試結(jié)果。啟動(dòng)控制模塊101還用于在監(jiān)控結(jié)果為程序的測(cè)試反應(yīng)不正常時(shí)控制程序重新啟動(dòng)。這是本發(fā)明中對(duì)程序進(jìn)行測(cè)試的一個(gè)保障性技術(shù)方案。時(shí)間記錄模塊103還用于在監(jiān)控結(jié)果為程序的測(cè)試反應(yīng)正常時(shí)記錄測(cè)試結(jié)束時(shí)間。
[0021]測(cè)試模塊104包括獲取模塊1041、篩選模塊1042、選擇模塊1043和觸發(fā)模塊1044。獲取模塊1041與篩選模塊1042電性連接,篩選模塊1042與選擇模塊1043電性連接,選擇模塊1043還與觸發(fā)模塊1044電性連接。獲取模塊1041用于獲取程序的至少一個(gè)控件。這是為了窮盡在對(duì)程序進(jìn)行測(cè)試的過(guò)程中所有可能出現(xiàn)的情況,全面地對(duì)程序進(jìn)行測(cè)試。具體地,獲取模塊1041用于根據(jù)Java反射機(jī)制原理獲取程序的控件。Java反射機(jī)制為動(dòng)態(tài)地獲取信息以及動(dòng)態(tài)地調(diào)用對(duì)象的方法,該Java反射機(jī)制的功能為:在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象,判斷任意一個(gè)類所具有的成員變量和方法,調(diào)用任意一個(gè)對(duì)象的任意一個(gè)方法,判斷任意一個(gè)對(duì)象所屬的類,生成動(dòng)態(tài)代理。篩選模塊1042用于根據(jù)至少一個(gè)控件的可視屬性從至少一個(gè)控件中篩選出可視控件??丶械目梢晫傩钥梢允顷P(guān)于該控件是否可視的一種注釋,利用該可視屬性來(lái)對(duì)控件進(jìn)行篩選,從而得出用戶看得見(jiàn)的控件,進(jìn)而提高對(duì)程序進(jìn)行測(cè)試的有效性和有針對(duì)性。選擇模塊1043用于選擇可視控件中的一者,選擇模塊1043可以是一個(gè)隨機(jī)選擇模塊,該隨機(jī)選擇模塊用于隨機(jī)地選擇可視控件中的一者。此外,選擇模塊1043還用于從可視控件的父結(jié)點(diǎn)開(kāi)始至根結(jié)點(diǎn)控件為止遍歷可視控件的父類結(jié)點(diǎn)控件。遍歷可視控件的父類結(jié)點(diǎn)控件是為了找出關(guān)于父類結(jié)點(diǎn)控件的屬性,如方法屬性,該方法屬性可以是點(diǎn)擊、長(zhǎng)點(diǎn)擊、雙擊、拖動(dòng)、滾動(dòng)、輸入等中的任意一者或一者一上的組合。觸發(fā)模塊1044用于選擇一個(gè)方法屬性并利用方法屬性觸發(fā)程序,實(shí)際上,這是在模擬用戶點(diǎn)擊操作,為的是對(duì)程序進(jìn)行測(cè)試。觸發(fā)模塊1044還用于獲取程序的測(cè)試反應(yīng)。
[0022]本發(fā)明的程序測(cè)試裝置10還包括日志模塊107。日志模塊107與第一判斷模塊106和監(jiān)控模塊105電信連接。日志模塊107用于記錄程序的測(cè)試日志。
[0023]參考圖3和圖4,圖3和圖4為本發(fā)明的程序測(cè)試方法的流程圖。本發(fā)明的程序測(cè)試方法由程序測(cè)試裝置執(zhí)行。
[0024]在步驟301,啟動(dòng)控制模塊101控制程序啟動(dòng),具體地,在需要對(duì)程序進(jìn)行測(cè)試時(shí),控制要測(cè)試的程序啟動(dòng)。
[0025]在步驟302,第二判斷模塊102判斷程序是否與當(dāng)前的界面對(duì)應(yīng)并生成第二判斷結(jié)果,若是,則進(jìn)入步驟303,否則,返回到步驟301。與當(dāng)前的界面對(duì)應(yīng)指的是程序是否在當(dāng)前的界面上面對(duì)用戶展示,并且處于準(zhǔn)備接收用戶操作的狀態(tài)。判斷要進(jìn)行測(cè)試的程序是否與當(dāng)前的界面對(duì)應(yīng)是為了實(shí)現(xiàn)只在程序正處于被使用的狀態(tài)下進(jìn)行測(cè)試,而如果程序不再被使用的狀態(tài)下,例如,處于后臺(tái)處理的狀態(tài)下,用戶是不會(huì)對(duì)其進(jìn)行點(diǎn)擊等操作的,因此,為了不做不必要的測(cè)試,需要確保要測(cè)試的程序與當(dāng)前的界面對(duì)應(yīng)。[0026]在步驟303,時(shí)間記錄模塊103記錄程序的測(cè)試開(kāi)始時(shí)間。對(duì)程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間有利于對(duì)針對(duì)程序的測(cè)試是否符合預(yù)定要求作出更好的判斷。
[0027]在步驟304至步驟309,測(cè)試模塊104從程序中選擇可視控件并根據(jù)可視控件獲取方法屬性,以及根據(jù)方法屬性對(duì)程序進(jìn)行測(cè)試并獲取程序的測(cè)試反應(yīng)。從程序中選擇可視控件是為了使得針對(duì)程序的測(cè)試更有針對(duì)性以及更有效率,原因是用戶只會(huì)對(duì)那些能看得到的控件進(jìn)行點(diǎn)擊或操作,而對(duì)于一些看不見(jiàn)的控件,用戶不可能會(huì)點(diǎn)擊或操作,這就使得在對(duì)程序進(jìn)行測(cè)試的過(guò)程中,對(duì)一些非可視的控件進(jìn)行測(cè)試是沒(méi)有必要的,而首先選擇可視控件,然后再對(duì)可視控件進(jìn)行測(cè)試,這會(huì)使得該測(cè)試有效果并且有效率。
[0028]具體地,在步驟304,獲取模塊1041獲取程序的至少一個(gè)控件。這是為了窮盡在對(duì)程序進(jìn)行測(cè)試的過(guò)程中所有可能出現(xiàn)的情況,全面地對(duì)程序進(jìn)行測(cè)試。具體地,獲取模塊1041根據(jù)Java反射機(jī)制原理獲取程序的控件。Java反射機(jī)制為動(dòng)態(tài)地獲取信息以及動(dòng)態(tài)地調(diào)用對(duì)象的方法,該Java反射機(jī)制的功能為:在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象,判斷任意一個(gè)類所具有的成員變量和方法,調(diào)用任意一個(gè)對(duì)象的任意一個(gè)方法,判斷任意一個(gè)對(duì)象所屬的類,生成動(dòng)態(tài)代理。
[0029]在步驟305,篩選模塊1042根據(jù)至少一個(gè)控件的可視屬性從至少一個(gè)控件中篩選出可視控件。控件中的可視屬性可以是關(guān)于該控件是否可視的一種注釋,利用該可視屬性來(lái)對(duì)控件進(jìn)行篩選,從而得出用戶看得見(jiàn)的控件,進(jìn)而提高對(duì)程序進(jìn)行測(cè)試的有效性和有針對(duì)性。
[0030]在步驟306,選擇模塊1043選擇可視控件中的一者。具體地,選擇模塊1043可以是一個(gè)隨機(jī)選擇模塊,該隨機(jī)選擇模塊隨機(jī)地選擇可視控件中的一者。
[0031]在步驟307,選擇模塊1043從可視控件的父結(jié)點(diǎn)開(kāi)始至根結(jié)點(diǎn)控件為止遍歷可視控件的父類結(jié)點(diǎn)控件。遍歷可視控件的父類結(jié)點(diǎn)控件是為了找出關(guān)于父類結(jié)點(diǎn)控件的屬性,如方法屬性,該方法屬性可以是點(diǎn)擊、長(zhǎng)點(diǎn)擊、雙擊、拖動(dòng)、滾動(dòng)、輸入等中的任意一者或一者一上的組合。
[0032]在步驟308,觸發(fā)模塊1044選擇一個(gè)方法屬性并利用方法屬性觸發(fā)程序,實(shí)際上,這是在模擬用戶點(diǎn)擊操作,為的是對(duì)程序進(jìn)行測(cè)試。
[0033]在步驟309,觸發(fā)模塊1044獲取程序的測(cè)試反應(yīng)。
[0034]在步驟310,監(jiān)控模塊105判斷程序的測(cè)試反應(yīng)是否正常并生成監(jiān)控結(jié)果,若是,則進(jìn)入步驟312,否則,進(jìn)入步驟311。測(cè)試反應(yīng)不正常的情況可以是崩潰(Crash)。對(duì)程序的測(cè)試反應(yīng)進(jìn)行監(jiān)控是為了實(shí)時(shí)地掌握測(cè)試結(jié)果。
[0035]在步驟311,啟動(dòng)控制模塊101在監(jiān)控結(jié)果為程序的測(cè)試反應(yīng)不正常時(shí)控制程序重新啟動(dòng)。這是本發(fā)明中對(duì)程序進(jìn)行測(cè)試的一個(gè)保障性技術(shù)方案。
[0036]在步驟312,時(shí)間記錄模塊103在監(jiān)控結(jié)果為程序的測(cè)試反應(yīng)正常時(shí)記錄測(cè)試結(jié)束時(shí)間。
[0037]在步驟313,第一判斷模塊106計(jì)算程序的運(yùn)行時(shí)間。
[0038]在步驟314,第一判斷模塊106判斷運(yùn)行時(shí)間是否符合預(yù)定要求并生成第一判斷結(jié)果,運(yùn)行時(shí)間等于測(cè)試結(jié)束時(shí)間與測(cè)試開(kāi)始時(shí)間的差,若是,則進(jìn)入步驟315,否則,返回到步驟304,即,測(cè)試模塊104在第一判斷結(jié)果為運(yùn)行時(shí)間不符合預(yù)定要求時(shí)再次對(duì)程序進(jìn)行測(cè)試。[0039]在步驟315,測(cè)試模塊104在第一判斷結(jié)果為運(yùn)行時(shí)間符合預(yù)定要求時(shí)停止對(duì)程序進(jìn)行測(cè)試。
[0040]在步驟316,日志模塊107記錄程序的測(cè)試日志,實(shí)際上,日志模塊107記錄程序的測(cè)試日志貫穿于程序測(cè)試的整個(gè)過(guò)程。
[0041]綜上所述,雖然本發(fā)明已以優(yōu)選實(shí)施例揭露如上,但上述優(yōu)選實(shí)施例并非用以限制本發(fā)明,本領(lǐng)域的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),均可作各種更動(dòng)與潤(rùn)飾,因此本發(fā)明的保護(hù)范圍以權(quán)利要求界定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種程序測(cè)試方法,其特征在于,所述方法包括以下步驟: 從程序中選擇可視控件并根據(jù)所述可視控件獲取方法屬性,以及根據(jù)所述方法屬性對(duì)所述程序進(jìn)行測(cè)試并獲取所述程序的測(cè)試反應(yīng); 記錄所述程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間; 計(jì)算所述程序的運(yùn)行時(shí)間,以及判斷所述運(yùn)行時(shí)間是否符合預(yù)定要求并生成第一判斷結(jié)果,所述運(yùn)行時(shí)間等于所述測(cè)試結(jié)束時(shí)間與所述測(cè)試開(kāi)始時(shí)間的差; 在所述第一判斷結(jié)果為所述運(yùn)行時(shí)間符合所述預(yù)定要求時(shí)停止對(duì)所述程序進(jìn)行測(cè)試。
2.根據(jù)權(quán)利要求1所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 控制所述程序啟動(dòng); 判斷所述程序是否與當(dāng)前的界面對(duì)應(yīng)并生成第二判斷結(jié)果; 在所述第二判斷結(jié)果為所述程序與當(dāng)前的界面對(duì)應(yīng)時(shí)對(duì)所述程序進(jìn)行測(cè)試; 記錄所述程序的測(cè)試開(kāi)始時(shí)間。
3.根據(jù)權(quán)利要求1所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 判斷所述程序的測(cè)試 反應(yīng)是否正常并生成監(jiān)控結(jié)果; 在所述監(jiān)控結(jié)果為所述程序的測(cè)試反應(yīng)不正常時(shí)控制所述程序重新啟動(dòng); 在所述監(jiān)控結(jié)果為所述程序的測(cè)試反應(yīng)正常時(shí)記錄測(cè)試結(jié)束時(shí)間。
4.根據(jù)權(quán)利要求1所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 獲取所述程序的至少一個(gè)控件; 根據(jù)所述至少一個(gè)控件的可視屬性從所述至少一個(gè)控件中篩選出可視控件; 選擇所述可視控件中的一者; 選擇一個(gè)方法屬性并利用所述方法屬性觸發(fā)所述程序,以及獲取所述程序的所述測(cè)試反應(yīng)。
5.根據(jù)權(quán)利要求4所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 根據(jù)Java反射機(jī)制原理獲取所述程序的控件。
6.根據(jù)權(quán)利要求4所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 隨機(jī)地選擇所述可視控件中的一者。
7.根據(jù)權(quán)利要求6所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 從所述可視控件的父結(jié)點(diǎn)開(kāi)始至根結(jié)點(diǎn)控件為止遍歷所述可視控件的父類結(jié)點(diǎn)控件。
8.根據(jù)權(quán)利要求7所述的程序測(cè)試方法,其特征在于,所述方法屬性為關(guān)于所述父類結(jié)點(diǎn)控件的屬性,所述方法屬性可以是點(diǎn)擊、長(zhǎng)點(diǎn)擊、雙擊、拖動(dòng)、滾動(dòng)、輸入等中的任意一者或一者一上的組合。
9.根據(jù)權(quán)利要求4所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 在所述第一判斷結(jié)果為所述運(yùn)行時(shí)間不符合所述預(yù)定要求時(shí)再次對(duì)所述程序進(jìn)行測(cè)試。
10.根據(jù)權(quán)利要求1所述的程序測(cè)試方法,其特征在于,所述方法還包括以下步驟: 記錄所述程序的測(cè)試日志。
11.一種程序測(cè)試裝置,其特征在于,所述裝置包括: 測(cè)試模塊,用于從程序中選擇可視控件并根據(jù)所述可視控件獲取方法屬性,以及用于根據(jù)所述方法屬性對(duì)所述程序進(jìn)行測(cè)試并獲取所述程序的測(cè)試反應(yīng);時(shí)間記錄模塊,用于記錄所述程序的測(cè)試開(kāi)始時(shí)間和測(cè)試結(jié)束時(shí)間; 第一判斷模塊,用于計(jì)算所述程序的運(yùn)行時(shí)間,以及用于判斷所述運(yùn)行時(shí)間是否符合預(yù)定要求并生成第一判斷結(jié)果,所述運(yùn)行時(shí)間等于所述測(cè)試結(jié)束時(shí)間與所述測(cè)試開(kāi)始時(shí)間的差; 所述測(cè)試模塊還用于在所述第一判斷結(jié)果為所述運(yùn)行時(shí)間符合所述預(yù)定要求時(shí)停止對(duì)所述程序進(jìn)行測(cè)試。
12.根據(jù)權(quán)利要求11所述的程序測(cè)試裝置,其特征在于,所述裝置還包括: 啟動(dòng)控制模塊,用于控制所述程序啟動(dòng); 第二判斷模塊,用于判斷所述程序是否與當(dāng)前的界面對(duì)應(yīng)并生成第二判斷結(jié)果; 所述測(cè)試模塊還用于在所述第二判斷結(jié)果為所述程序與當(dāng)前的界面對(duì)應(yīng)時(shí)對(duì)所述程序進(jìn)行測(cè)試; 所述時(shí)間記錄模塊還用于記錄所述程序的測(cè)試開(kāi)始時(shí)間。
13.根據(jù)權(quán)利要求11所述的程序測(cè)試裝置,其特征在于,所述裝置還包括: 監(jiān)控模塊,用于判斷所述程序的測(cè)試反應(yīng)是否正常并生成監(jiān)控結(jié)果; 所述啟動(dòng)控制模塊還用于在所述監(jiān)控結(jié)果為所述程序的測(cè)試反應(yīng)不正常時(shí)控制所述程序重新啟動(dòng); 所述時(shí)間記錄模塊還用于在所述監(jiān)控結(jié)果為所述程序的測(cè)試反應(yīng)正常時(shí)記錄測(cè)試結(jié)束時(shí)間。
14.根據(jù)權(quán)利要求11所述的程序測(cè)試裝置,其特征在于,所述測(cè)試模塊包括: 獲取模塊,用于獲取所述程序的至少一個(gè)控件; 篩選模塊,用于根據(jù)所述至少一個(gè)控件的可視屬性從所述至少一個(gè)控件中篩選出可視控件; 選擇模塊,用于選擇所述可視控件中的一者; 觸發(fā)模塊,用于選擇一個(gè)方法屬性并利用所述方法屬性觸發(fā)所述程序,以及用于獲取所述程序的所述測(cè)試反應(yīng)。
15.根據(jù)權(quán)利要求14所述的程序測(cè)試裝置,其特征在于,所述獲取模塊還用于根據(jù)Java反射機(jī)制原理獲取所述程序的控件。
16.根據(jù)權(quán)利要求14所述的程序測(cè)試裝置,其特征在于,所述選擇模塊還用于隨機(jī)地選擇所述可視控件中的一者。
17.根據(jù)權(quán)利要求16所述的程序測(cè)試裝置,其特征在于,所述選擇模塊還用于從所述可視控件的父結(jié)點(diǎn)開(kāi)始至根結(jié)點(diǎn)控件為止遍歷所述可視控件的父類結(jié)點(diǎn)控件。
18.根據(jù)權(quán)利要求17所述的程序測(cè)試裝置,其特征在于,所述方法屬性為關(guān)于所述父類結(jié)點(diǎn)控件的屬性,所述方法屬性可以是點(diǎn)擊、長(zhǎng)點(diǎn)擊、雙擊、拖動(dòng)、滾動(dòng)、輸入等中的任意一者或一者一上的組合。
19.根據(jù)權(quán)利要求14所述的程序測(cè)試裝置,其特征在于,所述測(cè)試模塊還用于在所述第一判斷結(jié)果為所述運(yùn)行時(shí)間不符合所述預(yù)定要求時(shí)再次對(duì)所述程序進(jìn)行測(cè)試。
20.根據(jù)權(quán)利要求11所述的程序測(cè)試裝置,其特征在于,所述裝置還包括: 日志模塊,用于記錄所述程序的測(cè)試日志。
【文檔編號(hào)】G06F11/36GK103713988SQ201210375517
【公開(kāi)日】2014年4月9日 申請(qǐng)日期:2012年9月29日 優(yōu)先權(quán)日:2012年9月29日
【發(fā)明者】丁如敏 申請(qǐng)人:騰訊科技(深圳)有限公司