Windows Embedded Standard 7中的驅(qū)動程序質(zhì)量控制
原創(chuàng)【51CTO獨家譯稿】Windows Embedded Standard 2011中最出色的特性便是可以使用跟Windows 7中一樣的驅(qū)動程序。這意味著我們可以調(diào)用范圍非常寬的驅(qū)動程序(500多個),這些驅(qū)動已經(jīng)通過了Windows團隊的廣泛測試。對于Windows Embedded Standard 2011來說,我們想讓用戶可以靈活的設(shè)置他們想要的驅(qū)動程序運行時間。
為了達到這個目的,大多數(shù)驅(qū)動程序跟基本W(wǎng)indows Embedded Standard 2011鏡像(名字叫做eCore)分開打包,這樣用戶可以把他們加入到自己想要的鏡像中去。而基本鏡像同時也跟一些驅(qū)動一起打包,但是這些驅(qū)動程序只跟計算機必要的關(guān)鍵操作有關(guān)。對于測試Windows Embedded Standard 2011中的驅(qū)動程序來說,我們不可能重復(fù)所有Windows團隊所做的測試。雖然我們的確想運行所有主要測試種類的測試項目,但在大多數(shù)情況下我們還是集中精力測試那些Windows Embedded Standard 2011跟Windows7不同的地方。
#T#舉個例子,在Windows Embedded Standard 2011中,用戶可以添加或者去除他們所選擇的功能,所以運行時(runtime)環(huán)境可能跟最開始的建立驅(qū)動時的Windows 7環(huán)境大不一樣。如果驅(qū)動程序?qū)τ跊]有被添加到運行時的服務(wù)、文件、注冊鍵等等有依賴性,就會出現(xiàn)問題。為了減少這種問題我們已經(jīng)分析了每個驅(qū)動程序的依賴關(guān)系。如果一個驅(qū)動程序?qū)σ粋€不包括在基本鏡像中的功能依賴,那么這個信息就被添加到驅(qū)動程序包的元數(shù)據(jù)中。這樣,當選擇一個驅(qū)動程序包時,你就會知道這個驅(qū)動是否還需要其他的包才能工作。因為基本W(wǎng)indows Embedded Standard 2011鏡像被設(shè)計成一個獨立的工作單元,里面的驅(qū)動程序?qū)︾R像外部沒有依賴性。但是我們并不僅僅依靠這個依賴性分析;我們還要進行依賴性問題的運行時檢查。為此,我們測試了最起碼需要添加的功能。我們還充分利用Windows功能團隊所做的測試、運行不同的用戶方案等,這樣會讓我們的覆蓋面更廣。
另一個跟Windows 7有些不同的地方是驅(qū)動程序包的安裝。雖然我們使用了很多跟Windows7桌面操作系統(tǒng)一樣的東西,但是我們也建立我們自己的包,并多次把他們添加到同一個鏡像中。你可以通過安裝程序來安裝驅(qū)動程序包,也可以在運行時再安裝。當用安裝程序運行時,你可以利用一個unattend文件來選擇具體的驅(qū)動程序,或者你可以利用安裝程序的驅(qū)動自動布局功能讓驅(qū)動程序跟你的設(shè)備自動配對。在安裝了Windows Embedded Standard 2011以后,你可以在線添加包或在從另一個驅(qū)動器進入WinPE2.0時添加包。每種安裝方法都經(jīng)過了測試,但還是需要去驗證不同階段的安裝是否正確。我們必須檢查“包”安裝,主要內(nèi)容是驗證是在哪些地方把文件放置到了鏡像中。然后,我們來討論第二種安裝驅(qū)動程序的方法,Windows Embedded Standard 2011中的Windows7組件對驅(qū)動程序和設(shè)備進行配對,然后安裝驅(qū)動。我們需要驗證驅(qū)動程序運行時沒有出現(xiàn)錯誤,然后把驗證擴展到我們的功能設(shè)置測試。同樣,還需要處理用戶一次性安裝多個包的情況,所以我們強調(diào)系統(tǒng)需要具備***數(shù)量的包。***,我們測試驅(qū)動程序包是否能夠升級。
前面提到,我們要建立自己的驅(qū)動程序包,所以必須保證有效載荷是正確的,并且包含的元數(shù)據(jù)是正確的。如果包建立的不好,那么可能會影響安裝,影響安裝程序的驅(qū)動自動布局功能,影響包依賴分辨率,或者影響包的服務(wù)。每個包都有一個部署清單、一個升級清單、驅(qū)動程序安裝文件,還有驅(qū)動程序所需要的文件。這些包含元數(shù)據(jù)的文件中含有連接數(shù)據(jù)、編譯數(shù)據(jù)、安裝數(shù)據(jù)等,這些數(shù)據(jù)都需要驗證。我們還有跟這些包相關(guān)的編譯文件,這些文件可以幫助確定我們有什么包,或者有什么語言資源。自動化功能是日常用來驗證所有這些因素的工具。另外,我們通過上面提到的安裝測試補充了包驗證。
上面我們已經(jīng)討論了我們應(yīng)該在Windows 7和Windows Embedded Standard 2011之間的區(qū)別中考慮些什么東西,但是我們也應(yīng)該測試一些更加典型的測試區(qū)域。我們測試的其他種類還包括特別設(shè)備、硬件覆蓋、性能、應(yīng)力、應(yīng)用兼容性、集成測試和語言測試。我們盡可能的利用Windows團隊的測試,但當需要對一個測試領(lǐng)域進行測試時,我們也應(yīng)該建立測試項目和測試自動化功能。