全球化測試的目的是檢測應(yīng)用程序設(shè)計(jì)中可能阻礙全球化的潛在問題。它確保代碼可以處理所有國際支持而不會(huì)破壞功能,導(dǎo)致數(shù)據(jù)丟失或顯示問題。全球化測試使用每種可能的國際輸入類型,針對(duì)任何區(qū)域性或區(qū)域設(shè)置檢查產(chǎn)品的功能是否正常。

  正常的產(chǎn)品功能假定該組件性能穩(wěn)定,能按照設(shè)計(jì)規(guī)范運(yùn)行(不考慮國際環(huán)境設(shè)置或區(qū)域性/區(qū)域設(shè)置),并且數(shù)據(jù)的表示方式正確。

  下列內(nèi)容必須是全球化測試計(jì)劃的一部分:

  決定每個(gè)組件的優(yōu)先級(jí)

  若要使全球化測試更有效,請(qǐng)為所有測試的組件分配測試優(yōu)先級(jí)。應(yīng)具有高優(yōu)先級(jí)的組件為: 支持 ANSI(美國標(biāo)準(zhǔn)學(xué)會(huì))格式的文本數(shù)據(jù) 大量處理字符串的組件(例如,具有許多編輯控件 (Edit Control) 的組件) 使用文件進(jìn)行數(shù)據(jù)存儲(chǔ)或數(shù)據(jù)交換的組件(例如,Windows 圖元文件、安全配置工具和基于 Web 的工具) 過去存在許多全球化問題的組件選擇測試平臺(tái)。

  那么,應(yīng)為國際測試平臺(tái)使用哪一種操作系統(tǒng) (OS) 呢?第一個(gè)選擇應(yīng)是安裝了語言組的 Windows 2000 的本地版本。例如,如果使用 Windows 2000 的美國版本,請(qǐng)安裝東亞語言組。這種組合對(duì)選擇的語言提供了完整的國際支持,而沒有對(duì)測試者的語言技能提出要求。

  即使是面向更廣泛的操作系統(tǒng),Windows 2000 也應(yīng)是主要的測試平臺(tái)。早期的操作系統(tǒng)在本地設(shè)置和本機(jī)支持方面,沒有為廣泛的語言和區(qū)域性或區(qū)域設(shè)置提供同樣的靈活性。

  還可以使用不同于 Windows 2000 的本地版本的其他平臺(tái): MUI(多語言用戶界面)Windows 2000 ? 當(dāng)代碼實(shí)現(xiàn)多語言 UI 而且必須調(diào)整到 OS 的 UI 設(shè)置時(shí)特別有用。這種方法是安裝 OS 的多個(gè)本地化版本的更容易實(shí)現(xiàn)的替代方法。為了進(jìn)一步增強(qiáng)多語言支持,Microsoft 提供了一個(gè)單獨(dú)的 Windows 2000 多語言版,它提供 Windows 用戶界面的多達(dá) 24 種本地化語言版本。有關(guān)更多信息,請(qǐng)參見多語言用戶界面 (MUI)。 目標(biāo) OS 的本地化版本 ? 德語或日語是好的選擇。記住,如果不熟悉操作系統(tǒng)的 UI 語言,使用它們可能比較困難。此方法并不比前面的解決方案有明顯的優(yōu)勢。

  通過測試發(fā)現(xiàn)的大多數(shù)全球化問題都發(fā)生在這兩種情況下:即東亞語言支持處于活動(dòng)狀態(tài)時(shí),或者 OEM 代碼頁不同于給定區(qū)域性或區(qū)域設(shè)置的 ANSI 代碼頁時(shí)。例如,可以在 Windows 2000 的美國版本中選擇下列區(qū)域性/區(qū)域設(shè)置來測試潛在的全球化問題: 日語 德語 盡可能采用兩者(一種為系統(tǒng)區(qū)域設(shè)置選擇,另一種為用戶區(qū)域設(shè)置選擇)的組合以包括多語言支持。

  如果安裝所有語言組,輪換使用區(qū)域性或區(qū)域設(shè)置,并按如下所述運(yùn)行“全球化”測試,則可以獲得全面的覆蓋范圍。

  創(chuàng)建測試環(huán)境

  為執(zhí)行全球化測試,必須安裝多個(gè)語言組并確保區(qū)域性或區(qū)域設(shè)置不是您的本地區(qū)域性或區(qū)域設(shè)置。如上所述,在日語環(huán)境、德語環(huán)境以及兩者的組合環(huán)境中執(zhí)行測試案例可以覆蓋大多數(shù)全球化問題。

  基本上,使用日語和德語環(huán)境創(chuàng)建世界通用的測試環(huán)境的步驟為: 在 Windows 2000 本地版本上,如果沒有安裝日語(或任何其他東亞地區(qū)語言)和德語支持(默認(rèn)情況下,Windows 2000 的美國版本安裝德語支持),請(qǐng)安裝它們。 將測試機(jī)器上的區(qū)域性或區(qū)域設(shè)置設(shè)置為與本地區(qū)域性或區(qū)域設(shè)置不同的區(qū)域性或區(qū)域設(shè)置(日語或德語)。 用 Windows 2000 系統(tǒng)的本地版本的混合環(huán)境建立一個(gè)分布式網(wǎng)絡(luò),將某些系統(tǒng)設(shè)置為日語區(qū)域性或區(qū)域設(shè)置,將其他系統(tǒng)設(shè)置為德語區(qū)域性或區(qū)域設(shè)置。

  將日語作為系統(tǒng)默認(rèn)區(qū)域性或區(qū)域設(shè)置進(jìn)行測試,可驗(yàn)證 ANSI(非 Unicode)組件中的雙字節(jié)字符集 (DBCS) 處理。將德語作為系統(tǒng)默認(rèn)區(qū)域性或區(qū)域設(shè)置進(jìn)行測試,可確保再需要進(jìn)行文本轉(zhuǎn)換時(shí)能夠正確處理 ANSI 和 OEM 代碼頁。建立分布式混合網(wǎng)絡(luò)環(huán)境可以驗(yàn)證數(shù)據(jù)是否可以在不同的區(qū)域性或區(qū)域設(shè)置之間成功傳遞。

  執(zhí)行測試

  在為全球化測試設(shè)置好環(huán)境后,當(dāng)運(yùn)行常規(guī)測試案例時(shí),必須特別注意潛在的全球化問題: 將重點(diǎn)更多地放在直接或間接處理字符串輸入/輸出的測試案例上。 測試數(shù)據(jù)必須包含來自東亞語言、德語、復(fù)雜腳本字符和英語(可選)的混合字符;其中復(fù)雜腳本字符指阿拉伯語、希伯來語、泰語。某些情況下有限制,比如接受只匹配區(qū)域性或區(qū)域設(shè)置的字符時(shí)。如果不熟悉準(zhǔn)備測試數(shù)據(jù)所用的語言,則手動(dòng)輸入所有這些測試數(shù)據(jù)可能很困難。一個(gè)簡單的 Unicode 文本生成器在此步驟中可能非常有用。識(shí)別問題

  嚴(yán)重的全球化問題是丟失功能,包括立即丟失功能(區(qū)域性/區(qū)域設(shè)置更改時(shí))和以后訪問輸入數(shù)據(jù)(非美國字符輸入)時(shí)丟失功能。

  某些功能問題和顯示問題一樣是可以檢測到的: 出現(xiàn)問號(hào) (?) 而不是顯示文本表示問題出在 Unicode 到 ANSI 的轉(zhuǎn)換中。 如果出現(xiàn)隨機(jī)高位 ANSI 字符(如 ¼、†、‰、‡ 和 ¶)而不是可讀的文本,則表示問題出在使用錯(cuò)誤代碼頁的 ANSI 代碼中。 如果出現(xiàn)方框、豎條或鼻音化符號(hào)(默認(rèn)的標(biāo)志符號(hào))[□、|、~],則表示所選字體無法顯示某些字符。

  在要求變形、布局或腳本知識(shí)的顯示或打印結(jié)果中找出問題可能很困難。這種測試是語言特定的,在沒有語言專門知識(shí)的情況下通常無法執(zhí)行。另一方面,測試可能于代碼檢查。如果使用標(biāo)準(zhǔn)文本處理機(jī)制形成并顯示輸出文本,則可以認(rèn)為這方面是安全的。

  潛在問題的另一個(gè)方面是未能遵循由當(dāng)前區(qū)域性或區(qū)域設(shè)置定義的本地約定的代碼。確保應(yīng)用程序根據(jù)計(jì)算機(jī)的當(dāng)前區(qū)域設(shè)置顯示區(qū)分區(qū)域性或區(qū)域設(shè)置的數(shù)據(jù)(例如,數(shù)字、日期、時(shí)間、貨幣和日歷)。

  “控制面板”中的“區(qū)域選項(xiàng)”并未包括所有區(qū)域性或區(qū)域設(shè)置特定的功能。例如,在那里看不到當(dāng)前的排序順序。因此,在開始測試前制定一個(gè)包括與區(qū)域性或區(qū)域設(shè)置有關(guān)的所有功能方面的測試計(jì)劃很重要。