00b,……,100n的選擇中的每一個移動裝置可以接收測試應用。例如,測試應用可以在使測試應用的用戶可用來對應用進行測試之前存儲在移動裝置100a上,可以經由計算裝置40(例如經由下載)來接收,可以經由網絡20來接收,可以經由移動裝置100a可存取的應用存儲來接收,可以經由通過移動裝置100a可存取的另一個應用來接收,可以從電子存儲介質來上傳,可以從主控計算裝置40的云計算環(huán)境中的一個或者多個裝置接收,并且/或可以以其他方式獲得。在其中在測試應用的測試期間使用測試腳本的一個實現方式中,與測試應用相關聯的一個或者多個測試腳本可以存儲在移動裝置100a處,(例如經由下載)從計算裝置40存取,經由網絡從另一個裝置存取,從另一個裝置上傳,以與測試應用相同或者相似方式獲得,并且/或者以其他方式獲得。
[0062]在一個實現方式中,被配置為提供與測試應用有關的分析的計算裝置40可以駐留在云計算環(huán)境中。計算裝置40可以由應用開發(fā)者、由第三方服務提供者和/或由另一個實體來主控并且/或者監(jiān)視。
[0063]圖2示出系統(tǒng)10的示意圖,該系統(tǒng)10包括:多個移動裝置100a,100b,……,100η,其被配置為促進測試應用的現場用戶測試;以及計算裝置40,其被配置為提供與測試應用的現場用戶測試有關的分析。
[0064]移云力裝詈.
[0065]移動裝置100a可以包括:存儲操作系統(tǒng)的非暫時電子存儲介質140a、被配置為執(zhí)行計算機模塊的一個或者多個物理處理器110a和/或其它組件。非暫時電子存儲介質140a可以被配置為存儲測試應用、與測試應用有關的度量和/或與測試應用和/或移動裝置100a有關的其它信息。移動裝置100a的計算機模塊可以包括:網絡模塊120a,其被配置為促進與其它移動裝置和計算裝置40的通信;測試模塊130a,其被配置為使能測試應用的現場用戶測試;和/或其它模塊。
[0066]移動裝置100a可以為任何移動裝置,例如,個人數字助理、智能電話、平板電腦、和/或其它移動裝置。移動裝置100a可以能夠在網絡20上與一個或者多個移動裝置(例如移動裝置100b,……,100η)和一個或者多個計算裝置(例如計算裝置40)通信。例如,網絡20可以為公共網絡或者私人網絡或者任何其它合適通信通道。移動裝置100a也可以包括通常在移動裝置中找到的其它組件,例如包括用戶輸入特征(例如觸摸屏、麥克風、鍵盤和/或其它用戶輸入特征)、揚聲器、天線(和對應的信號處理能力)和/或其它特征。其它移動裝置(例如移動裝置100b,……,100η)可以包括類似特征。
[0067]處理器110a可以提供移動裝置100a內的信息處理能力。像這樣,處理器110a可以包括數字處理器、模擬處理器、設計為處理信息的數字電路、設計為處理信息的模擬電路、狀態(tài)機和/或用于電子處理信息的其它機制中的一個或者多個。雖然處理器110a在圖2中被示出為單個實體,但是這不旨在限制,因為處理器100a可以包括協(xié)調或者合作操作的多個處理器。處理器110a可以被配置為執(zhí)行模塊120a和/或130a。處理器110a可以被配置為通過軟件、硬件、固件、軟件、硬件和/或固件的某些組合和/或用于配置處理器110a上處理能力的其它機制來執(zhí)行模塊120a和/或130a。
[0068]應當明白的是,雖然模塊120a和130a在圖2中被示出為共同位于單個計算裝置內,但是在其中處理器110a包括多個處理單元的實現方式中,模塊120a和/或130a中的一個或者多個可以遠離其它模塊放置。下面描述的、由不同模塊120a和/或130a提供的功能的描述出于說明性目的而不旨在限制,因為模塊120a和/或130a中的任一個可以提供比所描述的更多或更少的功能。例如,可以消除模塊120a和/或130a中的一個或多個,并且其功能中的一些或者全部可以由模塊120a和/或130a中的其它模塊提供。作為另一個示例,處理器110a可以被配置為執(zhí)行一個或者多個額外模塊,這些模塊可以執(zhí)行下面歸因于模塊120a和/或130a中的一個模塊的功能中的一些或者所有。
[0069]非暫時電子存儲介質140a可以包括電子存儲介質,其非暫時性地電子地存儲信息、非暫時電子存儲介質140a的電子存儲介質可以包括系統(tǒng)存儲(其一體地(即基本上非可移除的)設置有移動裝置100a)和/或可移除存儲(其經由例如端口(例如USB端口、火線端口等)或驅動器(例如磁盤驅動器等)可移除地連接到移動裝置100a)中的一個或者二者皆有。非暫時電子存儲介質140a可以包括:光學可讀存儲介質(例如光盤等)、磁性可讀存儲介質(例如磁帶、磁性硬盤驅動器、軟盤驅動器等)、基于電荷的存儲介質(例如EEPR0M、RAM等)、固態(tài)存儲介質(例如閃盤驅動器等)和/或其它電子可讀存儲介質中的一個或者多個。非暫時電子存儲介質140a可以包括一個或者多個虛擬存儲源(例如云存儲、虛擬私人網絡和/或其它虛擬存儲源)。非暫時電子存儲介質140a可以存儲軟件算法、由處理器110a確定的信息、從其它移動裝置100b,……,100η接收的信息、從計算裝置40接收的信息和/或使移動裝置100a能夠執(zhí)行如本文所述功能的其它信息。
[0070]在一個實現方式中,(移動裝置100a的)測試模塊130a可以被配置為移動裝置100a的操作系統(tǒng)的一部分。例如,測試模塊130a可以包括構建到操作系統(tǒng)的框架中的數據收集設施。在一個非限制實現方式中,移動裝置100a可以包括Android操作系統(tǒng)。在該實現方式中,測試模塊130a可以由Android操作系統(tǒng)的系統(tǒng)_服務器處理而啟動并且/或者管理。Android操作系統(tǒng)的粘合處理可以經由應用程序接口( “API”)將移動裝置的應用連接到系統(tǒng)_服務器處理和測試模塊130a。測試模塊130a可以對測試應用和對與測試應用的執(zhí)行有關的數據具有與操作系統(tǒng)相同或者類似的特權和存取。如圖3所示,測試模塊130a自身可以包括各種模塊,例如,度量收集模塊132a、錯誤處理模塊134a、錯誤復制模塊136a和/或其它模塊。
[0071](測試模塊130a的)度量收集模塊132a可以被配置為在非暫時電子存儲介質140a處收集且存儲來自測試應用的執(zhí)行中的度量以及來自移動裝置100a的操作中的度量。例如,針對執(zhí)行的測試應用的每個操作,度量收集模塊132a可以收集并且/或者存儲與執(zhí)行的一個或者多個在前操作有關的信息、測試應用的狀態(tài)、移動裝置100a的狀態(tài)、與操作相關聯的一個或者多個參數、至操作的一個或者多個輸入、來自操作的一個或者多個輸出、操作的結果、相關聯的測試腳本和/或與操作有關的其它信息。由測試應用執(zhí)行的操作可以對應于與測試應用有關的一個或多個測試腳本中的一個或多個操作。例如,測試腳本可以由移動裝置100a的用戶執(zhí)行,可以由移動裝置100a自動執(zhí)行,可以由測試模塊130a自動執(zhí)行,并且/或者可以以其它方式執(zhí)行。在一個實現方式中,執(zhí)行的一個或者多個操作可以是與測試腳本不對應的隨機操作。
[0072]度量收集模塊132a可以在非暫時電子存儲介質140a處收集并且存儲與移動裝置100a的操作有關的信息。例如,度量收集模塊132a可以收集且存儲與以下情形有關的信息:當應用(例如包括測試應用)在移動裝置100a上崩潰時,當移動裝置100a不能執(zhí)行與任何應用有關的任何操作時,操作系統(tǒng)的重置是否出現,裝置溫度,電池使用,蜂窩數據使用,W1-Fi數據使用,網絡狀態(tài),是否掛掉任何電話呼叫等有關的信息,與經由移動裝置的操作而存儲的記錄有關的信息和/或與移動裝置100a的操作有關的其它信息。
[0073]度量收集模塊132a可以向計算裝置40傳輸與測試應用的執(zhí)行和移動裝置100a的操作有關的信息。例如,度量收集模塊132a可以基于由計算裝置40的請求基于移動裝置100a的用戶的請求并且/或者對其他信息的響應來在預先確定的間隔處傳輸信息。
[0074]測試模塊130a的錯誤處理模塊134a可以被配置為檢測在測試應用中出現的錯誤,向其它移動裝置100b,……,100η傳輸與檢測到的錯誤有關的信息,從其他移動裝置100b,……,100η接收與復制嘗試有關的信息,確定錯誤是否出現在一個或者多個其它移動裝置100b,……,100η處,基于來自其它移動裝置100b,……,100η的復制信息來確定與檢測到的錯誤有關的特征,并且/或者執(zhí)行與錯誤處理有關的其它功能。
[0075]當操作與測試腳本相關聯時,非暫時電子存儲介質140a可以存儲與基于操作的執(zhí)行的期望結果有關的信息。錯誤處理模塊134a可以對將與操作有關的、由度量收集模塊132a收集的信息和與操作有關的、在非暫時電子存儲介質140a處存儲的信息進行比較。響應于由度量收集模塊132a收集的信息未匹配與期望結果有關的信息的確定,錯誤處理模塊134a可以指示出錯誤與該操作一起出現。
[0076]非暫時電子存儲介質140a可以存儲與指示錯誤出現的一個或者多個事件有關的信息。與一個或者多個事件有關的信息可以指示錯誤與測試應用的操作和移動裝置100a的操作一起出現,并且/或者另一種類型的錯誤出現。錯誤處理模塊134a可以將與該操作有關的、由度量收集模塊132a收集的信息和與一個或者多個事件有關的、在非暫時電子存儲介質140a處存儲的信息進行比較。響應于由度量收集模塊132a收集的信息匹配與一個或者多個事件有關的信息的確定,錯誤處理模塊134a可以指示錯誤與該操作一起出現。
[0077]響應于由錯誤處理模塊134a進行的錯誤出現的指示,錯誤處理模塊134a可以使用錯誤與該操作一起出現的指示來增加與該操作有關的存儲信息。在一個實現方式中,非暫時電子存儲140a可以從由度量收集模塊132a收集的信息中單獨存儲與錯誤有關的信息。例如,非暫時電子存儲介質140a可以存儲與錯誤記錄中的錯誤有關的錯誤信息。例如,錯誤信息可以包括以下一個或者多個:測試應用的識別、錯誤出現處的操作的識別、與錯誤出現處的操作相關聯的一個或多個參數、用于錯誤出現處的操作的輸入數據、用于錯誤出現處的操作的輸出數據、錯誤出現處的操作的一個或者多個結果、與在錯誤出現的操作之前出現的一個或者多個操作有關的信息、用于一個或者多個操作中的每一個操作的一個或者多個參數、用于一個或者多個操作中的每一個操作的輸入數據、用于一個或者多個操作中的每一個操作的輸出數據、當錯誤出現時的測試應用的狀態(tài)、相關聯的測試腳本、和/或與錯誤有關的其它信息等。在一個實現方式中,錯誤處理模塊134可以響應于錯誤在測試應用的執(zhí)行期間在預先確定間隔處出現的確定和/或響應于其它信息來向計算裝置40傳輸與錯誤有關的錯誤信息。
[0078]在一個實現方式中,例如,用于錯誤信息的格式可以包括:與幻數有關的第一部分、與時間戳有關的第二部分、與數據類型有關的第三部分、與記錄的長度有關的第四部分、與上下文具體數據有關的第五部分和/或描述記錄的格式的其它部分。例如,時間戳可以包括表示為48位無符號整數的多個毫秒。數據類型可以為16位無符號整數、16位帶符號整數、字符串和/或其它類型數據。記錄的長度可以表示為16位無符號整數。例如,上下文具體數據可以包括日志、內核消息和/或其它上下文具體數據。
[0079]響應于具有操作的錯誤出現的確定,錯誤處理模塊134a可以向其它移動裝置100b,……,100η傳輸與該錯誤有關的錯誤信息。錯誤處理模塊134a可以向在非暫時電子存儲介質140a中存儲的列表中包括的移動裝置100b,……,100η傳輸與該錯誤有關的錯誤信息。在一個實現方式中,錯誤處理模塊134a可以從計算裝置40請求向其傳輸錯誤信息的移動裝置100b,......,100n的列表。在一個實現方式中,錯誤處理模塊134a可以在網絡
20上廣播錯誤信息,使得連接到網絡20的所有其它裝置100b,……100η可以接收錯誤信息。在一個實現方式中,錯誤處理模塊134a可以向計算裝置40處的組播套接口傳輸數據(經由其,數據可以被廣播至能夠連接到組播套接口的所有移動裝置100b,……,100η)。
[0080]響應于錯誤信息到其它移動裝置100b,……,100η的傳輸,錯誤處理模塊134a可以從一個或者多個其它移