附錄 A – 測試用例

Microsoft Corporation
內(nèi)容:討論 Offline Application Block 的測試方法。

本頁內(nèi)容
![]() |
功能測試 |
![]() |
白盒測試 |
![]() |
安全性測試 |
![]() |
性能測試 |
![]() |
集成測試 |
![]() |
內(nèi)容測試 |
![]() |
安裝測試 |
附錄 A 說明了針對 Offline Application Block 運(yùn)行以確保其正常工作的測試。在開發(fā)自己的應(yīng)用程序時(shí),我們可以將它們作為要考慮的測試類型的建議。
這些測試包括以下七個(gè)方面:
? |
功能測試,確保應(yīng)用程序符合指定的要求 |
? |
白盒測試,測試小范圍特定區(qū)域的代碼 |
? |
安全性測試,測試應(yīng)用程序及其數(shù)據(jù)是否受到保護(hù)、隱私是否受到保護(hù),以及數(shù)據(jù)是否正確加密 |
? |
性能測試,測試應(yīng)用程序在各種情況下的處理和響應(yīng)時(shí)間 |
? |
集成測試,確保應(yīng)用程序與其他系統(tǒng)和組件配合工作 |
? |
內(nèi)容測試,驗(yàn)證文檔的正確性 |
? |
安裝測試,驗(yàn)證應(yīng)用程序已正確安裝在客戶端計(jì)算機(jī)上 |
文檔的每個(gè)部分都與其中一個(gè)類別相對應(yīng)。我們?yōu)槊總€(gè)類別提供了兩個(gè)表格。
第一個(gè)表格包括:
? |
范圍,是指該測試類別所覆蓋的領(lǐng)域 |
? |
時(shí)間,是指這些測試應(yīng)在開發(fā)周期的何時(shí)開始 |
? |
用于執(zhí)行這些測試的工具 |
? |
自動測試是否適用于這些類型的測試 |
第二個(gè)表格是屬于該類別的示例測試的清單。
功能測試
功能測試可確保應(yīng)用程序符合指定的要求。
表 1:功能測試定義
領(lǐng)域 | 定義 |
范圍 |
這些測試覆蓋了智能客戶端應(yīng)用程序的功能,以確保它符合指定的要求。它們可提供應(yīng)用程序的有效性和使用性的反饋,以解決要求和實(shí)際應(yīng)用程序之間的偏差。它們使用基于功能和基于案例的方法來測試圖形用戶界面 (GUI)。 |
開始時(shí)間 |
在確定要求后,就應(yīng)盡早計(jì)劃測試并撰寫文檔。隨著越來越多的端到端功能投入使用,測試的數(shù)量將不斷增加。 |
要使用的工具 |
要使用的工具包括: 在 GUI 可用之前測試已公開功能的示例窗體。 GUI 記錄和播放工具。 |
自動角色 |
建議使用自動功能針對新的軟件內(nèi)部版本啟用多個(gè)快速的版本驗(yàn)證測試。 |
表 2:功能測試
成功/失敗 | 測試 |
應(yīng)用程序具有脫機(jī)和聯(lián)機(jī)狀態(tài)的視覺顯示。 | |
應(yīng)用程序允許用戶通過 Internet 登錄。 | |
應(yīng)用程序允許用戶通過企業(yè)網(wǎng)絡(luò)登錄。 | |
當(dāng)用戶登錄時(shí),應(yīng)用程序提示用戶是進(jìn)入脫機(jī)狀態(tài)還是聯(lián)機(jī)狀態(tài)(僅當(dāng)用戶處于聯(lián)機(jī)狀態(tài)時(shí)適用)。 | |
當(dāng)用戶注銷時(shí),應(yīng)用程序提示用戶同步化工作隊(duì)列數(shù)據(jù)(僅當(dāng)用戶在脫機(jī)狀態(tài)下對工作隊(duì)列進(jìn)行了更改,才會發(fā)生這種情況)。 | |
測試應(yīng)用程序在聯(lián)機(jī)時(shí)顯示工作項(xiàng)目。 | |
測試應(yīng)用程序在脫機(jī)時(shí)顯示工作項(xiàng)目。 | |
測試應(yīng)用程序能夠更改要求應(yīng)用程序聯(lián)機(jī)的工作項(xiàng)目。 | |
測試應(yīng)用程序能夠提示用戶為已更新的隊(duì)列數(shù)據(jù)同步化工作項(xiàng)目。 | |
測試用戶可以手動強(qiáng)制系統(tǒng)脫機(jī)。 | |
測試用戶可以手動將系統(tǒng)切換回聯(lián)機(jī)狀態(tài)。 | |
測試應(yīng)用程序具有自動連接狀態(tài)檢測策略。 | |
測試應(yīng)用程序具有用于下載工作項(xiàng)目的下載界面。 | |
測試用戶可以下載工作項(xiàng)目、脫機(jī)、在脫機(jī)狀態(tài)下更新工作項(xiàng)目、聯(lián)機(jī)以及在聯(lián)機(jī)狀態(tài)下進(jìn)行同步。 | |
測試應(yīng)用程序在編輯數(shù)據(jù)時(shí)將其標(biāo)記為 dirty,并檢查陳舊數(shù)據(jù)和廢數(shù)據(jù)是否過期。只能從服務(wù)器覆蓋陳舊數(shù)據(jù)。 | |
測試檢查 MSDE 緩存存儲提供程序是否用于緩存數(shù)據(jù)。 | |
測試檢查獨(dú)立緩存存儲提供程序是否用于緩存數(shù)據(jù)。 | |
測試檢查“消息隊(duì)列”隊(duì)列存儲提供程序是否用于排隊(duì)數(shù)據(jù)。 | |
測試檢查 MSDE 隊(duì)列存儲提供程序是否用于排隊(duì)數(shù)據(jù)。 | |
測試在脫機(jī)狀態(tài)下對客戶端數(shù)據(jù)進(jìn)行的多個(gè)更新在聯(lián)機(jī)時(shí)進(jìn)行同步。 | |
測試可以為 ConnectionDetectionStrategy 配置多個(gè)提供程序。 | |
測試支持使用 ReferenceDataCache 的不同緩存存儲區(qū)。 | |
測試可以為 QueueProvider 配置多個(gè)提供程序。 | |
測試 ConnectionDetectionStrategy 的輪詢間隔配置。 | |
測試 Executor 操作的輪詢間隔配置。 | |
測試 QueueProvider 的最大隊(duì)列消息配置。 | |
測試緩存數(shù)據(jù)的過期配置。 | |
測試用于連接到 MSDE 的連接字符串配置。 | |
測試使用自定義提供程序的加密是通過 ICryptographicProvider 接口實(shí)現(xiàn)的。 | |
測試下載頻率的配置屬性。 | |
測試錯誤和邊界條件。 | |
測試可以跨多個(gè) Offline Application Block 的運(yùn)行實(shí)例來存儲和檢索數(shù)據(jù)。 |
白盒測試
白盒測試主要用于小范圍特定區(qū)域的代碼。
表 3: 白盒測試定義
領(lǐng)域 | 定義 |
范圍 |
這些測試覆蓋小范圍的代碼單元,并使用代碼演練、代碼檢查以及使用測試框架的單元級別測試來執(zhí)行。 |
開始時(shí)間 |
這些測試在開發(fā)周期的早期進(jìn)行。應(yīng)在代碼剛被開發(fā)出來、并且還是可隨時(shí)演練的小型獨(dú)立代碼單元時(shí)執(zhí)行測試。 |
要使用的工具 代碼范圍的工具 內(nèi)存分析工具 |
要使用的工具包括: 查看代碼是否符合開發(fā)準(zhǔn)則的代碼檢查 單元測試框架工具(應(yīng)該能夠自動執(zhí)行) |
自動角色 |
單元測試自動化對于針對仍處于開發(fā)中的應(yīng)用程序執(zhí)行可重復(fù)的全面測試是至關(guān)重要的。 |
表 4:白盒測試
成功/失敗 | 測試 |
演練代碼并檢查它是否滿足質(zhì)量要求,例如是否符合邏輯,是否符合開發(fā)標(biāo)準(zhǔn)和最佳做法,以及是否具有高可讀性的注釋。 | |
使用代碼范圍的工具運(yùn)行代碼,以確保所有可用的代碼都在進(jìn)行測試。 | |
執(zhí)行代碼的內(nèi)存分析,以確保正確釋放對象和收集垃圾。 | |
使用單元測試框架工具來創(chuàng)建用于測試公共方法的單元測試。在代碼開發(fā)過程中擴(kuò)展這些測試,并定期運(yùn)行它們。單元測試可作為一種快速檢查,用于確保代碼在更改后不會被損壞。要使單元測試具有更強(qiáng)的邏輯性,請將它們映射到“功能測試”部分中說明的測試用例。 |
安全性測試
安全性測試用于測試應(yīng)用程序及其數(shù)據(jù)是否受到保護(hù),隱私是否受到保護(hù),以及數(shù)據(jù)是否正確加密。
表 5:安全性測試定義
領(lǐng)域 | 定義 |
范圍 |
這些測試覆蓋的范圍包括:驗(yàn)證隱私是否受到保護(hù)、數(shù)據(jù)是否加密、數(shù)據(jù)是否防篡改,以及應(yīng)用程序是否能夠承受各種類型的惡意攻擊。安全性測試應(yīng)主要用于獨(dú)立的系統(tǒng)單元和整個(gè)應(yīng)用程序。 |
開始時(shí)間 |
在確定要求后,就應(yīng)計(jì)劃這些測試。這些測試應(yīng)在實(shí)現(xiàn)安全措施和方法時(shí)執(zhí)行。 |
要使用的工具 |
要使用的工具包括: DOS 攻擊模擬 網(wǎng)絡(luò)探測工具 此外,請參閱清單章節(jié) |
自動化 |
不適用 |
表 6:安全性測試
成功/失敗 | 測試 |
測試應(yīng)用程序能夠?qū)⒖紨?shù)據(jù)安全地下載到本地計(jì)算機(jī)。 | |
測試應(yīng)用程序能夠?qū)⒏潞蟮膮⒖紨?shù)據(jù)安全地上載到服務(wù)器。 | |
測試應(yīng)用程序能夠?qū)σ严螺d數(shù)據(jù)的訪問權(quán)限制給經(jīng)授權(quán)的用戶。 | |
測試可以確保通過公司 Intranet 訪問服務(wù)的安全。 | |
測試可以確保通過 Internet 訪問服務(wù)的安全。 | |
測試可以安全存儲已下載的消息。 | |
跟蹤查看已下載的參考數(shù)據(jù)是否被篡改。 | |
測試檢查是否可以通過正確的登錄憑據(jù)限制對排隊(duì)數(shù)據(jù)的訪問。 | |
測試檢查排隊(duì)數(shù)據(jù)是否已正確加密并簽名。 | |
測試檢查是否可以通過正確的登錄憑據(jù)限制對緩存數(shù)據(jù)的訪問。 | |
測試檢查緩存數(shù)據(jù)是否已正確加密并簽名。 | |
測試檢查是否可以通過第三方證書(例如 Verisign)使用服務(wù)進(jìn)行下載。 | |
測試檢查程序集是否在部署服務(wù)器上進(jìn)行加密和數(shù)字簽名,并在客戶端下載時(shí)進(jìn)行驗(yàn)證。 | |
測試檢查為服務(wù)生成的代理是否具有有效的終結(jié)點(diǎn),以防止欺騙。 | |
測試檢查多個(gè)用戶的緩存數(shù)據(jù)和排隊(duì)數(shù)據(jù)共享一個(gè)客戶端是否安全。 | |
驗(yàn)證 DemandReflectPermission 在使用反射的代碼中正確實(shí)現(xiàn)。 |
性能測試
性能測試用于測試應(yīng)用程序在各種情況下的處理和響應(yīng)時(shí)間。
表 7:性能測試定義
領(lǐng)域 | 定義 |
范圍 |
這些測試覆蓋了在各種數(shù)據(jù)加載、內(nèi)存壓力條件、網(wǎng)絡(luò)可用性以及不同的連接速度下,應(yīng)用程序的處理和響應(yīng)性能。 |
開始時(shí)間 |
在確定要求后,就應(yīng)該計(jì)劃這些測試。可以通過使用內(nèi)部測試存根和性能測試工具來對已完成的單元進(jìn)行測試。隨著越來越多的端到端功能投入使用,測試的數(shù)量將不斷增加。 |
要使用的工具 |
要使用的工具包括: 性能測試工具或自定義測試工具(應(yīng)自動化) PerfMon 內(nèi)存清理工具 磁盤空間清理工具 性能分析工具 |
自動化 |
建議使用自動功能針對較新的軟件內(nèi)部版本啟用多個(gè)快速的性能測試。這將確保應(yīng)用程序符合可接受的性能標(biāo)準(zhǔn),同時(shí)還有助于比較研究。 |
表 8:性能測試
成功/失敗 | 測試 |
測試檢查在超出延遲時(shí)間段后是否會發(fā)生下載。 | |
測試檢查在超出延遲時(shí)間段后是否會發(fā)生上載。 | |
通過在一段時(shí)間內(nèi)在某一行中數(shù)百次地下載項(xiàng)目來測試性能。 | |
通過在一段時(shí)間內(nèi)在某一行中數(shù)百次地上載項(xiàng)目來測試性能。 | |
通過在一段時(shí)間內(nèi)下載和上載不同大小的數(shù)據(jù)來測試性能。 | |
通過使用不同的帶寬和延遲時(shí)間下載和上載數(shù)據(jù)來測試性能。 | |
通過使用有限的內(nèi)存和磁盤空間下載和上載數(shù)據(jù)來測試性能。 | |
分析以下類型的數(shù)據(jù): 線程數(shù)量 系統(tǒng)池資源 爭用 進(jìn)程工作集 系統(tǒng)隊(duì)列 進(jìn)程 CPU 上下文 內(nèi)存和 IO 網(wǎng)絡(luò) 系統(tǒng)資源 進(jìn)程可用性 異常 進(jìn)程資源 事務(wù)處理時(shí)間。 |
集成測試
集成測試可確保應(yīng)用程序與其他系統(tǒng)和組件配合工作。
表 9:集成測試定義
領(lǐng)域 | 定義 |
范圍 |
這些測試覆蓋了應(yīng)用程序與外部組件和已存在系統(tǒng)的集成。測試應(yīng)用程序與 Web 服務(wù)的交互就是一個(gè)示例。這些測試可驗(yàn)證整個(gè)工作流,以及組成應(yīng)用程序的各個(gè)組件之間的所有交互。 |
開始時(shí)間 |
在確定要求后,就應(yīng)該計(jì)劃這些測試。隨著不同系統(tǒng)部件的集成,測試的數(shù)量將不斷增加。 |
要使用的工具 |
不適用。 |
自動化 |
不適用。 |
表 10:集成測試
成功/失敗 | 測試 |
測試客戶端應(yīng)用程序代碼和 Web 服務(wù)之間的集成。 | |
測試工作項(xiàng)目的下載和隨后的已修改工作項(xiàng)目的上載。 | |
測試脫機(jī)狀態(tài)下工作項(xiàng)目的排隊(duì),以及重新聯(lián)機(jī)后排隊(duì)消息的處理。 | |
驗(yàn)證不同隊(duì)列提供程序與不同緩存提供程序的配合工作。 | |
在脫機(jī)狀態(tài)下將多個(gè)更新應(yīng)用到工作項(xiàng)目,并在重新聯(lián)機(jī)時(shí)檢查同步。 | |
測試在服務(wù)器端篩選參考數(shù)據(jù)的方法,以下載數(shù)據(jù)庫的適用部分。 | |
測試應(yīng)用程序可以根據(jù)服務(wù)器通知,為用戶顯示與其他用戶所作更改沖突的工作項(xiàng)目列表。 | |
測試應(yīng)用程序可以根據(jù)定義的時(shí)間段將日志與服務(wù)器日志進(jìn)行同步。 | |
測試在客戶端修改數(shù)據(jù)的同時(shí)、該數(shù)據(jù)正在服務(wù)器中進(jìn)行更新所導(dǎo)致的沖突情況。 | |
測試能否通過在服務(wù)器上添加新的數(shù)據(jù)(工作項(xiàng)目)來刷新客戶端。 | |
測試添加到客戶端的新數(shù)據(jù)(工作項(xiàng)目)能否與服務(wù)器進(jìn)行同步。 | |
修改服務(wù)器中工作項(xiàng)目的架構(gòu)并更新客戶端。 | |
測試兩個(gè)或更多獨(dú)立聯(lián)機(jī)客戶端同時(shí)更新服務(wù)器上的數(shù)據(jù)的情況。 | |
測試兩個(gè)或更多脫機(jī)客戶端修改數(shù)據(jù)并更新服務(wù)器的情況。 | |
確保測試用例覆蓋了所支持平臺上應(yīng)用程序工作流的驗(yàn)證。 |
內(nèi)容測試
內(nèi)容測試用于驗(yàn)證文檔的正確性。
表 11:內(nèi)容測試定義
領(lǐng)域 | 定義 |
范圍 |
這些測試可驗(yàn)證在安裝和操作過程中為用戶提供的說明內(nèi)容。這些測試覆蓋了補(bǔ)充的用戶指南和幫助文件。這些測試可驗(yàn)證內(nèi)容的使用性、正確性和完整性。 |
要使用的工具 |
內(nèi)容測試大多通過手動完成。熟悉應(yīng)用程序的使用性和測試工程師能夠指出矛盾或缺少的信息,以及應(yīng)用程序和文檔之間的差異。 |
要使用的工具 |
不適用。 |
自動化 |
不適用。 |
表 12:內(nèi)容測試
成功/失敗 | 測試 |
測試內(nèi)容在技術(shù)上的正確性。 | |
測試有關(guān)操作、流程和時(shí)間安排的步驟的順序是否正確。 | |
測試內(nèi)容的相關(guān)性。 | |
測試內(nèi)容不是模棱兩可并且是易于遵循的。 | |
測試內(nèi)容的一致和統(tǒng)一。 | |
測試內(nèi)容為每個(gè)主題都提供了完整的信息。 | |
測試需要進(jìn)一步說明的主題帶有有助于更好理解的適當(dāng)示例。 | |
測試主題帶有對相應(yīng)和相關(guān)主題的引用。 | |
測試內(nèi)容是否考慮到期望用戶的技術(shù)水平和熟悉的交流語言。 |
安裝測試
安裝測試用于驗(yàn)證應(yīng)用程序是否正確安裝在客戶端計(jì)算機(jī)上。
表 13:安裝測試定義
領(lǐng)域 | 定義 |
范圍 |
這些測試可驗(yàn)證應(yīng)用程序最后交付的功能和客戶端計(jì)算機(jī)上的安裝,并驗(yàn)證所有適用文件的交付。 |
開始時(shí)間 |
這些測試通常在開發(fā)和測試周期的最后進(jìn)行。 |
要使用的工具 |
要使用的工具包括 GUI 記錄和播放工具(應(yīng)該能夠自動運(yùn)行)。 |
自動角色 |
使用在功能測試過程中創(chuàng)建的版本驗(yàn)證測試 (BVT) 自動腳本,以便在安裝后快速驗(yàn)證應(yīng)用程序的主要功能。這就提供了驗(yàn)證安裝是否正確的快速方法。 |
自動工具 |
針對已安裝的應(yīng)用程序執(zhí)行 BVT 測試所使用的 GUI 記錄和播放工具。該工具提供了驗(yàn)證安裝的快速方法。 |
表 14:安裝測試
成功/失敗 | 測試 |
測試應(yīng)用程序安裝、運(yùn)行腳本時(shí)未出現(xiàn)錯誤,以及所有主要功能都能通過測試。 | |
測試安裝在客戶端計(jì)算機(jī)上的所有文件的版本(包括代碼和內(nèi)容)都正確。 | |
測試可以卸載應(yīng)用程序并測試清理的驗(yàn)證。 | |
在安裝中驗(yàn)證文件的命名標(biāo)準(zhǔn)。 | |
驗(yàn)證安裝程序在遇到錯誤情況(例如磁盤空間不足)時(shí)可以正常退出。 | |
在安裝過程中驗(yàn)證注冊表項(xiàng),以及在卸載過程中驗(yàn)證注冊表的清理。 | |
執(zhí)行全新的計(jì)算機(jī)安裝。這臺計(jì)算機(jī)帶有新安裝的操作系統(tǒng)和少量必需的已安裝組件。 | |
測試具有不同軟件配置的計(jì)算機(jī)上的安裝。 | |
測試安裝程序創(chuàng)建了正確的 Start 菜單項(xiàng)。 | |
測試安裝程序?qū)⑽募糜谡_的文件夾中。 | |
測試程序集是否在部署服務(wù)器上進(jìn)行加密和數(shù)字簽名,并在客戶端下載時(shí)進(jìn)行驗(yàn)證。 |