两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

Andriod應(yīng)用程序的測試方法和裝置制造方法

文檔序號:6500519閱讀:118來源:國知局
Andriod應(yīng)用程序的測試方法和裝置制造方法
【專利摘要】提供了一種Andriod應(yīng)用程序的測試方法和裝置。所述測試方法包括:(a)收集測試日志;(b)啟動用于模擬對被測應(yīng)用程序進(jìn)行操作的測試工具;(c)如果確定被測應(yīng)用程序崩潰,則查找測試日志中與被測應(yīng)用程序相關(guān)的錯誤日志信息,截取并保存錯誤日志信息;(d)在錯誤日志分析線程截取并保存錯誤日志信息之后,關(guān)閉被測應(yīng)用程序,并返回步驟(a);(e)如果確定被測應(yīng)用程序沒有崩潰,則在到達(dá)預(yù)定的測試時間之后,分析保存的錯誤日志信息,并生成測試結(jié)果報告。
【專利說明】Andr1d應(yīng)用程序的測試方法和裝置

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及Andr1d操作系統(tǒng)平臺的應(yīng)用程序開發(fā)的【技術(shù)領(lǐng)域】。更具體地講,涉及一種能夠在Andr1d操作系統(tǒng)平臺上自動運行應(yīng)用程序測試并記錄和分析測試結(jié)果的方法和裝置。

【背景技術(shù)】
[0002]谷歌(Google)公司的Andr1d是一種基于Linux的自由及開放源代碼的操作系統(tǒng),主要使用于便攜設(shè)備,如智能手機(jī)和平板電腦。根據(jù)2012年11月數(shù)據(jù)顯示,Andr1d占據(jù)全球智能手機(jī)操作系統(tǒng)市場76%的份額。作為智能終端的重要操作系統(tǒng)平臺之一,Andr1d操作系統(tǒng)平臺上的軟件應(yīng)用程序開發(fā)是當(dāng)前熱點之一。
[0003]軟件產(chǎn)品的測試是使用人工或自動手段來運行或測試某個軟件產(chǎn)品,其目的是為了檢驗該軟件產(chǎn)品是否滿足規(guī)定的需求并得到相關(guān)的錯誤日志信息。在測試Andr1d應(yīng)用程序(app)的穩(wěn)定性時,由于有些應(yīng)用程序需要在終端平臺上長期運行,故必須保證應(yīng)用程序在長時間內(nèi)運行無錯誤或者崩潰,因此對于這類型的應(yīng)用程序穩(wěn)定性測試時間長達(dá)8至10小時。
[0004]目前,Andr1d提供的測試工具monkey被廣泛用于Andr1d應(yīng)用程序的測試。通過在monkey中設(shè)置運行時間參數(shù),可以在長時間內(nèi)模擬人在屏幕上進(jìn)行隨機(jī)操作。如果出現(xiàn)錯誤或者崩潰,通過記錄的日志信息可以找到導(dǎo)致錯誤或者崩潰的原因。
[0005]然而,對于這種方法,當(dāng)monkey進(jìn)行隨機(jī)操作之時,一旦出現(xiàn)錯誤或者崩潰,monkey操作就會被中斷,從而導(dǎo)致整個穩(wěn)定性測試終止。此時,若設(shè)置-1gnore-crashes參數(shù),則monkey會繼續(xù)向系統(tǒng)發(fā)送事件。但這時由于沒有對被測程序做一些初始化操作,可能會出現(xiàn)一些錯誤,例如,重復(fù)的內(nèi)存泄露錯誤。
[0006]由于穩(wěn)定性測試的時間周期長,為了提高測試工作的效率,需要實現(xiàn)穩(wěn)定性測試,在不需要人參與的情況下自動進(jìn)行,并且完成錯誤日志信息的收集。
[0007]因此必須開發(fā)新的穩(wěn)定性工作,提升測試效率,主動釋放內(nèi)存,并且使得測試過程自動化和測試時間可控制。


【發(fā)明內(nèi)容】

[0008]根據(jù)本發(fā)明的一方面,提供了一種Andr1d應(yīng)用程序的測試方法,其特征在于包括以下步驟:(a)收集測試日志;(b)啟動用于模擬對被測應(yīng)用程序進(jìn)行操作的測試工具;(C)如果確定被測應(yīng)用程序崩潰,則查找測試日志中與被測應(yīng)用程序相關(guān)的錯誤日志信息,截取并保存錯誤日志信息;(d)在錯誤日志分析線程截取并保存錯誤日志信息之后,關(guān)閉被測應(yīng)用程序,并返回步驟(a) ;(e)如果確定被測應(yīng)用程序沒有崩潰,則在到達(dá)預(yù)定的測試時間之后,分析保存的錯誤日志信息,并生成測試結(jié)果報告。
[0009]根據(jù)本發(fā)明的一方面,在測試方法的步驟(a),將收集的測試日志記錄到預(yù)定文件中。
[0010]根據(jù)本發(fā)明的一方面,在測試方法的步驟(C),使用java中的string類的startwith命令來查找測試日志中的錯誤日志信息。
[0011]根據(jù)本發(fā)明的一方面,在測試方法的步驟(C),查找測試日志中錯誤級別為Eiror和Warning的錯誤日志信息。
[0012]根據(jù)本發(fā)明的一方面,在測試方法的步驟(d),獲取終端設(shè)備中的當(dāng)前進(jìn)程列表,通過檢索當(dāng)前進(jìn)程列表以獲得與被測應(yīng)用程序?qū)?yīng)的程序ID(PID),并殺死與PID對應(yīng)的被測應(yīng)用程序的進(jìn)程。
[0013]根據(jù)本發(fā)明的一方面,在測試方法的步驟(e),測試進(jìn)程過濾重復(fù)的錯誤日志信息來生成測試結(jié)果報告。
[0014]根據(jù)本發(fā)明的一方面,測試方法還包括:將測試結(jié)果報告發(fā)送到預(yù)定郵箱。
[0015]根據(jù)本發(fā)明的另一方面,還提供了一種Andr1d應(yīng)用程序的測試裝置,其特征在于包括:日志收集模塊,受控于測試控制模塊,在測試開始時收集在測試過程中產(chǎn)生的日志;錯誤日志分析模塊,受控于測試控制模塊,在被測應(yīng)用程序崩潰時分析線程查找測試日志中與被測應(yīng)用程序相關(guān)的錯誤日志信息,截取并保存錯誤日志信息;測試控制模塊,在測試開始時啟動用于模擬對被測應(yīng)用程序進(jìn)行操作的測試工具,在錯誤日志分析模塊保存錯誤日志信息之后關(guān)閉被測應(yīng)用程序,如果沒有到達(dá)預(yù)定的測試時間,則控制日志收集模塊、錯誤日志分析模塊、測試工具和被測應(yīng)用程序繼續(xù)進(jìn)行測試,在到達(dá)預(yù)定的測試時間之后停止測試;測試結(jié)果生成模塊,根據(jù)測試控制模塊的控制在測試完成之后根據(jù)保存的錯誤日志信息生成測試結(jié)果報告。
[0016]根據(jù)本發(fā)明的另一方面,日志收集模塊將收集的測試日志記錄到預(yù)定文件中。
[0017]根據(jù)本發(fā)明的另一方面,錯誤日志分析模塊使用java中的string類的startwith命令來查找測試日志中的錯誤日志信息。
[0018]根據(jù)本發(fā)明的另一方面,錯誤日志分析模塊查找測試日志中錯誤級別為Error和Warning的錯誤日志信息。
[0019]根據(jù)本發(fā)明的另一方面,測試控制模塊獲取終端設(shè)備中的當(dāng)前進(jìn)程列表,通過檢索當(dāng)前進(jìn)程列表以獲得與被測應(yīng)用程序?qū)?yīng)的程序ID(PID),并殺死與PID對應(yīng)的被測應(yīng)用程序的進(jìn)程。
[0020]根據(jù)本發(fā)明的另一方面,測試結(jié)果生成模塊過濾重復(fù)的錯誤日志信息來生成測試結(jié)果報告。
[0021]根據(jù)本發(fā)明的另一方面,測試結(jié)果生成模塊將測試結(jié)果報告發(fā)送到預(yù)定郵箱。

【專利附圖】

【附圖說明】
[0022]通過下面結(jié)合附圖進(jìn)行的描述,本發(fā)明的上述和其他目的和特點將會變得更加清楚,其中:
[0023]圖1是示出根據(jù)本發(fā)明實施例的Andr1d應(yīng)用程序的測試方法的流程圖;
[0024]圖2是示出根據(jù)本發(fā)明實施例的Andr1d應(yīng)用程序的測試裝置的框圖。

【具體實施方式】
[0025]下面提供參照附圖進(jìn)行的描述以有助于全面理解如權(quán)利要求及其等同物所限定的本發(fā)明的示例性實施例。所述描述包括各種詳細(xì)的細(xì)節(jié)以有助于理解,而這些描述將被認(rèn)為僅為示例性的。因此,本領(lǐng)域的普通技術(shù)人員將意識到在不脫離本發(fā)明的范圍和精神的情況下可做出在此描述的各種改變和變型。另外,為了清晰和簡潔,可省略對公知功能和構(gòu)造的描述。
[0026]圖1是示出根據(jù)本發(fā)明實施例的Andr1d應(yīng)用程序的測試方法的流程圖。
[0027]在設(shè)置好應(yīng)用程序的測試平臺之后,S卩,安裝被測應(yīng)用程序之后,開始啟動根據(jù)本發(fā)明實施例的測試進(jìn)程。這里,根據(jù)本發(fā)明實施例的測試進(jìn)程可以是java編寫的程序。
[0028]在根據(jù)本發(fā)明實施例的測試進(jìn)程被啟動之后,在步驟S101,收集測試日志。例如,根據(jù)本發(fā)明實施例的測試進(jìn)程可啟動一個日志收集線程以用于收集在測試過程中產(chǎn)生的日志。例如,日志收集線程可通過使用adb shell logcat >“XXX”的形式的命令來將收集的日志記錄到文件名為“XXX”的文件中。
[0029]接下來,在步驟S103,測試進(jìn)程啟動用于模擬對被測應(yīng)用程序的操作的工具,從而對被測應(yīng)用程序進(jìn)行測試操作。通常,可采用monkey工具來模擬對于被測應(yīng)用程序的操作。當(dāng)然,本領(lǐng)域的技術(shù)人員可采用任何已知的測試工具來模擬對于被測應(yīng)用程序的操作。下面將以monkey工具為示例進(jìn)行說明。當(dāng)測試進(jìn)程啟動monkey工具來模擬對于被測應(yīng)用程序的隨機(jī)操作時,例如可采用如下的命令來設(shè)置需要模擬的操作:adb-d shellmonkey-s5-p “YYYY”一throttle 1000—pct_touch43—pct_mot1nl8—pct_trackballl5—pct~nav5—pct-majomavlO—pct_appswitch2—pct-anyeventO—kill-process—after—error—monitor-native-crashes-v-v “測試次數(shù)”。其中,-s表示偽隨機(jī)數(shù)生成器的seed值,-ρ“ΥΥΥΥ”表示被測應(yīng)用程序的需要啟動的activity的包的名字,一throttle表示在事件之間插入固定延遲,一pct-touch表示調(diào)整觸摸事件的百分比,一pct-mot1n表示調(diào)整動作事件的百分比,一pct-trackball表示調(diào)整軌跡事件的百分比,一pct-nav表示調(diào)整基本導(dǎo)航事件的百分比,一pct-majornav表示調(diào)整主要導(dǎo)航事件的百分比,一pct-appswitch表示調(diào)整啟動Activity的百分比,一pct-anyeventO表示調(diào)整其它類型事件的百分It, —ki11-process-after-error表示當(dāng)monkey由于錯誤而停止時通知系統(tǒng)停止發(fā)生錯誤的進(jìn)程,一monitor-native-crashes表示監(jiān)視并報告Android系統(tǒng)中本地代碼的崩潰事件,“測試次數(shù)”為monkey工具在測試過程中發(fā)送的事件的個數(shù)。
[0030]接下來,在步驟S105,確定被測應(yīng)用程序是否崩潰。如果被測應(yīng)用程序沒有崩潰,則進(jìn)行到步驟S113以確定從測試開始是否達(dá)到預(yù)定的測試時間。如果確定被測應(yīng)用程序崩潰,則進(jìn)行到步驟S107。
[0031]在步驟S107,測試進(jìn)程查找測試日志中與被測應(yīng)用程序相關(guān)的錯誤日志信息,錯誤日志信息包括與被測應(yīng)用程序的崩潰有關(guān)的信息。這里,測試進(jìn)程可啟動錯誤日志分析線程,錯誤日志分析線程可使用java中的string類的startwith命令來查找日志中的錯誤日志信息。根據(jù)本發(fā)明實施例,錯誤日志分析線程查找日志中錯誤級別為Error和Warning的錯誤日志信息。
[0032]然后,在步驟S109,將獲取的錯誤日志信息截取下來并保存到默認(rèn)或指定位置的文件中。
[0033]然后,在步驟S111,根據(jù)本發(fā)明實施例的測試進(jìn)程關(guān)閉被測應(yīng)用程序。例如,可通過使用adb shell ps命令來獲取終端設(shè)備中的當(dāng)前進(jìn)程列表,通過檢索當(dāng)前進(jìn)程列表獲得與被測應(yīng)用程序?qū)?yīng)的程序ID (PID),并通過adb shell kill “被測應(yīng)用程序?qū)?yīng)的PID”命令來殺死被測應(yīng)用程序的進(jìn)程,從而實現(xiàn)關(guān)閉被測應(yīng)用程序的目的。
[0034]在執(zhí)行了上述操作之后,返回步驟S101,并繼續(xù)執(zhí)行步驟S103和S105。通過以上操作,可以實現(xiàn)monkey工具的中斷后的自動重啟,并且由于重新啟動和初始化被測應(yīng)用程序,可以防止內(nèi)存泄露。
[0035]接下來,在運行了預(yù)定的測試時間之后,如果在步驟S113確定已經(jīng)到達(dá)了預(yù)定的測試時間,則進(jìn)行到步驟S115,在最后一次monkey命令運行完之后,關(guān)閉測試進(jìn)程。這里,可由用戶預(yù)先設(shè)置好測試的運行時間。
[0036]然后,在步驟S117,測試進(jìn)程分析之前收集到的錯誤日志信息,并生成測試結(jié)果報告。這里,在生成的測試結(jié)果報告時可過濾重復(fù)的錯誤日志信息??蛇x地,測試進(jìn)程在生成測試結(jié)果報告之后,還可將測試結(jié)果報告通過電子郵件發(fā)送到指定的郵箱。這樣,即使在測試完成之后測試人員沒有在現(xiàn)場,也可以第一時間收到測試結(jié)果。
[0037]下面將參照圖2來描述根據(jù)本發(fā)明實施例的Android應(yīng)用程序的測試裝置200的示意圖。根據(jù)本發(fā)明實施例的Android應(yīng)用程序的測試裝置可駐留在待測試的終端設(shè)備上,也可駐留在與終端設(shè)置連接的主機(jī)上。
[0038]如圖2所示,根據(jù)本發(fā)明實施例的Android應(yīng)用程序的測試裝置200可包括:日志收集模塊210、錯誤日志分析模塊220、測試結(jié)果生成模塊230、計時模塊240和測試控制模塊250。應(yīng)注意,本發(fā)明實施例中的測試裝置200的各個模塊可以合并為更少的模塊,或者進(jìn)一步劃分為更多的模塊。
[0039]當(dāng)開始進(jìn)行測試時,測試控制模塊250控制日志收集模塊210收集在測試過程中產(chǎn)生的日志。日志收集模塊210可通過使用adb shell logcat > “XXX”的命令來將收集的日志記錄到文件名為“XXX”的文件中。
[0040]同時,測試控制模塊250啟動用于模擬對于被測應(yīng)用程序的操作的測試工具(例如,monkey測試工具),從而對被測應(yīng)用程序進(jìn)行預(yù)設(shè)的模擬操作。在模擬的操作過程中,測試控制模塊250確定被測應(yīng)用程序是否崩潰。如果確定被測應(yīng)用程序崩潰,則測試控制模塊250通知日志收集模塊210通知錯誤日志分析模塊220分析測試日志中的錯誤日志信息。錯誤日志分析模塊220截取錯誤日志信息并將錯誤日志信息保存到默認(rèn)或指定位置的文件中。然后,錯誤日志分析模塊220通知測試控制模塊250關(guān)閉被測應(yīng)用程序。
[0041]隨后,測試控制模塊250控制日志收集模塊210重新開啟日志收集,并重新啟動測試工具和被測應(yīng)用程序。
[0042]在從最初運行測試開始,如果計時模塊240的計時到達(dá)預(yù)定的測試時間,則通知測試控制模塊250終止測試過程。這時,測試控制模塊250在測試工具的最后一個命令完成之后停止測試,并且通知測試結(jié)果生成模塊230生成測試結(jié)果報告。測試結(jié)果生成模塊230可過濾測試結(jié)果報告中重復(fù)的錯誤日志信息,并可將生成的測試結(jié)果報告發(fā)送到指定的電子郵箱。
[0043]本發(fā)明的測試方法通過錯誤(崩潰)重啟機(jī)制解決了現(xiàn)有的Android應(yīng)用程序測試過程中遇到崩潰時的停止問題。另外,本發(fā)明通過主動釋放內(nèi)存,解決了測試過程中由于程序占用過多內(nèi)存導(dǎo)致影響被測程序正常運行的問題。進(jìn)一步地,本發(fā)明通過對日志信息的收集及過濾,解決了測試過程中的日志分析問題,并且本發(fā)明使穩(wěn)定性測試和分析收集錯誤信息的過程完全自動化。
[0044]根據(jù)本發(fā)明的方法可被記錄在包括執(zhí)行由計算機(jī)實現(xiàn)的各種操作的程序指令的計算機(jī)可讀介質(zhì)中。介質(zhì)也可以只包括程序指令或者包括與程序指令相結(jié)合的數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等。計算機(jī)可讀介質(zhì)的例子包括磁介質(zhì)(例如硬盤、軟盤和磁帶);光學(xué)介質(zhì)(例如CD-ROM和DVD);磁光介質(zhì)(例如,光盤);以及特別配制用于存儲并執(zhí)行程序指令的硬件裝置(例如,只讀存儲器(ROM)、隨機(jī)存取存儲器(RAM)、閃存等)。介質(zhì)也可以是包括傳輸規(guī)定程序指令、數(shù)據(jù)結(jié)構(gòu)等的信號的載波的傳輸介質(zhì)(例如光學(xué)線或金屬線、波導(dǎo)等)。程序指令的例子包括例如由編譯器產(chǎn)生的機(jī)器碼和包含可使用解釋器由計算機(jī)執(zhí)行的高級代碼的文件。
[0045]盡管已經(jīng)參照本發(fā)明的示例性實施例具體顯示和描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人員應(yīng)該理解,在不脫離由權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對其進(jìn)行形式和細(xì)節(jié)上的各種改變。
【權(quán)利要求】
1.一種Andr1d應(yīng)用程序的測試方法,其特征在于包括以下步驟: (a)收集測試日志; (b)啟動用于模擬對被測應(yīng)用程序進(jìn)行操作的測試工具; (c)如果確定被測應(yīng)用程序崩潰,則查找測試日志中與被測應(yīng)用程序相關(guān)的錯誤日志信息,截取并保存錯誤日志信息; (d)在錯誤日志分析線程截取并保存錯誤日志信息之后,關(guān)閉被測應(yīng)用程序,并返回步驟(a); (e)如果確定被測應(yīng)用程序沒有崩潰,則在到達(dá)預(yù)定的測試時間之后,分析保存的錯誤日志信息,并生成測試結(jié)果報告。
2.如權(quán)利要求1所述的測試方法,其中,在步驟(a),將收集的測試日志記錄到預(yù)定文件中。
3.如權(quán)利要求1所述的測試方法,其中,在步驟(c),使用java中的string類的startwith命令來查找測試日志中的錯誤日志信息。
4.如權(quán)利要求1所述的測試方法,其中,在步驟(C),查找測試日志中錯誤級別為Eiror和Warning的錯誤日志信息。
5.如權(quán)利要求1所述的測試方法,其中,在步驟(d),獲取終端設(shè)備中的當(dāng)前進(jìn)程列表,通過檢索當(dāng)前進(jìn)程列表以獲得與被測應(yīng)用程序?qū)?yīng)的程序ID(PID),并殺死與PID對應(yīng)的被測應(yīng)用程序的進(jìn)程。
6.如權(quán)利要求1所述的測試方法,其中,在步驟(e),測試進(jìn)程過濾重復(fù)的錯誤日志信息來生成測試結(jié)果報告。
7.如權(quán)利要求1所述的測試方法,還包括:將測試結(jié)果報告發(fā)送到預(yù)定郵箱。
8.一種Andr1d應(yīng)用程序的測試裝置,其特征在于包括: 日志收集模塊,受控于測試控制模塊,在測試開始時收集在測試過程中產(chǎn)生的日志; 錯誤日志分析模塊,受控于測試控制模塊,在被測應(yīng)用程序崩潰時分析線程查找測試日志中與被測應(yīng)用程序相關(guān)的錯誤日志信息,截取并保存錯誤日志信息; 測試控制模塊,在測試開始時啟動用于模擬對被測應(yīng)用程序進(jìn)行操作的測試工具,在錯誤日志分析模塊保存錯誤日志信息之后關(guān)閉被測應(yīng)用程序,如果沒有到達(dá)預(yù)定的測試時間,則控制日志收集模塊、錯誤日志分析模塊、測試工具和被測應(yīng)用程序繼續(xù)進(jìn)行測試,在到達(dá)預(yù)定的測試時間之后停止測試; 測試結(jié)果生成模塊,根據(jù)測試控制模塊的控制在測試完成之后根據(jù)保存的錯誤日志信息生成測試結(jié)果報告。
9.如權(quán)利要求8所述的測試裝置,其中,日志收集模塊將收集的測試日志記錄到預(yù)定文件中。
10.如權(quán)利要求8所述的測試裝置,其中,錯誤日志分析模塊使用java中的string類的startwith命令來查找測試日志中的錯誤日志信息。
11.如權(quán)利要求8所述的測試裝置,其中,錯誤日志分析模塊查找測試日志中錯誤級別為Error和Warning的錯誤日志信息。
12.如權(quán)利要求8所述的測試裝置,其中,測試控制模塊獲取終端設(shè)備中的當(dāng)前進(jìn)程列表,通過檢索當(dāng)前進(jìn)程列表以獲得與被測應(yīng)用程序?qū)?yīng)的程序ID(PID),并殺死與PID對應(yīng)的被測應(yīng)用程序的進(jìn)程。
13.如權(quán)利要求8所述的測試裝置,其中,測試結(jié)果生成模塊過濾重復(fù)的錯誤日志信息來生成測試結(jié)果報告。
14.如權(quán)利要求8 所述的測試方法,測試結(jié)果生成模塊將測試結(jié)果報告發(fā)送到預(yù)定郵箱。
【文檔編號】G06F11/36GK104050075SQ201310076644
【公開日】2014年9月17日 申請日期:2013年3月11日 優(yōu)先權(quán)日:2013年3月11日
【發(fā)明者】許仙明, 劉艷君 申請人:百度國際科技(深圳)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
汽车| 萨迦县| 南澳县| 章丘市| 荆州市| 抚顺县| 台山市| 天等县| 汾西县| 东乌| 大理市| 鹤壁市| 恭城| SHOW| 安国市| 左权县| 获嘉县| 东方市| 宜宾市| 天等县| 宜章县| 江川县| 三穗县| 仁怀市| 蓬溪县| 米林县| 金门县| 繁峙县| 清水县| 长宁县| 邵东县| 通榆县| 余姚市| 高尔夫| 赣州市| 大厂| 敖汉旗| 大丰市| 兴义市| 霞浦县| 八宿县|