前言:
隨手開啟MEDC 2007的課程列表頁面,看到了一個課程的標題《使用Windows Mobile Test Framework進行自動化測試》,突然想起來新的Windows Mobile 6 SDK中似乎包含這個叫做什麼Windows Mobile Test Framework的東東,於是乎開啟WM6的安裝目錄下的Tools\Windows Mobile Test Framework\Windows Mobile Test Framework.zip這個zip包瞅一瞅。
真是不看不知道,一看嚇一跳。。。。。。微軟居然把這個架構單獨發布出來了。其實這套東西貌似在Windows CE 5的CE Tool Kit中就包含,不過現在貌似把它單獨提出來進行推廣了。那麼,我也來寫一個關於它的系列和大家來研究研究這套Windows Mobile Test Framework吧。
一、微軟Windows Mobile Test Framework簡介
Windows Mobile Test Framework(以後簡稱為WMTF)是微軟內部使用的一套Windows CE/Windows Mobile上的自動化測試架構。使用這套架構,我們可以很方便的用它來類比使用者來對您的程式進行操作,來進行功能/UI/本地化等多種測試。
此架構的整體結構如所示:
綠色部分為微軟在這個Windows Mobile Test Framework中所提供的。
橙色的UIAL,為我們需要使用微軟在Windows Mobile Test Framework中的工具來自己生產且做少量修改工作的。
藍色部分為需要我們大家自己來完成的部分。
二、Windows Mobile Test Framework各層次介紹
1) Utils.Net:
這一層提供了很多在其他各個層次中經常需要用到的公用對象或者是一些在.NET Fx中有而在.NET CF中被省略了的對象,例如進程/裝置資訊/記憶體/註冊表等等等等。。。。。。
2) Logging:
這一層顧名思義,當然是封裝了日誌記錄的功能,用來記錄測試中的過程和結果。當然,這套Logging機制非常不錯,不但在這裡可以用,您甚至可以把它用於開發過程中甚至是傳統型程式開發中。
3) DATK:
DATK的全稱是Device Automation ToolKit。它是一套影射了所有的Windows CE上的標準控制項的一套類庫。例如文字框,列表框,按鈕等等。同時,在這一層還有一個主要的對象叫做WindowsFinder,它幾乎可以說是DATK甚至是WMTF的核心部分。您可以通過它來制定條件(例如類型,文本,進程等等)來尋找到某一個控制項,然後把這個控制項綁定到一個DATK控制項上,然後您的代碼來操作這個DATK 控制項就可以實現對實際的控制項的調用。這其實就是Windows Mobile Test Framework的核心部分。
4)Mobility ToolKit:
以後我們將它簡稱為MTK。MTK裡面主要在DATK的基礎上增添了許多針對行動裝置特有的對象。可以認為它是DATK的一個擴充。
5)UIAL:
UIAL(UI Abstraction Layer),它是您要測試的應用程式的介面的一個影射。您必須為您的需要測試的每一個介面建立對應的UIAL層代碼(藉助微軟提供的工具),這樣才可以對程式進行測試。一個典型的UIAL層代碼通常包含4部分。
A. 對話方塊類:它是你要測試的那個對話方塊的一個影射,同時這個類裡面也應該包含該介面上面所有控制項地應的DATK控制項。
B. 應用程式類:用來啟動該對話方塊。
C. IdnHolder類:用來尋找對話方塊中的本地化資源文字。
D. 自測試代碼:赫赫。。。從這一層起,就需要做測試了。
6) Area Libraries:
在這一層我們通常來封裝一些可以複用的步驟。舉例來說,您的測試程式中需要開啟某一個對話方塊,而這個步驟顯然是可以複用的(也許為了測試不同的地方我們需要反覆的開啟這個對話方塊)。那麼我們就可以把這個開啟程式,然後再開啟該對話方塊的步驟封裝到Area Libraries便於以後複用。
7)Test Cases & Test Suites:
這一層我們通常簡稱為Tests層,顯然,在這一層我們用來編寫我們的測試代碼。和NUnit之類的很相似。使用Suite來把一些Test Cases組織到一起。
最終,測試引擎Tux.NET將調用Tests層中的測試代碼,按照您的測試指令碼來測試程式。
好了,這裡您大概也許對Windows Mobile Test Framework有了個初步的印象了吧?也許還很暈,赫赫。。。沒關係,在後面的章節中我將會陸續帶領大家走進去探個究竟。