日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Develop Internationalized Software

發布時間:2025/3/17 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Develop Internationalized Software 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

Develop Internationalized Software<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

?

1.?? Glossary

開發國際化軟件包含很多專業術語,現在將常用的列舉如下:

1、 國際化(InternationalizationI18N

軟件國際化是在軟件設計和文檔開發過程中,使得功能和代碼設計能處理多種語言和文化傳統,使創建不同語言版本時,不需要重新設計源程序代碼的軟件工程方法。由于單詞較長,為了便于書寫,將中間的18個字母省略,簡寫成I18N

2、 全球可用(Word-Ready

適當地國際化設計,可以方便地實現本地化的程序。國際化軟件的設計目標就是設計成全球可用軟件程序。

3、 本地化能力(Localizability

本地化能力是表征國際化軟件實現本地化的難易程度的指標。良好的軟件國際化設計是增強本地化能力的基礎,可以降低軟件本地化過程的成本。

4、? 單一二進制(Single binary

國際化軟件中的完全國際化的二進制功能文件,不用再做修改即可用于該軟件的任何本地化的語言版本。

5、? 區域(Locale

區域指的是與某個地方或者某種文化關聯的一組信息。也就是說,區域是由語言、國家/地區,以及文化傳統確定的用戶環境特征的集合。

6、? 硬編碼(Hard-coding

軟件工程師在進行國際化軟件編碼時,把需要本地化的字符串放在程序的主體代碼中,而不是放在外部可以易于本地化的資源文件中;基于假設的字符串長度,設定字符串的長度數值常量;在代碼中對需要本地化的關于語言或文化方面的任何假設(例如日期和時間格式等)。軟件國際化設計應該避免任何硬編碼,以提高本地化能力。

7、? 偽本地化(Pseudo localization

偽本地化是自動模擬本地化過程,并且構建和測試模擬的本地化版本的過程。把軟件中的需要本地化的字符串轉變為偽字符串,用來國際化軟件的本地化能力,包括本地化功能和外觀。

8、? 國際化功能測試(Internationalized functionality testing

軟件經過國際化設計后,對軟件的國際化功能和國際化支持程度的測試,用來驗證軟件的全球可用性和軟件的本地化能力。

9、 雙向語言(bi-directional language)

對于希伯萊語或阿拉伯語,文字是從右向左顯示;而其中的英文單詞或商標符號從左向右顯示;對于中文,都是從左向右顯示。

10、????????????? 編譯版本(build)

軟件開發過程中編譯的用于測試的內部版本。一個大型的軟件項目通常需要執行多個內部版本的測試,因此需要按計劃編譯出多個版本用于測試。

11、????????????? 代碼頁(code page)

字符集和字符編碼方案。對每一種語言字符,都用唯一的數字索引表示。

12、????????????? 偽翻譯(pseudo translation)

將軟件中的可以翻譯的字符串用長的本地化的字符代替的自動或手工處理的過程,主要用于發現編譯和執行本地化文件時潛在的問題。

2.?? World-Readiness

World-Ready software是指完全國際化的且易于本地化的軟件。World-Readiness全球可用)包括兩個方面:全球化(Globalization)和本地化能力(Localizability)。World-ReadinessLocalization(本地化)一起構成了國際化軟件的基礎。

開發國際化軟件,首先需要在軟件需求規格說明書中明確World-Readiness需求,這些需求大致應涵蓋:

1、? Globalization——全球化方面的需求。

2、? customizing features——客制的特性。

3、? MUI——可本地化的UI的需求約束。

4、? legal issues——相關法律條文。

5、? accessibility of features——可達成的特性。

6、? target languages——將要翻譯成的語言。

7、? locale-aware feature's behavior——特定區域中特性的不同行為。

開發國際化軟件的平臺是操作系統,它必須符合國際化軟件的需求。另外,還需要一些專業工具和輔助工具,比如翻譯軟件、自動化測試工具、資源文件查看和編輯工具、文檔處理工具和通信工具等等。

2.1. Globalization

全球化是指:開發特性和代碼設計都不僅僅基于某一種語言的核心程序的過程。其輸入、顯示和輸出都是使用Unicode編碼的,而數據和特定的區域相關。它是指軟件內建的可以支持所有的目標語言和區域的能力,它是包括以下任務的一個過程:

1、? 明確需要支持的語言和區域。

2、? 設計時需要考慮到所支持目標市場、語言和區域。

3、? 對于所有軟件支持的區域,編寫的代碼所具有的功能完全一致。

這些任務都集中于“locale-awareness”的概念。另外,全球化的第二個方面包括為內部處理編碼數據以及和其它應用程序共享數據。第三個方面為輸入、輸出和顯示數據給用戶。

開發國際化軟件的步驟:

1、? Use Unicode

2、? Make application locale and culture aware

3、? Designing application’s text output, and declaring with fonts in a multilingual context

4、? Deal with MUI(Multilingual User Interface)

2.1.1.??? Use Unicode

開發全球化的第一步就是使用Unicode編碼。

?

Unicode的簡介:

Unicode是一種字符編碼方法,它是由國際組織設計,可以容納全世界所有語言文字的編碼方案。Unicode的學名是"Universal Multiple-Octet Coded Character Set",簡稱為UCSUnicode Character Set)。UCS規定了怎么用多個字節表示各種文字。UCS有兩種格式:UCS-2UCS-4——UCS-2就是用兩個字節編碼,UCS-4就是用4個字節(實際上只用了31位,最高位必須為0)編碼。而怎樣傳輸這些編碼,則是由UTF(UCS Transformation Format)規范規定的,常見的UTF規范包括UTF-8UTF-7UTF-16UTF-32UTF-8以字節為編碼單元,沒有字節序的問題;UTF-16以兩個字節為編碼單元,存在編碼單元的字節序的問題,這靠BOMByte Order Mark)來區別Big-EndianLittle-Endian

?

WindowsUnicode的支持:

WindowsWindows NT3.1開始支持UnicodeWindows NT 4Windows 2000Windows XP Unicode作為其 native encoding。基于Windows NT的操作系統使用的是UTF-16。所以通常我們應該使用UTF-16

?

創建Win32 Unicode Application

數據類型:使用TCHAR_TCHARLPTSTRLPTCH,而不要使用charLPSTRLPCH

API:使用generic function prototypes,在自定義function的時候也必須使用Unicode Version

使用TEXT macro:將“L”加在一個字符串的前面來表示其為Unicode字符串。

編譯: Win32 編譯時標志 -DUNICODE C 運行時編譯時標志-D_UNICODE 都必須被定義。

2.1.2.??? Locale and Cultural Awareness

使用了Unicode編碼僅僅是國際化軟件的一部分。有很多因素需要考慮,其中包括Locale and Cultural Awareness,它主要體現在語言規則和文化習慣,比如日期、時間、日歷、貨幣符號、地址、紙張大小、電話號碼和度量單位等。

2.1.3.??? Text Input, Output, and Display

需要作下面的事情:

1、? 使得應用程序能處理不同的輸入語言和方法。

2、? 正確顯示所支持的語言文字。

3、? 通過平衡對語言處理的系統支持,懂得用來顯示文本的不同選項(Understand different options for displaying text by leveraging system support for multilingual computing.

4、? 學會如何處理字體。

對于Input和顯示不同語言的文字,Windows已經提供了很好的支持。

2.1.4.??? Multilingual User Interface (MUI)

國際化軟件的終極目標是授權給用戶能以任何語言訪問和操作數據。

WindowsWindows2000開始MUI

啟用MUI本質上必須作:

1、? 將注冊表中的string轉移到資源文件中。

2、? 從內核將可本地化的string移除。

3、? 使用MUI-enabled shell去顯示本地化的內容(比如開始菜單、快捷方式等)。

4、? 防止開發者將文件路徑硬編碼(hard-coded)。

5、? 如果使用了非傳統的Win32資源(比如XMLHTML),則阻止每個組件中的特定代碼安裝和加載資源文件。

?

實現MUI的三種方法:

1、? 為每種語言編譯一個binary。此方法通常運用于老版本的windows

2、? 編譯一個語言上中立的binary,帶有一個含有多種語言支持的資源動態鏈接庫(DLL)。

3、? 編譯一個語言上中立的binary,每個語言一個資源DLL。是目前廣泛采用的一種方法。

?

MUI in Win32 Applications

1、? 檢測操作系統的UI使用的語言。

2、? 獲得應用程序能支持的語言列表。

3、? 根據操作系統的UI語言,加載合適的資源DLL

4、? 允許用戶選擇不同的UI語言。

?

Web內容:

1、? 將資源存儲在數據庫、XML文件或者資源文件中。

2、? 使用變量引用string 資源。

3、? 檢測在初始化時顯示的語言。

4、? 在顯示時加載合適的資源。

2.2. Localizability

本地化能力是軟件具有被本地化的能力——在不改變軟件功能和代碼的情況下,可將軟件本地化為任何語言。它可以分為軟件本地化能力和內容本地化能力。

?

Software Localizability Guidelines

1、? 獨立可本地化的資源。

l???????? 不要將不需要本地化的資源和可本地化的資源存放在一起。

l???????? 將可本地化的資源都存儲于resource? repository(比如資源文件、數據庫等)中。這些資源包括——UI 資源(比如菜單、按鈕、工具欄等);用于改編產品的資源(比如區域信息、文件名、賬戶名等),這些資源如果本地化不當會影響到軟件的功能,最好不要存在應用程序內部,且令這樣的資源越少越好。

l???????? 使用API去獲取系統的本地化的值(比如使用SHGetFolderPath函數獲取本地化的文件夾路徑)。

l???????? 可以將不需要本地化的資源放入頭文件中。

l???????? 不要輕易改變資源的ID

2、? 處理String

l???????? 避免運行時合成字符串。比如對于可以枚舉的少數動態情況,“Are you sure you want to delete the+一個變量(可能是filedirectory),應該改變為兩個完整的提示信息"Are you sure you want to delete the file?""Are you sure you want to delete the directory?"

l???????? 如果必須使用變量(字符串中有占位符),則應該使用唯一的名字。比如將"Not enough memory to %s the file %s."改變為"Not enough memory to %1 the file %2."

l???????? 使用FormatMessage來格式化消息。

l???????? 盡量保持一個句子完整。顯示給用戶的信息最好是一個string就是一個完整的句子,以便于理解和本地化。

l???????? 觀測stringBuffer Sizes。由于不同的語言表達相同的意思所使用的字符個數不同,編碼不當會造成緩沖區溢出(buffer overruns)的錯誤。

3、? UI的本地化能力的考慮。

l???????? 為控件預留較多的空間,比如將Label放在Edit上方,以給LabelEdit都留下比較大的空間來顯示字符。

l???????? 令對話框可以改變大小。

l???????? 界面上使用完整的語句,而不是把一個語句分割在控件兩邊。

l???????? 不要將某些控件(比如ButtonDropdown)置于其它控件之上;后者將控件隱藏于其它控件背后。

l???????? 不要將ButtonText和某個變量聯系在一起,即其Text不應該是動態的。

l???????? 避免使用特定文化的圖片和圖標,而應該使用中性的標志。

l???????? 避免使用肢體圖片。

l???????? 避免Gender-Specific Roles and Ethnic Stereotypes

l???????? 避免宗教相關的引用。

l???????? 避免政治符號。

l???????? 避免圖片文字。如果將文字嵌入圖片中,則不利于本地化。

?

Mirroring

如果需要支持阿拉伯文,則需要考慮Mirroring

Content Localizability Guidelines

隨著產品發布還有相關文檔(比如幫助文檔),它們需要滿足:

1、? 內容盡量簡單明了。

2、? 內容(文字、藝術,多媒體)必須是文化上可接受的。

3、? 內容必須遵從一致的模式。

4、? 不管用戶選擇什么區域,幫助系統的功能都是一樣的。

3.?? Localization

主要是大量的翻譯工作——包括產品中的所有textmenus dialog boxesbuttonswizardsonline Helpprinted documentation packagingCD labels multimedia files。這其中需要考慮每個區域特定的因素(比如文化習慣、法規等等)。

4.?? Testing

開發國際化軟件是需要整個開發流程都以國際化為目標——包括需求、設計、編碼,還有測試。

4.1. Testing for World-Readiness

World-Readiness軟件測試包括軟件國際化測試和軟件本地化能力測試。軟件的國際化測試是重要的測試階段,必須在本地化測試之前進行測試。國際化軟件的測試目的是判斷軟件的國際化程度,確定軟件是否支持可能的任何區域,是否可以容易地進行本地化。

4.1.1.??? The Approach to Testing

老的測試方法(測試每個語言版本的功能、本地化的正確性等)是較為低效的,如果軟件需要多支持一倍語言或區域,則必須付出多一倍的資源,即使有兩個區域是非常相似的,也不能保證在其中一個區域運行良好的軟件能在另外一個區域正常工作

?

通過使測試全球化,我們可以使測試變得容易和有效率。這里有一個重要的概念“enablingAltering program code to handle input, display, and editing of bidirectional or East Asian languages, such as Arabic and Japanese, respectively.)”——修改程序代碼分別處理雙向語言或東亞語言的輸入、顯示和編輯,比如阿拉伯文(從右向左書寫文字)和中文。在正確地做了“enabling”后, 全部world-ready 的應用都能處理底層平臺支持的所有語言。因此,我們不是去測試每個本地化版本的功能,而是為核心產品測試被全球化的功能。但這并不是說就根本不用去測試每個本地化版本了,不同于老的測試方法的地方是——我僅僅需要檢查產品對于給定的區域或語言適應得如何(we only need to check how well the product was adapted for a given locale or languageto verify that localization does not break globalized and localizable resources);此時,測試人員此門語言的掌握程度成為關鍵因素。

在進行本地化之前,必須確保軟件是國際化的和易于本地化的。如果產品核心開發和測試滿足了word-ready標準,則軟件的多語言sim-ship是可能的;本地化能力測試應當和國際化功能測試并行;在代碼足夠穩定后就開始進行本地化,且僅在本地化能力測試的初始階段開始后。將國際化思想貫穿整個開發的各個階段,測試和開發同步進行。這樣的好處是,很多軟件缺陷(核心功能缺陷和國際化缺陷)可以在軟件開發階段修正,從而軟件本地化變得非常容易進行,減少了軟件本地化后的缺陷。

?

?

Testing process required for shipping an internationalized product

?

測試不再是開發后的一個被動執行的過程,盡早介入測試可以發現、報告和修正軟件缺陷,由于國際化不再是一個單獨的過程,所以軟件的功能測試、國際化測試將同步進行。這樣即使沒有本地化Build,測試人員可以使用偽本地化版本進行“偽本地化測試”,以便發現本地化能力方面的缺陷。

4.1.2.??? Globalization of the Test

我們最先開始的就是驗證軟件的功能是否全球化了。即檢查其是否滿足全球化的條件:

1.? 基于Unicode。即能正確處理任何Unicode text,處理多語言文本時沒有數據丟失。

2.? 如果需要進行文本轉換,是否選擇了正確的編碼。

3.? 代碼遵從用戶特定的文化設置。系統區域僅影響編碼轉換(encoding conversions),用戶區域設置只定義了date timenumber currency formattingcalendar sorting 設置。

?

在進行測試之前,需要作一些準備工作:

1、? 將需要測試的內容劃分成幾個部分。

2、? 確定一個測試的優先順序,優先測試對全球化影響大的組件。比如未處理未進行Unicode編碼的數據的組件、大量處理文本數據的組件、操作文件進行存儲和數據交換的組件等等。

3、? 選擇一個合適的測試平臺,比如English Windows XP(它能讓我們自由調整區域和語言設置)。

4、? 建立測試環境。模擬一些多國語言的場景以檢查軟件是否能正常工作,比如:對于分布式系統,檢查其是否能在不同區域的系統間正確地交換數據;組件是否能正確處理和尊崇用戶的區域設置等等。

?

執行測試:

為了進行國際化的測試前,需要國際化測試數據(比如使用不同于系統區域的其它區域的Unicode text、各種語言文字混合的文本、特定區域的一些特殊要求),測試覆蓋到了各個功能,認清國際化問題(globalization problems)——比如不能正確地顯示文本。

?

測試方法:

1.? 測試通用功能。

l???????? 在各種語言環境下安裝應用程序。

l???????? 各種系統和用戶區域設置的通用功能。

l???????? 通過各種區域設置卸載應用程序。

2.? 測試文本處理功能。

l???????? 使用不同區域的輸入法編輯器交互式文本輸入。

l???????? 多語言文本的剪貼板操作。

l???????? 用戶界面的文本處理。雙字節字符集的輸入和輸出。

l???????? 多字節字符集文本的緩沖區大小的處理。

3.? 測試區域特征功能。

l???????? 遵循區域標準,正確輸入、存儲并檢索區域特定數據。

l???????? 驗證帶有數據分割符的輸入時間、日期和數值。

l???????? 紙張和信封的大小和打印的正確性。

l???????? 區域有關的度量衡的處理功能。

4.1.3.??? Localizability Testing

本地化能力測試的目標是被測試過的軟件的UI能被很容易地翻譯成為目標語言而不需要重新設計或者修改代碼。由于其bug必須在開發階段被修正,所以應該盡可能地在開發的早期就進行檢查。但是不幸的是,這些bug通常要到做本地化的是否才能發現;此外,本地化只有在代碼完成后且趨于穩定的時候才會進行,所以不可避免地在開發和本地化之間有一個很長的時間跨度。解決此矛盾的辦法如下:

1、? 運行一個pseudo-localized版的程序。偽本地化版本測試可以不用實際本地化,就能夠發現在本地化過程中的用戶界面的翻譯錯誤。鏡像技術也是偽本地化版本測試的常用技術,發現一些本地化過程中的控件布局方面的錯誤。

2、? Code review。檢查代碼以發現代碼中存在的違反Localizability的問題(比如必須將coderesource隔離開、不能在運行時控制UI控件的位置和標簽(caption),圖標和圖片不能含有文字、不存在對驅動器和文件名或者注冊鍵的假設等等)。

3、? Review UIdocumentation。確保用戶界面和文檔中所用的術語清晰、一致、明確。當用戶界面和文檔提到相同的特性,使用的術語不一致,或者當文檔使用了太多的技術行話時,會使本地化過程增加很大難度。如果本地化能力依賴于偽本地化,更應該注重檢查文檔的內容。

4、? 運行一個試驗性的項目(project)。雖然針對偽本地化版本的測試能夠發現很多本地化能力方面的問題,但是仍然不能代替對實際的本地化版本進行本地化能力的測試。在選擇合適的本地化版本時,通常考慮以下方面:

l???????? 選擇熟悉的可以迅速創建和測試的本地化語言版本。

l???????? 選擇特別容易暴露本地化問題的語言版本。

l???????? 選擇非常重要的目標市場的語言版本。

4.1.4.??? Localization Testing

本地化測試檢查軟件是否恰當地被翻譯為目標語言。它建立于國際化測試基礎之上,如果產品不是足夠國際化的以支持該語言,那根本沒有必要開始進行本地化。

軟件本地化測試的目的是為了發現和報告本地化軟件的錯誤和缺陷。通過對這些錯誤和缺陷的處理,確保本地化軟件的語言質量、互操作性、功能等符合軟件本地化的設計要求,滿足當地語言市場用戶的使用要求。通過分析錯誤產生的原因和錯誤的分布特征,可以幫助項目管理者發現當前所采用的軟件過程的缺陷,以便改進。同時,這種分析也能幫助設計出有針對性的檢測方法,改善測試的有效性。

?

Localization Testing需要關注的方面:

1、? Things that are often altered during localization, such as the UI and content files

2、? Culture-specific, language-specific, and country-specific areas

3、? The availability of drivers for local hardware and the encryption algorithms incorporated into the application

4、? The rules and regulations for distribution of cryptographic software differ from country to country

5、? The customization that could not be automated through the globalization services infrastructure (Win32 NLS APIs and the .NET Framework)

6、? Basic functionality tests; setup, upgrade, and uninstall tests that are run in the localized environment

7、? Application and hardware compatibility tests according to the product's target market

重點是發現軟件因本地化產生的錯誤。不要過多的耗費時間測試軟件的功能,因為本地化測試前,源語言軟件已經進行過功能測試和國際化測試。所以,應該將本地化測試的重點放在本地化方面的錯誤。

?

使用的平臺:

建議使用English Windows XP

?

UILocalization Testing

1、? 當應用程序運行了某些進程(比如運行了一些windows 服務),要特別注意應用程序的行為。比如UI上使用的是用戶設置的區域設置,而后臺服務使用的操作系統的區域設置。

2、? 驗證所有的應用程序資源。

3、? 驗證語義準確性和資源屬性。

4、? 檢查排字錯誤。

5、? 檢查各種文檔(比如用戶手冊、在線幫助、消息通知等)是彼此一致的。

6、? 確認遵從系統、輸入和顯示環境的標準。

7、? 檢查UI的可用性。

8、? 確認文化上的適應性。

9、? 檢查政治上敏感的內容。

10、????????????? 確保關于本公司的信息(聯系信息、產品支持服務電話)都是最新的。

11、????????????? 產品發行地的法律規定。

4.2. Testing Localizability with Pseudo-Localization

偽本地化將產品中的那些文本(字符串)翻譯為偽字符串,這樣產生的偽語言(pseudo-language)就用來測試不同方面的本地化對產品的功能和外觀會產生怎樣的影響。“不同方面的本地化”包括用不同字符集的字符來翻譯字符串以及加長的字符串,還有對圖片、圖像聲音、文檔內容的偽本地化,以及偽翻轉(pseudo-mirroring)等。通過將產品偽本地化,可以得到產品的偽本地化版本。使用偽本地化技術,我們可以不必等到真正的本地化過程才開始國際化測試。隨著產品的開發進程,產品變得日益復雜,對偽本地化版本的測試應當成為國際化測試的一個部分,它可以幫助我們發現那些產品的本地化能力bug。偽本地化測試工作可以使用自動化測試工具來進行,一般自動化測試工具都有此功能。

?

本地化能力bug的分類:

l???????? 需要本地化的資源沒有暴露給本地化人員。

l???????? 需要本地化的文件的格式不是可以被本地化的格式,或者被Hard-Coded到了源代碼中。

l???????? 將不需要本地化的字符串進行了本地化。

l???????? 非拉丁字符導致了功能或者表面問題。

l???????? 字符串長度的擴展導致了緩沖區溢出錯誤。

l???????? 功能性字符串沒有被一致地本地化。比如文件名。

l???????? 產品不能修改以適應本地化要求。比如和特定區域相關的字體、字典等。

l???????? 產品的UI不能進行翻轉(mirroring)。比如阿拉伯文是從右至左書寫文字的。

l???????? 在運行時生成字符串和調整UI。這樣的字符串和UI根本無法進行本地化。

4.3. The Role of Test Tools

測試工具在測試過程中起著很重要的作用,尤其是自動化測試工具。雖然自動化測試工具不能完全代替手工測試,但是在很多領域它都發揮了巨大的作用。通過在初始版本和本地化版本上運行自動化測試,可以檢驗本地化是否破壞了功能。另外,確保被國際化的產品在多種不同的環境下測試,進行大范圍輸入數據的測試。

為能正確地測試全球化軟件,測試工具本身必須要求是全球化的軟件,它能自動根據區域設置調整自己,并且能夠處理國際化文本數據。另外,如果它必須通過名字來訪問本地化對象,則測試工具必須被本地化的。如果工具本身存在一些局限性,可以作一些工具來有效利用工具:

1、? 通過資源的identifiers, ordinal numbers, 或者 window classes來訪問對象,而不是caption

2、? 將文本資源從代碼中獨立出來以方便本地化。

5.?? Tools and Utilities

5.1. pseudoLocalizer

pseudoLocalizer -- a tool to aid development and testing of internationalized applications

5.2. Strgen

Strgen generates multi-lingual strings to be used in globalization testing, (runs on only Windows NT/2000/XP/Server 2003).

5.3. Microsoft Advanced Character Mapping Tool for Traditional Chinese Windows

The Microsoft Advanced Character Mapping Tool helps users migrate from the proprietary solution to the Unicode standard, reducing the time and effort needed to find the correct Unicode value for a specific character.

5.4. Robot

其思想就是:測試人員把標準答案都告訴Robot,然后Robot就會對照著系統進行檢查。用Robot直接錄控件,它會對控件進行識別(就是一個一個的對象),從而可以獲得每個對象的屬性,然后我們可以檢查這些屬性,就和編程的原理一樣。Robot的語法使用Basic的語法,它的語言使用SQA Basic

5.4.1.??? Features of Robot

支持多種 IDE

l???????? Microsoft Visual Studio .NET

l???????? Oracle Developer/2000

l???????? <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />Delphi

l???????? PeopleSoft

l???????? PowerBuilder

支持多種語言:

l???????? Java

l???????? HTML DHTML

l???????? Visual Basic

l???????? Visual C++

l???????? ActiveX

l???????? XML

自動 GUI 功能測試

l???????? 執行分布式功能測試

l???????? 測試所有 .NET 本機控件,包括 VB.NETC#J#Managed C++

l???????? 允許在記錄時查看和編輯測試腳本

Rational Robot可開發三種測試腳本:用于功能測試的GUI腳本、用于性能測試的VU以及VB腳本,如下表:

方面

GUI腳本

VU腳本

VU腳本

在一臺計算機上同時只能執行一個GUI腳本。

在一臺計算機上同時可以執行多個VU腳本。

語言

包括對GUI對象的鍵盤敲擊以及鼠標點擊行為,腳本用SQA Basic語言寫成。

包括客戶端發送到服務器的要求,腳本用VU語言寫成。

測試領域

用于功能測試和性能測試。

通常用于加入用戶負載的性能測試,例如:測試不同負載下服務器響應時間。

查證點

可以包括查證點,用于比較記錄回放時捕獲的信息。

不支持查證點。

用戶

單用戶,模擬前臺的實際用戶操作

多用戶,虛擬測試者模擬發送到數據庫、Tuxedo或者Web服務器的請求,Robot記錄網絡流量等后臺,忽略前臺GUI操作。

5.4.2.??? Use Robot to Test Windows Forms UI

一般是使用Robot第一次的輸入,Robot會自動產生腳本,此腳本可以用于自動化測試,我們還可以修改腳本以滿足所需的測試。所有的.NET component都可以被自動化測試工具捕捉到,進行捕捉時可以設置為根據對象的“ID”進行捕捉,也根據對象的“text”進行選擇(不推薦,不適用于國際化軟件測試);而對于MFC控件等第三方控件的捕捉帶有選擇性,只有部分控件可被捕捉到——Robot只能識別標準控件,對于用戶自定義控件則常常無法識別。因此,我們可以事先使用rational識別器識別控件,通過識別的控件可以被robot捕捉到。在開發過程中,應當盡量使用標準控件,為使用自動化測試工具提供條件。

?

總結

以上是生活随笔為你收集整理的Develop Internationalized Software的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。