测试 Windows 8 中的 Metro 风格应用
在 Metro 風格應用程序的世界里,應用程序是整個體驗的重中之重。為了使這種體驗能給您的用戶帶來愉悅,您希望確保您的應用程序經過行之有效的測試,并且表現出一流的品質。Metro 風格應用程序的生產分為以下四個主要階段:設計、開發、測試和最終交付。
前面發布的幾篇博客著重探討了 Metro 風格應用程序的設計和開發兩個方面。在本篇博文中,我們將介紹有關應用程序測試的幾個高級驗證環節。
測試這個術語使用頻繁,對于不同的人,它有著不同的含義,尤其是在軟件開發生命周期環境下。它還涉及一系列可能要在軟件開發的不同階段實施的各種活動。這些活動包括設備測試、功能測試、可用性測試、場景測試和其他一些測試。任何一個這樣的活動僅代表一項測試任務,并不涵蓋完成應用所必需的、確保應用高質量的所有驗證。在本博文中,我們不區分具體驗證類型之間的異同,而將介紹一系列豐富的高級驗證環節和操作,幫助您確保應用擁有高品質。除了這些驗證環節,您還可以在開發過程中使用調試和測試用 Visual Studio?和?Visual Studio 設備測試工具驗證應用的功能性。在未來幾周內,我們準備繼續發布其他博客,更深層次地討論 Metro 風格應用測試的細節。
正如我們從管理應用程序生命周期博文中了解的那樣,Metro 風格應用可以在不同運行時狀態間轉換。根據這種應用生命周期,我們需要考慮以下幾個關鍵的驗證環節:
- 已激活:通過幾種激活方式驗證應用
- 正在運行:驗證運行時中的應用
- 已掛起:驗證應用能否正常掛起
- 已恢復:驗證應用能否正常恢復
- 已終止:驗證應用終止
- 未運行:驗證應用在未運行時的行為
接下來,讓我們更深入地探討一下上述每一個驗證過程中的關鍵驗證環節。
驗證應用的激活行為
要測試激活,我們需要仔細了解用戶可以啟動您的應用的各種不同環境。對您的應用支持的各個激活場景進行驗證非常重要。下面是用戶可以激活您的應用的常見環境:
- 磁貼:通過磁貼啟動應用很有可能是用得最多的用戶與應用之間的交互方式。驗證您的應用是否遵循相應的應用程序啟動設計模式。
- Toast 通知:如果您的應用支持?Toast 通知,請驗證在您單擊原本就應該由您的應用處理的傳入通知時,您的應用是否能夠按預期激活功能。
- 搜索:如果您的應用支持搜索,請驗證您應用的激活情況以及您能否在應用中完成搜索。如果您的應用支持顯示搜索建議,請驗證該功能是否能夠按預期運行。
- 共享目標:如果您的應用支持成為共享目標,請驗證您的應用能否激活并發布從另外一個應用共享的內容,使其成為支持的內容類型。
- 協議:如果您的應用注冊了協議,請驗證您能否通過啟動與該協議相對應的不同 URL 類型來激活您的應用。
- 文件關聯:如果您的應用注冊為用來處理文件類型,請驗證您能否通過啟動相對應文件類型的文件激活您的應用。
- 文件選取器/聯系人選擇器:如果您的應用被注冊為一個文件打開/保存選擇器或者聯系人選擇器,請驗證您能否在這些環境下激活您的應用。
驗證應用的運行時行為
對 Metro 風格應用的功能性進行驗證包括兩個部分:驗證適用于所有應用程序的常見特征;驗證應用的特有功能性。除了我們接下來要談到的關鍵驗證場景,您必須還要驗證應用的特有功能性。這包括理解您的應用設定的關鍵場景以及驗證這些場景能否按預期運行。
磁貼
應用磁貼是應用的核心部分,并可能是應用的最常見部分。驗證磁貼行為的以下方面非常重要:
- 如果您的應用支持動態磁貼,請在應用運行過程中驗證其行為。驗證磁貼的更新是否與應用中所顯示的狀態一致。例如,照片應用的磁貼是否可以顯示最近添加相冊中的照片。
- 如果您的應用支持次級磁貼,請驗證這些磁貼是否可以顯示所需的信息。例如,天氣應用能否支持將特定城市固定為次級磁貼。您還需要驗證通過單擊應用中的次級磁貼能否啟動應用以及能否打開應用中的預期環境。
- 如果您的應用支持磁貼中的通知鎖屏提醒,請驗證所有鎖屏提醒更新是否按預期顯示,以及這種更新是否與應用中顯示的狀態一致。例如,與郵件應用中的未讀郵件數量相關的鎖屏提醒必須在應用運行時清零,以便讓用戶知道他們不再有任何未讀郵件。
Toast 通知
如果您的應用支持?toast 通知,請驗證 Toast 能否正常觸發和顯示。還要驗證通過單擊 toast 通知能否啟動應用以及能否打開應用中的預期環境。
合約和擴展
在驗證應用的激活行為的過程中,我們提前了解了一些合約。我們來看一些與驗證運行時合約相關的其他環節:
- 共享來源:如果您的應用支持成為共享來源,請驗證您能否使用“共���”超級按鈕將來自您的應用(支持的內容類型)的內容與計算機上的其他目標應用共享。
- 播放到:如果您的應用支持“播放到”合約,請驗證您能否使用“設備”超級按鈕從您的應用程序在遠程設備上播放媒體。
- 設置:如果您的應用支持“設置”合約,請驗證您能否查看和修改您應用的特定設置。另外,還要驗證應用能否在終止/重新啟動后繼續使用修改的設置。
Windows 應用認證工具包
Windows 應用認證工具包可讓您驗證您的應用是否符合 Windows 應用商店的提交條件。此驗證包包括用于驗證受支持 API 使用情況的自動化測試、對崩潰/掛起的測試、對應用部件清單的驗證以及啟動/掛起時間性能。我們建議您盡早并定期運行此包。我們多次遇到如下情況:因為應用所有者直到最后關頭才針對其應用運行認證包,導致應用無法在最終日期前提交到應用商店。如果您提前并且定期運行驗證包,您就可以及時發現并解決應用的任何問題,并將您的應用提交到應用商店。Windows 應用認證工具包文檔詳細介紹了該認證包可以執行的測試類型以及其他有關設置運行此驗證包的配置的技巧。
貼靠和填充視圖
用戶可以在各種視圖狀態下運行您的 Metro 風格應用。除了全屏視圖,用戶還可以在貼靠和填充視圖中使用應用。驗證您的應用能否正確地處理這些視圖狀態轉換非常重要。
- 驗證您的應用是否支持貼靠和填充視圖。驗證您的應用在內容變成貼靠或非貼靠狀態時能否保持內容不變。
- 驗證貼靠和非貼靠是否會影響用戶的工作或狀態。
- 驗證在貼靠狀態下,用戶能否與應用交互。
旋轉
用戶可以旋轉和翻轉他們的平板電腦和顯示器。如果您的應用不但支持橫向方向,還支持縱向方向,請驗證您的應用能否處理方向轉換。您可以使用適用于 Metro 風格應用的 Visual Studio 模擬器測試這兩種模式下的應用。所以,不一定非得要有平板電腦設備才能測試這一場景。
觸控
Windows 8 為應用帶來了數不清的全新觸控體驗。您可以使用適用于 Metro 風格應用的 Visual Studio 模擬器測試您的應用支持的觸控交互。所以,不一定非得要有專用的觸控硬件才能驗證這些交互。
- 驗證應用中所用的所有控件是否全都是易于觸控的標準基本控件。請根據您的編程語言,選擇使用?XAML 控件或?JavaScript 控件。
- 驗證您的 Metro 風格應用是否符合標準的觸控互動設計。
- 驗證您的應用能否針對用戶操作作出可視反饋。
- 驗證應用能否避免從屏幕邊緣執行拖動操作,以防止與 Windows OS 手勢發生沖突。
- 如果您的應用支持任何文本輸入控件,請驗證軟鍵盤能否按預期運行。驗證鍵盤焦點區在軟鍵盤顯示時能否上移到視圖中。
播放音頻
Windows 8 支持 Metro 風格應用播放音頻的模式,包括在后臺播放。在測試音頻時,我們建議您:
- 如果您的應用要播放音頻,請驗證當用戶在您的應用和其他類型的音頻應用間切換時,您的應用能否正確地處理聲音級通知。例如,如果您的應用是一款游戲,則當您的應用收到“已靜音”通知時,您可能想要暫停游戲。有關詳細信息,請參閱?Metro 風格的應用程序中的音頻播放。
- 如果您的應用支持在后臺播放音頻,請驗證您的應用在沒有被掛起的情況下能否持續在后臺播放音頻。驗證您的應用在用戶鎖定設備時能否繼續播放音頻。
- 如果您的應用注冊為使用傳輸控件控制音樂播放,請驗證應用能否按預期運行。
不同屏幕尺寸
Windows 8 可以在各種不同的屏幕尺寸上運行,從平板電腦所用的小型屏幕,到便攜式計算機的中型屏幕,再到臺式機的大型屏幕,都可以運行。因此,測試您的應用能否在不同的屏幕尺寸上運行非常重要。您可以使用適用于 Metro 風格應用的 Visual Studio 模擬器在各種屏幕尺寸和像素密度上測試您的應用。
- 在分辨率介于 1024x768 和 2560x1440 之間時,驗證應用的布局是否被截斷以及內容是否顯示在預期的位置。
- 驗證圖像在按照像素密度縮放時能否保持清晰。
數據漫游
Windows 8 支持跨多個 PC 的漫游設置,包括 Metro 風格應用使用的漫游狀態。要測試這一功能,請:
- 驗證應用上下文能否按預期跨多個 PC 漫游。例如,這可能是您應用中游戲的上一次通關級別、書籍中最近閱讀的頁面或者視頻中的上一次觀看停止點。驗證應用在某臺 PC 上設置的上下文能否反映到另一臺您在使用該應用的 PC 上。
- 驗證您的應用可用的用戶首選項能否按預期在多個 PC 間漫游。例如,這可能是天氣預報應用中用戶的溫度單位首選項。在此示例下,請驗證用戶在某臺 PC 上的單位首選項設置能否反映到另一臺您在使用該應用的 PC 上。
設備和傳感器
如果您的 Metro 風格應用支持設備或傳感器,您需要驗證以下環節。
- 如果您的應用支持按照地理位置調整視圖,請驗證該功能能否按預期運行。在應用支持可設置當期位置的選項時,您可以使用適用于 Metro 風格應用的 Visual Studio 模擬器測試這一功能。
- 如果您的應用支持對用戶啟動的設備連接(例如照相機或 U 盤)作出響應,請驗證您的應用能否根據事件正確地作出響應。例如,這可能要驗證用戶能否使用您的應用復制來自照相機的所有照片。另外,還要驗證您的應用能否恰當地處理設備斷開連接。例如,驗證用戶在復制照相機中的照片時斷開了照相機的連接,應用會有怎樣的行為。
- 用戶可以將特定類型的計算機或設備連接到擴展塢。所以,請驗證您的應用在計算機處于連接或斷開連接的狀態下能否按預期運行。
性能
用戶希望應用能即時對輸入作出響應。因此,驗證應用的性能特征至關重要。Windows 8 可以在多種不同的硬件上運行,所以,請考慮將您的應用安裝在低端計算機上,評估其性能特征。博文如何提高 Metro 風格應用程序的性能詳細介紹了評估前準備計算機的方法。
響應
- 對于您的應用支持的關鍵場景,要了解預期的交互類并驗證應用是否符合特定交互類的目標。
- 驗證您的應用是否能持續對用戶作出響應。
- 驗證您的應用能否在任何長時間運行活動(例如異步網絡電話)過程中為您的用戶提供反饋。
成為應用程序生態系統中的一位好公民
正如博文如何提高 Metro 風格應用程序的性能中所述,驗證您的應用是否是應用生態系統中的好公民非常重要。這其中包括積極地為提高用戶的整體體驗做出貢獻(無論您的應用是否在前臺運行)。除了驗證上述博文中列出的環節,還需要驗證如下所述的其他一些環節:
- 如果您希望您的應用在空閑狀態時不占用 CPU,請驗證您的應用是否不消耗任何 CPU。
- 用戶可能會使用各種類型的網絡,包括按流量計費的網絡。如果您的應用可以連接互聯網,請驗證應用在發送和接收數據時能否根據按流量計費的網絡調整自己的行為。
錯誤處理
俗話說,凡事只要有可能出錯,那就準會出錯。事實上,如果您的應用所依賴的條件發生了變化,則它可能會影響您的應用的行為。例如,您的應用需要處理不可用的網絡連接并判斷這種情況下的行為。
- 驗證您的應用能否是當地處理錯誤條件。如上例,網絡和/或設備連接是觸發應用中的錯誤路徑的絕佳方法。驗證您的應用是否符合管理連接狀態更改的相關指南。
- 驗證錯誤處理不是侵入性的,并且您的應用僅向用戶顯示嚴重錯誤。
- 驗證您的應用能否為用戶提供可操作的錯誤消息。請參閱可操作錯誤消息指南。
可靠性
用戶們希望應用能夠可靠且始終如一地運行。所以,驗證您的應用是否具備高可靠性非常重要。
- 驗證您的應用能否在各種不同條件下可靠運行,并且不會因為未處理的異常情況而崩潰。
- 驗證您的應用會不會泄露內存或任何其他資源。要檢測 Metro 風格應用中的內存泄露,您可以使用您通常用于其他 Windows 應用程序的相同方法。
您的應用發布到 Windows 應用商店后,您可以使用 Windows 應用商店開發人員門戶檢查應用的使用和質量數據。例如,您可以查看用戶所遇到的異常情況、崩潰和無響應問題的相關數據。請考慮使用這類數據解決應用的重大崩潰和掛起故障。
輔助功能
Windows 8 面向各類人群設計,任何人,無論他們的身體條件如何。如果您的 Metro 風格應用符合輔助功能基準,那么它對于改善輔助功能生態系統將有非常大的幫助。如果您的應用支持輔助功能,請驗證它是否符合應用輔助功能測試中所述的條件。
全球化和本地化
如果您的 Metro 風格應用旨在面向全球用戶使用,則可能對應用進行本地化,使其符合各個地區和市場的需要。Metro 風格應用可以使用配置的語言和顯示格式(日期、時間、貨幣和數字)定制其內容。例如,如果某用戶在英文版的 Windows 上將日語配置為主要語言,則當啟動某個 Metro 風格股票應用時,該應用可能會用日語顯示所有相關的新聞文章,另外,還會顯示所選地區的股票交易信息(例如,東京證券交易所)。
應用本地化結束后,請驗證它能否針對不同地區正常運行以及能否顯示不同的語言。
- 對于您的應用支持的語言,請使用“控制面板”中的“語言”設置將各個特定語言添加為主要語言,并驗證您的應用能否針對特定語言正確地調整內容。
- 驗證當應用正在運行或掛起時,語言轉換能否按預期運行。
- 對于您的應用支持的語言,請驗證用戶界面字符串能否按預期顯示,并且不會出現截斷。
- 驗證應用圖像中的各種顯示文本是否以所選的顯示語言顯示。
處理器體系結構
Metro 風格應用可以是獨立于體系結構的,也可以專門針對特定體系結構的。
如果您的應用是獨立于體系結構的,則可以在任何所選的體系結構上測試它。
如果您的應用是特定于體系結構的,則需要在所有受支持的體系結構上對其進行測試。
- 如果您的應用專為 Windows RT (ARM) 而設計,則要驗證其在 Windows RT 電腦上的功能性。有關 ARM 開發和測試的更多信息,請參閱在 ARM(WOA)上開發 Windows 時,你應該知道的事情。
- 如果您的應用面向 x86,并且不另外提供 x64 包,則請驗證您的應用能否在 x86 和 x64 兩種系統都可以運行自如。這是因為 x86 應用可以在 x86(32 位 Windows)或 x64(64 位 Windows)系統上運行。Windows 允許面向 x86 的應用在 x64 系統上運行。
驗證應用的掛起行為
Windows 會掛起不在前臺的應用程序。這樣,Windows 就可以讓前臺應用程序更好地使用系統資源,并確保后臺應用程序不會耗盡用戶的電池電量。例如,在掛起期間,股票應用可以保留用戶查看過的上一種股票的相關信息和股價圖的時間范圍。
- 驗證您的應用在掛起狀態下能否降低內存使用量。要在任務管理器中查看掛起狀態,請單擊任務管理器中的 [More details](更多詳細信息),然后單擊 (視圖)> [Status values](狀態值)> [Show suspended status](顯示已掛起狀態)。
- 如果您的應用支持后臺數據的上傳或下載,請驗證這些數據在應用被掛起時能否繼續傳輸。
您可以使用 Visual Studio?模擬應用的掛起/恢復。要執行此操作,請選擇 (視圖)> [Toolbars](工具欄)> [Debug Location](調試位置)。
驗證應用的恢復行為
當您的應用重回到前臺,Windows 將恢復應用,此時應用將從 Windows 將其掛起時的狀態繼續運行。所以,驗證應用能否正常恢復非常重要。
- 您的應用可以在被長時間掛起后恢復。在這個時段內,原來顯示的內容以及任何網絡連接可能會已經過時。驗證您的應用能否恢復以及能否針對其內容狀態提供視覺提示。
- 應用恢復后,請驗證應用能否刷新內容以及能否根據要求重新連接任何網絡資源。以股票應用為例,在股票應用恢復后,它能否提供視覺提示告知用戶數據上次更新的時間,然后繼續更新緩存的股票數據,以便用戶看到最新的股價。
驗證應用的終止行為
當系統的運行資源不足時,Windows 可能會終止已掛起的應用。另外,如果用戶手動關閉了應用,或者注銷了 Windows,應用也可能會終止。根據應用的終止方式,非常有必要驗證應用能否在終止后啟動時恢復相應的應用數據。
- 在啟動已被 Windows 終止的應用的過程中,驗證應用能否將內容和狀態恢復到被掛起和/或終止前的狀態。例如,上次查看的股票信息以及應用掛起時保存的選定的股價圖時間范圍。
- 在啟動被手動關閉的應用(用手指從屏幕頂端刷到底端)時,驗證應用在打開時是否顯示默認數據。
- 在啟動意外終止(例如,崩潰)的應用時,驗證應用是否依然能夠啟動以及能否加載默認數據。要想使應用意外終止,請在任務管理器中右鍵單擊您的應用,然后,轉到詳細信息 (Go to details),再次右鍵單擊,結束任務。
有關更多詳細信息,請參閱管理應用程序生命周期,讓應用程序始終充滿“生命活力”。
驗證應用未運行時的行為
Metro 風格應用即使沒有運行也會向用戶顯示信息。所以,驗證以下場景能否按預期運行非常重要。
磁貼
以下是應用未運行時需驗證的主要環節:
- 驗證默認磁貼能否按預期顯示。根據磁貼指南和清單驗證磁貼大小、用法和通知。
- 如果您的應用支持計劃通知或通過云定期/推送通知,請驗證即使應用未運行,其磁貼是否也能獲得更新。我們以天氣預報應用和體育報道應用為例,前者定期更新磁貼的當前溫度,后者使用從云中推送的最新比分更新其磁貼。
- 動態磁貼是吸引用戶重返您的應用程序的最佳方式之一。請驗證動態磁貼中的信息是否顯示您應用的最新動態。
Toast 通知
如果您的應用支持即使沒有運行也會發出 Toast 通知(使用計劃通知或推送通知),請驗證在應用沒有運行的情況下,Toast 通知能否按預期觸發并顯示。例如,日歷應用可以用 Toast 通知安排會議提醒,新聞應用可以使用 Toast 通知顯示即時新聞。
后臺任務
如果您的應用支持后臺任務,請驗證相應的行為。
- 如果您的應用能夠顯示鎖屏通知(例如,郵件應用或 VoIP 應用必須始終保持最新),請驗證您的應用在 PC 未使用時能否顯示最新通知。
- 如果您的應用可以在特定的觸發條件(例如,照片應用可以在交流電源下處理來自照片庫的照片)下執行后臺任務,請驗證您的應用能否在達到相應的條件時正確執行任務。
有關詳細信息,請參閱博文后臺任務。
總結
對 Metro 風格應用進行測試并驗證其品質,對于確保您的用戶擁有絕佳應用體驗發揮著關鍵作用。在本博文中,我們介紹了一些 Metro 風格應用驗證的關鍵環節,包括驗證應用在不同環境下啟動后的行為,驗證應用的功能性,以及驗證應用在 Metro 風格應用生命周期不同階段下的行為。
在實際使用中,用戶可能會同時執行多個會影響應用的交互。例如,某個用戶可能會非常迅速地連續執行下列操作:突然將應用貼靠到填充視圖,然后旋轉設備,接著調整屏幕分辨率。所以,除了要單獨測試應用在特定場景下的行為以外,還要發揮您的想象力,多多測試您的應用,使其能夠適應這種復雜的交互。
我們希望本博文能給你帶來一個好的起點,有助于您考慮如何驗證應用的功能性并使它們表現出一流的品質。在未來幾周內,我們準備繼續發布其他博客,更深層次地討論 Metro 風格應用測試的特定話題。
謝謝!
-- J. Kalyana Sundaram,Windows 高級 SDET
-- Ashwin Needamangala,Windows 首席測試主管
-- Mete Goktepe,Windows 首席測試經理
在此特別感謝 Tom White、Patrik Lundberg、Tom Baxter、Vik Kumar、Rui Sun 和 Yves Neyrand,感謝他們為本文的撰寫提供幫助和支持。
總結
以上是生活随笔為你收集整理的测试 Windows 8 中的 Metro 风格应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C++】计算天数
- 下一篇: 虚拟地址如何访问到物理地址