用于跨各種移動(dòng)裝置協(xié)調(diào)移動(dòng)應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試結(jié)果的系統(tǒng)和方法
【專利說(shuō)明】用于跨各種移動(dòng)裝置協(xié)調(diào)移動(dòng)應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試結(jié)果的系統(tǒng)和方法
[0001]相關(guān)串請(qǐng)的交叉引用
[0002]本申請(qǐng)要求于2013年3月15日提交的美國(guó)專利申請(qǐng)序列號(hào)N0.13/837,851的權(quán)益,通過(guò)引用方式將其全部?jī)?nèi)容并入本文中。
技術(shù)領(lǐng)域
[0003]本發(fā)明涉及用于跨各種移動(dòng)裝置協(xié)調(diào)移動(dòng)應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試結(jié)果的系統(tǒng)和方法。
【背景技術(shù)】
[0004]移動(dòng)應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試(field user testing)涉及在移動(dòng)裝置的相應(yīng)工作環(huán)境中測(cè)試在該移動(dòng)裝置上運(yùn)行的應(yīng)用。例如,應(yīng)用開(kāi)發(fā)者可以選擇用戶組,以在具有不同硬件和一個(gè)或者多個(gè)版本的一個(gè)或者多個(gè)操作系統(tǒng)的各種移動(dòng)裝置上測(cè)試應(yīng)用。用戶可以向應(yīng)用開(kāi)發(fā)者報(bào)告用戶在測(cè)試期間遇到的錯(cuò)誤。
[0005]—些傳統(tǒng)系統(tǒng)可以使用半自動(dòng)現(xiàn)場(chǎng)用戶測(cè)試。例如,一些傳統(tǒng)現(xiàn)場(chǎng)用戶測(cè)試系統(tǒng)可以促進(jìn)在測(cè)試期間出現(xiàn)的錯(cuò)誤傳輸?shù)脚c移動(dòng)裝置通信的服務(wù)器。其它傳統(tǒng)系統(tǒng)可以經(jīng)由即時(shí)消息能力向其它移動(dòng)裝置傳輸在測(cè)試期間出現(xiàn)的錯(cuò)誤。
[0006]無(wú)論是使用用戶報(bào)告還是使用一些類型的自動(dòng)錯(cuò)誤報(bào)告,傳統(tǒng)系統(tǒng)通常經(jīng)歷了錯(cuò)誤的出現(xiàn)與那個(gè)錯(cuò)誤的分析之間的滯后。那個(gè)滯后可能影響錯(cuò)誤的再現(xiàn)性和確定錯(cuò)誤如何出現(xiàn)的能力。
[0007]用于移動(dòng)應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試的傳統(tǒng)系統(tǒng)遭受了這些缺陷及其它缺陷。
【發(fā)明內(nèi)容】
[0008]解決傳統(tǒng)系統(tǒng)的這些缺陷及其它缺陷的本發(fā)明涉及用于在跨各種移動(dòng)裝置協(xié)調(diào)移動(dòng)應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試結(jié)果的系統(tǒng)和方法。
[0009]根據(jù)本發(fā)明的一個(gè)方面,應(yīng)用開(kāi)發(fā)者可能希望使用移動(dòng)裝置的選擇來(lái)現(xiàn)場(chǎng)測(cè)試應(yīng)用(“測(cè)試應(yīng)用”)。選擇的移動(dòng)裝置可以包括具有不同屬性(例如不同硬件、一個(gè)或者多個(gè)操作系統(tǒng)、一個(gè)或者多個(gè)操作系統(tǒng)的一個(gè)或者多個(gè)版本和/或其它不同屬性)的移動(dòng)裝置。
[0010]應(yīng)用開(kāi)發(fā)者可以選擇部署測(cè)試應(yīng)用的預(yù)先確定數(shù)量的移動(dòng)裝置。例如,應(yīng)用開(kāi)發(fā)者可以選擇一個(gè)或者多個(gè)移動(dòng)裝置集合,其中,在給定集合中的移動(dòng)裝置相差單個(gè)屬性。例如,屬性可以包括硬件組件、軟件組件、操作系統(tǒng)、操作系統(tǒng)的版本和/或其它屬性。在另一個(gè)示例中,應(yīng)用開(kāi)發(fā)者可以選擇預(yù)先確定數(shù)量的移動(dòng)裝置,其中,該裝置可以相差超過(guò)一個(gè)屬性。
[0011]移動(dòng)裝置可以通過(guò)測(cè)試應(yīng)用執(zhí)行一個(gè)或者多個(gè)操作來(lái)對(duì)測(cè)試應(yīng)用進(jìn)行測(cè)試。在一個(gè)實(shí)現(xiàn)方式中,應(yīng)用開(kāi)發(fā)者可以準(zhǔn)備用于對(duì)測(cè)試應(yīng)用進(jìn)行測(cè)試的一個(gè)或者多個(gè)測(cè)試腳本。測(cè)試腳本可以包括多個(gè)操作、這些操作待被執(zhí)行的順序、用于多個(gè)操作中的一個(gè)或者多個(gè)操作的輸入數(shù)據(jù)和/或用于對(duì)測(cè)試應(yīng)用進(jìn)行測(cè)試的其它信息。其上部署測(cè)試應(yīng)用的移動(dòng)裝置可以使用一個(gè)或者多個(gè)測(cè)試腳本以用于對(duì)測(cè)試應(yīng)用進(jìn)行測(cè)試。在一個(gè)實(shí)現(xiàn)方式中,移動(dòng)裝置的一個(gè)或者多個(gè)用戶可以由測(cè)試應(yīng)用執(zhí)行一個(gè)或者多個(gè)操作,其中,該一個(gè)或者多個(gè)操作可以與測(cè)試腳本不相關(guān)。
[0012]其上部署測(cè)試應(yīng)用的移動(dòng)裝置可以彼此通信并且與可以提供與測(cè)試有關(guān)的分析的計(jì)算裝置通信。例如,移動(dòng)裝置和計(jì)算裝置可以彼此通信,以跟蹤,復(fù)制并且/或者另外分析在測(cè)試應(yīng)用的測(cè)試期間出現(xiàn)的錯(cuò)誤。移動(dòng)裝置和/或計(jì)算裝置可以確定與遇到錯(cuò)誤的裝置相關(guān)聯(lián)的特征。移動(dòng)裝置可以通過(guò)在網(wǎng)絡(luò)(例如內(nèi)部網(wǎng))上廣播數(shù)據(jù),通過(guò)向計(jì)算裝置處的組播套接口(multicast socket)傳輸數(shù)據(jù)(其可以向能夠連接到組播套接口的所有移動(dòng)裝置廣播),通過(guò)向計(jì)算裝置傳輸數(shù)據(jù)借此計(jì)算裝置向移動(dòng)裝置傳輸數(shù)據(jù),通過(guò)向相應(yīng)移動(dòng)裝置處存儲(chǔ)的裝置列表中包括的每一個(gè)裝置傳輸數(shù)據(jù),通過(guò)向要從計(jì)算裝置傳輸數(shù)據(jù)的那個(gè)裝置請(qǐng)求移動(dòng)裝置列表并且向在那個(gè)列表中包括的每個(gè)裝置傳輸數(shù)據(jù)或者以其它方式來(lái)進(jìn)行通信。
[0013]根據(jù)本發(fā)明的一個(gè)方面,移動(dòng)裝置的選擇中的每一個(gè)移動(dòng)裝置可以接收測(cè)試應(yīng)用。測(cè)試應(yīng)用可以在移動(dòng)裝置可用于用戶來(lái)對(duì)應(yīng)用進(jìn)行測(cè)試之前存儲(chǔ)在移動(dòng)裝置上,可以經(jīng)由計(jì)算裝置(例如經(jīng)由下載)來(lái)接收,可以經(jīng)由互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)和/或其它網(wǎng)絡(luò)來(lái)接收,可以經(jīng)由移動(dòng)裝置可存取的應(yīng)用存儲(chǔ)來(lái)接收,可以經(jīng)由通過(guò)移動(dòng)裝置可存取的另一個(gè)應(yīng)用來(lái)接收,可以從電子存儲(chǔ)介質(zhì)來(lái)上傳,可以從主控計(jì)算裝置的云計(jì)算環(huán)境中的一個(gè)或者多個(gè)裝置接收,并且/或可以以其他方式獲得。在其中在測(cè)試應(yīng)用的測(cè)試期間使用測(cè)試腳本的一個(gè)實(shí)現(xiàn)方式中,與測(cè)試應(yīng)用相關(guān)聯(lián)的一個(gè)或者多個(gè)測(cè)試腳本可以存儲(chǔ)在移動(dòng)裝置處,(例如經(jīng)由下載)從計(jì)算裝置存取,經(jīng)由網(wǎng)絡(luò)從另一個(gè)裝置存取,從另一個(gè)裝置上傳,以與測(cè)試應(yīng)用相同或者相似方式獲得,并且/或者以其他方式獲得。
[0014]在一個(gè)實(shí)現(xiàn)方式中,被配置為提供與測(cè)試應(yīng)用有關(guān)的分析的計(jì)算裝置可以駐留在云計(jì)算環(huán)境中。計(jì)算裝置可以由應(yīng)用開(kāi)發(fā)者、由第三方服務(wù)提供者和/或由另一個(gè)實(shí)體來(lái)主控并且/或者監(jiān)視。
[0015]在一個(gè)實(shí)現(xiàn)方式中,第三方服務(wù)提供商(或者其它實(shí)體)可以促進(jìn)測(cè)試應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試。例如,第三方服務(wù)提供商可以選擇其上待部署測(cè)試應(yīng)用的移動(dòng)裝置,準(zhǔn)備用于對(duì)測(cè)試應(yīng)用進(jìn)行測(cè)試的一個(gè)或者多個(gè)測(cè)試腳本,促進(jìn)測(cè)試應(yīng)用到移動(dòng)裝置的選擇的部署,并且/或者另外促進(jìn)測(cè)試應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試。第三方服務(wù)提供商可以促進(jìn)應(yīng)用開(kāi)發(fā)者對(duì)與測(cè)試應(yīng)用有關(guān)的數(shù)據(jù)和分析的存取。在一個(gè)實(shí)現(xiàn)方式中,第三方服務(wù)提供商可以促進(jìn)一個(gè)或者多個(gè)應(yīng)用開(kāi)發(fā)者的一個(gè)或者多個(gè)測(cè)試應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試。
[0016]根據(jù)本發(fā)明的一個(gè)方面,用于跨各種移動(dòng)裝置協(xié)調(diào)移動(dòng)應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試結(jié)果的系統(tǒng)可以包括:多個(gè)移動(dòng)裝置,其被配置為促進(jìn)測(cè)試應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試;以及計(jì)算裝置,其被配置為提供與測(cè)試應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試有關(guān)的分析。
[0017]移云力裝詈.
[0018]移動(dòng)裝置可以包括:存儲(chǔ)操作系統(tǒng)的非暫時(shí)電子存儲(chǔ)介質(zhì)、被配置為執(zhí)行計(jì)算機(jī)模塊的一個(gè)或者多個(gè)物理處理器、和/或其它組件。非暫時(shí)電子存儲(chǔ)介質(zhì)可以被配置為存儲(chǔ)測(cè)試應(yīng)用、與測(cè)試應(yīng)用有關(guān)的度量、和/或與測(cè)試應(yīng)用和/或移動(dòng)裝置有關(guān)的其它信息。移動(dòng)裝置的計(jì)算機(jī)模塊可以包括:網(wǎng)絡(luò)模塊,其被配置為促進(jìn)與其它移動(dòng)裝置和計(jì)算裝置的通信;測(cè)試模塊,其被配置為使能測(cè)試應(yīng)用的現(xiàn)場(chǎng)用戶測(cè)試;和/或其它模塊。
[0019](移動(dòng)裝置的)測(cè)試模塊可以被配置作為移動(dòng)裝置的操作系統(tǒng)的一部分。例如,測(cè)試模塊可以包括構(gòu)建到操作系統(tǒng)的框架中的數(shù)據(jù)收集設(shè)施。在一個(gè)非限制實(shí)現(xiàn)方式中,移動(dòng)裝置可以包括Android操作系統(tǒng)。在該實(shí)現(xiàn)方式中,測(cè)試模塊可以由Android操作系統(tǒng)的系統(tǒng)_服務(wù)器處理而啟動(dòng)并且/或者管理。Android操作系統(tǒng)的粘合處理可以經(jīng)由應(yīng)用程序接口( “API”)將移動(dòng)裝置的應(yīng)用連接到系統(tǒng)_服務(wù)器處理和測(cè)試模塊。測(cè)試模塊可以對(duì)測(cè)試應(yīng)用和對(duì)與測(cè)試應(yīng)用的執(zhí)行有關(guān)的數(shù)據(jù)具有與操作系統(tǒng)相同或者類似的特權(quán)和存取。測(cè)試模塊自身可以包括各種模塊,例如,度量收集模塊、錯(cuò)誤處理模塊、錯(cuò)誤復(fù)制模塊和/或其它模塊。
[0020]度量收集模塊可以被配置為在非暫時(shí)電子存儲(chǔ)介質(zhì)處收集且存儲(chǔ)來(lái)自測(cè)試應(yīng)用的執(zhí)行中的度量以及來(lái)自移動(dòng)裝置的操作中的度量。例如,針對(duì)執(zhí)行的測(cè)試應(yīng)用的每個(gè)操作,度量收集模塊可以收集并且/或者存儲(chǔ)與執(zhí)行的一個(gè)或者多個(gè)在前操作有關(guān)的信息、測(cè)試應(yīng)用的狀態(tài)、移動(dòng)裝置的狀態(tài)、與操作相關(guān)聯(lián)的一個(gè)或者多個(gè)參數(shù)、至操作的一個(gè)或者多個(gè)輸入、來(lái)自操作的一個(gè)或者多個(gè)輸出、操作的結(jié)果、相關(guān)聯(lián)的測(cè)試腳本和/或與操作有關(guān)的其它信息。由測(cè)試應(yīng)用執(zhí)行的操作可以對(duì)應(yīng)于與測(cè)試應(yīng)用有關(guān)的一個(gè)或多個(gè)測(cè)試腳本中的一個(gè)或多個(gè)操作。例如,測(cè)試腳本可以由移動(dòng)裝置的用戶執(zhí)行,可以由移動(dòng)裝置自動(dòng)執(zhí)行,可以由測(cè)試模塊自動(dòng)執(zhí)行,并且/或者可以以其它方式執(zhí)行。在一個(gè)實(shí)現(xiàn)方式中,執(zhí)行的一個(gè)或者多個(gè)操作可以是與測(cè)試腳本不對(duì)應(yīng)的隨機(jī)操作。
[0021]度量收集模塊可以在非暫時(shí)電子存儲(chǔ)介質(zhì)處收集并且存儲(chǔ)與移動(dòng)裝置的操作有關(guān)的信息。例如,度量收集模塊可以收集且存儲(chǔ)與以下有關(guān)的信息:當(dāng)應(yīng)用(例如包括測(cè)試應(yīng)用)在移動(dòng)裝置上崩潰時(shí),當(dāng)移動(dòng)裝置不能執(zhí)行與任何應(yīng)用有關(guān)的任何操作時(shí),操作系統(tǒng)的重置是否出現(xiàn),裝置溫度,電池使用,蜂窩數(shù)據(jù)使用,W1-Fi數(shù)據(jù)使用,網(wǎng)絡(luò)狀態(tài),是否掛掉任何電話呼叫,與經(jīng)由移動(dòng)裝置的操作存儲(chǔ)的記錄有關(guān)的信息,和/或與移動(dòng)裝置的操作有關(guān)的其它信息。
[0022]度量收集模塊可以向計(jì)算裝置傳輸與測(cè)試應(yīng)用的執(zhí)行和移動(dòng)裝置的操作有關(guān)的信息。例如,度量收集模塊可以基于由計(jì)算裝置的請(qǐng)求、基于移動(dòng)裝置的用戶的請(qǐng)求并且/或者對(duì)其他信息響應(yīng)來(lái)在預(yù)先確定的間隔處傳輸信息。
[0023]測(cè)試模塊的錯(cuò)誤處理模塊可以被配置為檢測(cè)在測(cè)試應(yīng)用中出現(xiàn)的錯(cuò)誤,向其它移動(dòng)裝置傳輸與檢測(cè)到的錯(cuò)誤有關(guān)的信息,從其他移動(dòng)裝置接收與復(fù)制嘗試有關(guān)的信息,確定錯(cuò)誤是否出現(xiàn)在一個(gè)或者多個(gè)其它移動(dòng)裝置處,基于來(lái)自其它移動(dòng)裝置的復(fù)制信息來(lái)確定與檢測(cè)到的錯(cuò)誤有關(guān)的特征,并且/或者執(zhí)行與錯(cuò)誤處理有關(guān)的其它功能。
[0024]當(dāng)操作與測(cè)試腳本相關(guān)聯(lián)時(shí),非暫時(shí)電子存儲(chǔ)介質(zhì)可以存儲(chǔ)與基于操作的執(zhí)行的期望結(jié)果有關(guān)的信息。錯(cuò)誤處理模塊可以將與操作有關(guān)的、由度量收集模塊收集的信息和與操作有關(guān)的、在非暫時(shí)電子存儲(chǔ)介質(zhì)處存儲(chǔ)的信息進(jìn)行比較。響應(yīng)于由度量收集模塊收集到的信息未匹配與期望結(jié)果有關(guān)的信息的確定,錯(cuò)誤處理模塊可以指示出錯(cuò)誤與該操作一起出現(xiàn)。
[0025]非暫時(shí)電子存儲(chǔ)介質(zhì)可以存儲(chǔ)與指示錯(cuò)誤出現(xiàn)的一個(gè)或者多個(gè)事件有關(guān)的信息。與一個(gè)或者多個(gè)事件有關(guān)的信息可以指示出錯(cuò)誤與測(cè)試應(yīng)用的操作和移動(dòng)裝置的操作一起出現(xiàn),并且/或者指示出另一種類型的錯(cuò)誤的出現(xiàn)。錯(cuò)誤處理模塊可以將與該操作有關(guān)的、由度量收集模塊收集的信息和與一個(gè)或者多個(gè)事件有關(guān)的、在非暫時(shí)電子存儲(chǔ)介質(zhì)處存儲(chǔ)的信息進(jìn)行比較。響應(yīng)于由度量收集模塊收集到的信息匹配與一個(gè)或者多個(gè)事件有關(guān)的信息的確定,錯(cuò)誤處理模塊可以指示出錯(cuò)誤與該操作一起出現(xiàn)。
[0026]響應(yīng)于由錯(cuò)誤處理模塊進(jìn)行的錯(cuò)誤出現(xiàn)的指示,錯(cuò)誤處理模塊可以使用與該操作一起出現(xiàn)的錯(cuò)誤的指示來(lái)增加與該操作有關(guān)的存儲(chǔ)信息。在一個(gè)實(shí)現(xiàn)方式中,非暫時(shí)電子存儲(chǔ)可以從由度量收集模塊收集的信息中單獨(dú)存儲(chǔ)與錯(cuò)誤有關(guān)的信息。例如,非暫時(shí)電子存儲(chǔ)介質(zhì)可以存儲(chǔ)與錯(cuò)誤記錄中的錯(cuò)誤有關(guān)的錯(cuò)誤信息。例如,錯(cuò)誤信息可以包括以下一個(gè)或者多個(gè):測(cè)試應(yīng)用的識(shí)別、錯(cuò)誤出現(xiàn)處的操作的識(shí)別、與錯(cuò)誤出現(xiàn)處的操作相關(guān)聯(lián)的一個(gè)或多個(gè)參數(shù)、用于錯(cuò)誤出現(xiàn)處的操作的輸入數(shù)據(jù)、用于錯(cuò)誤出現(xiàn)處的操作的輸出數(shù)據(jù)、錯(cuò)誤出現(xiàn)處的操作的一個(gè)或者多個(gè)結(jié)果、與在錯(cuò)誤出現(xiàn)處的操作之前出現(xiàn)的一個(gè)或者多個(gè)操作有關(guān)的信息、用于該一個(gè)或者多個(gè)操作中的每一個(gè)操作的一個(gè)或者多個(gè)參數(shù)、用于該一個(gè)或者多個(gè)操作中的每一個(gè)操作的輸入數(shù)據(jù)、用于該一個(gè)或者多個(gè)操作中的每一個(gè)操作的輸出數(shù)據(jù)、當(dāng)錯(cuò)誤出現(xiàn)時(shí)的測(cè)試應(yīng)用的狀態(tài)、相關(guān)聯(lián)的測(cè)試腳本、和/或與錯(cuò)誤有關(guān)的其它信息等。在一個(gè)實(shí)現(xiàn)方式中,錯(cuò)誤處理模塊可以響應(yīng)于錯(cuò)誤在測(cè)試應(yīng)用的執(zhí)行期間在預(yù)先確定間隔處出現(xiàn)的確定和/或響應(yīng)于其它信息,來(lái)向計(jì)算裝置傳輸與錯(cuò)誤有關(guān)的錯(cuò)誤信息。
[0027]在一個(gè)實(shí)現(xiàn)方式中,例如,用于錯(cuò)誤信息的格式可以包括:與幻數(shù)有關(guān)的第一部分、與時(shí)間戳有關(guān)的第二部分、與數(shù)據(jù)類型有關(guān)的第三部分、與記錄的長(zhǎng)度有關(guān)的第四部分、與上下文具體數(shù)據(jù)有關(guān)的第五部分和/或描述記錄的格式的其它部分。例如,時(shí)間戳可以包括表示為48位無(wú)符號(hào)整數(shù)的多個(gè)毫秒。數(shù)據(jù)類型可以為16位無(wú)符號(hào)整數(shù)、16位帶符號(hào)整數(shù)、字符串和/或其它類型數(shù)據(jù)。記錄的長(zhǎng)度可以表示為16位無(wú)符號(hào)整數(shù)。例如,上下文具體數(shù)據(jù)可以包括日志、內(nèi)核消息(kmsg)和/或其它上下文具體數(shù)據(jù)。
[0028]響應(yīng)于錯(cuò)誤與所述操作一起出現(xiàn)的確定,錯(cuò)誤處理模塊可以向其它移動(dòng)裝置傳輸與該錯(cuò)誤有關(guān)的錯(cuò)誤信息。錯(cuò)誤處理模塊可以向在非暫時(shí)電子存儲(chǔ)介質(zhì)中存儲(chǔ)的列表中包括的移動(dòng)裝置傳輸與該錯(cuò)誤有關(guān)的錯(cuò)誤信息。在一個(gè)實(shí)現(xiàn)方式中,錯(cuò)誤處理模塊可以從計(jì)算裝置請(qǐng)求向其傳輸錯(cuò)誤信息的移動(dòng)裝置的列表。在一個(gè)實(shí)現(xiàn)方式中,錯(cuò)誤處理模塊可以在網(wǎng)絡(luò)(例如內(nèi)聯(lián)網(wǎng))上廣播錯(cuò)誤信息,使得連接到網(wǎng)絡(luò)的所有其它裝置可以接收錯(cuò)誤信息。在一個(gè)實(shí)現(xiàn)方式中,錯(cuò)誤處理模塊可以向計(jì)算裝置處的組播套接口傳輸數(shù)據(jù)(經(jīng)由其,數(shù)據(jù)可以被廣播至能夠連接到組播套接口的所有移動(dòng)裝置)。