STEPin- Chennai- Globalization Testing Demystified - V2

download STEPin- Chennai- Globalization Testing Demystified - V2

of 160

Transcript of STEPin- Chennai- Globalization Testing Demystified - V2

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    1/160

    Demystifying Globalization Testing

    Anuj MagazineCitrix R&D India Pvt. Ltd.http://anujmagazine.blogspot.com

    http://handwritinganalyst.blogspot.com

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    2/160

    Overall AgendaPart #1: Globalization Testing Introduction and Basics

    Part #2: Understanding different components of Globalization Testing

    Part #3: Globalization Test Planning- The finer points

    Part #4: Uncovering some myths about Globalization testing

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    3/160

    Part-1: Globalization Testing Introduction andBasics

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    4/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    5/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    6/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    7/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    8/160

    Do you want your Software product to Interact

    with Global customers like any of these Images ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    9/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    10/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    11/160

    1.0

    2.0

    3.0

    Globalization eras

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    12/160

    Growing Language support for Windows OS

    Citrix Confidential - Do Not Distribute

    Windows 98: 30 languages

    Windows XP: 42 languages

    Windows Vista: 97 languages

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    13/160

    No. of Countries in the world= 193

    Known living Languages= 6900

    English speaking = 8.5% of world population (1st or 2nd language)

    Languages with atleast 1 million speakers= 347

    Citrix Confidential - Do Not Distribute

    Some Interesting Statistics

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    14/160

    Language Matters!

    Non-English

    Speakers91.5%Native English

    Speakers5.1%

    Other EnglishSpeakers

    3.4%

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    15/160

    Overview of Software Globalization

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    16/160

    Globalization(G11N)

    Parts of Globalization testing

    Internationalization(I18N)

    Localization (L10N)

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    17/160

    Jan Scherpenhuizen = Jan S12N

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    18/160

    About I18N

    Internationalization, or I18N, is the process of generalizing a product so that it can handlemultiple languages and cultural conventions without the need for re-design.

    Internationalization takes place at the level of program design.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    19/160

    Internationalization(I18N)

    Locale Awareness

    Localizability

    Multilingual UserInterface (MUI)

    Parts of I18N testing

    Unicode Clean

    Input / Output Process

    Single Base Binary (SBB)

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    20/160

    About L10N

    Localization, L10N, involves taking a product and making it linguistically and culturallyappropriate to the target locale (country/region and language) where it will be used andsold.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    21/160

    Localization(L10N)

    Parts of L10N testing

    Translation

    UI Layout

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    22/160

    ABC.....no KBC of Globalization Testing

    Can Localization exist successfully in a Softwareproduct without Internationalization in place ?

    A. YesB. NoC. May beD. None of the above

    B. No

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    23/160

    Can Internationalization exist successfully in aSoftware product without Localization in place ?

    A. YesB. NoC. May beD. None of the above

    A. Yes

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    24/160

    The activity of translation of Documentationgets broadly categorized under-

    A. I18NB. L10NC. L20ND. None of the above

    B. L10N

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    25/160

    The activity of Unicode implementation getsclassified under-

    A. I18NB. L10NC. I19ND. None of the above

    A. I18N

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    26/160

    Part-2: Understanding different components ofGlobalization Testing

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    27/160

    #1. Testing Unicode implementation

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    28/160

    Unicode Clean- The Basics Unicode provides a unique number for every character,

    no matter what the platform,no matter what the program,no matter what the language.

    Journey from Code Pages to Unicode.

    Unicode numbers are given in four hex digits preceded by U+, so A; is U+0041 (internalrepresentation).

    Tibetan Om

    U+0F00

    DEVANAGARILETTER JHA

    U+091D

    HIRAGANA LETTERNU

    U+306C

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    29/160

    Questions to clarify before testing Unicode Which languages does your Application Support ?

    Is there a requirement to test the localized characters beyond the languages that arealready supported ?

    Is the Application Unicode Clean ?

    If the Application is not Unicode Clean, then what parts of the Application are non-Unicode

    ? How is the Unicode data stored in Byte Sequences in the Computer ? Is it UTF-8, UTF-16 or

    other representation ?

    Does the product support any pre-Unicode code pages ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    30/160

    Test Ideas specific to Unicode Does the Application support all possible extended characters and text scripts. Specifically

    in multi-byte languages like Korean, Japanese and Chinese ?

    Are multi-byte file and fonder names. File contents and other such data parsed, processed,viewed and Saved correctly ?

    Multi Byte Characters handling- Overlapping Characters Text Selection Text Deletion

    Filtering and Searching

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    31/160

    Double Byte characters handling-O

    verlappingcharacters (legacy Applications)- Special consideration to double byte languages.

    - Overlapping characters are the values that can be mapped to more than onecharacters depending upon the context in the which they are used (Single byte or

    Double byte).

    - Example:- ASCII value 0x5C- The value 0x5C is mapped to backslash character in single byte context.- The value 0x5C is used in several Japanese characters (double byte) as a trailingbyte of a two-byte character.- Japanese representation of double byte text is Yen symbol.

    - If a program recognizes the 0x5C value as a backslash, it may cause issues withdouble byte languages.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    32/160

    Double Byte characters handling - Text selection(legacy Applications)

    -Proper handling of double byte characters during the character selection operation. (see below)

    -Improper handling of double byte characters during the character selection operation. (see below)

    - When the cursor is moved to the left instead of moving to the beginning of the previous doublebyte character it is placed in between the lead and trail bytes.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    33/160

    Double Byte characters handling - Text deletion

    (legacy Applications)

    - This is an example of incorrect handling of double byte characters during the process ofdeletion. Note that after deletion only trial byte is deleted and not the lead byte.

    - Now with the delete key at the start of the string. The lead byte has beendeleted leaving the trail byte().

    - Always treat the lead and trailing byte of a double-byte character code as one atomicunit

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    34/160

    Filtering and Searching

    - Searching usually has to be performed manually each time. Filters are predefinedsearches within a program.

    - Some times programs do not take care of accented characters properly e.g. whilesearch for word- Word the program might return- Wrd, Wrd as well.

    - Filtering and Searching of a Localized program must take care of foreigntext/International characters properly.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    35/160

    Unicode specific bugs

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    36/160

    #2. Testing the Input/Output processimplementation

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    37/160

    Input/Output process- The Basics Put simply, the users interact with an application using keyboard to enter data.

    The application processes the data and displays them in a selected font, or outputs them ina file.

    Input Processes- Support for Keyboards Support for IME

    Output Processes- Font Independence

    As a general rule for fonts, the application should not hard-code font names should not assume a given font is always installed on the system should not assume a selected font supports the desired language script

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    38/160

    Input/Output process- Enabling Keyboard- Windows 7

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    39/160

    What is IME (Input Method Editor) What is IME ?

    An IME is a program that allows computer users to enter complex characters andsymbols, such as Japanese characters, using a standard keyboard.

    Why we need IME ?

    Each language of CCJK has lots of characters, we cannot mapping all of them onstandard keyboard.

    Which languages need IME

    CCJK (SC, TC, JA and KO)

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    40/160

    Questions to clarify before testing

    Input/Output Process Input Process:

    What are the input modes that an application supports ? Does application supports IME, Keyboard, Copy-Paste, Inputting text through Character maps etc. ?

    Output Process: Is the font hard-coded or is externalized ? Are there any places in the Application where the dynamic text shows up ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    41/160

    Test Ideas specific to Input/Output process Input Process:

    Can users Copy/Paste with Accented Characters ? For, Asian Languages, are all major Input Method Editors (IME) supported ?

    Check all the text fields with Localized Keyboard ?

    Output Process:

    Test the entire Application User Interface for the consistency of UI look and feel/Font display. Get the error messages List and simulate the messages in the Application.

    If there are some Locales in which product is not translated but important from business perspective,work to test the English version of the product on the Localized OS.

    If the Application has different UI components may be Web based and Windows based, ensure to test therendering of text on all supported components.

    Ensure that UIs of all the supported languages are tested independently in all supported OS/Browsercombinations.

    If the Application has places where the UI dynamically shows data , such areas should be tested.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    42/160

    Examples of Input/Output Process specific bugsCharacter corruption - Question marks- Sometimes Questions marks appear (?????) in the UI instead of displaying thecorrect text This generally indicates a problem in the Unicode to ANSI conversion.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    43/160

    Character corruption- Random characters- Random High ANSI characters (, , , ) appear instead of readable text.- This generally indicates a problem with the use of the wrong code page.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    44/160

    Character corruption- Font display- Vertical bars, boxes and tildes (, , ~) indicates that the selected font cannotdisplay some of the characters.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    45/160

    #3. Testing the Locale Awarenessimplementation

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    46/160

    Locale Awareness-The Basics The application has to be aware of the locale of the underlying operation system to correct

    format the locale sensitive data.

    Different countries use different formatting for their calendar, date, time, currency,numbers and so on

    Locale Awareness- Key Aspects Consistent Locale Model Locale based Calendar

    Locale based Formatting Locale based Sorting

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    47/160

    Questions to clarify before testing

    Locale Awareness Does the product support different regional settings, such as date/time and currency

    formats, calendar standards, decimal separators, paper size standards, measurement, andaddress and telephone number format ?

    Which areas of the Application displays Locale specific information such as Date/Time,Numbers, Currency, Calendar etc. ?

    Are there any areas in the Application where the data is sorted ? What are the language specific sorting rules followed in the Application logic ?

    Are there any places in the Application where the Address format is used ? Is the formatexternalized ?

    If there is a place in Application where one can define App specific Regional settings, doesit take precedent over OS specific Regional settings ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    48/160

    Test ideas specific to Locale Awareness Ensuring different components of the Application follows consistent Locale.

    Do regional settings, such as paper size, date/time, number and currency formats, reflectthe language of localized product by default ?

    Does the Localized application automatically default to regional settings specified in theOperating System ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    49/160

    Locale awareness: Date and Time Different Countries use different Date/Time formats.Country Short Date Before Noon After Noon

    United States Month/Day/Year 11:45 AM 1:30 PM

    France Day/Month/Year 11:45 13:30

    Germany Day.Month.Year 11:45 Uhr 13:30 Uhr

    Japan Year/Month/Day 11:45 13:30

    Sweden Year/Month/Day 11.45 13.30

    Testing needs to ensure that appropriate Date/Time formats are followed.

    Testing needs to ensure that appropriate format of Calendars are followed.

    Examples: In United States, as Sunday is first day of the week- it appears in left most column in

    the Calendar. Many other countries consider Monday as first day of the week- So, Mondayshould appear in Left most column in the Calendar.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    50/160

    Locale awareness: Date and Time

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    51/160

    Locale awareness: Currency Different Countries have different currencies and Monetary Symbols.

    Test your program to ensure that all the currencies and their symbols are accepted byInput fields and are displayed properly.

    Euro Symbol is a Special case. (Rupee Symbol as well)

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    52/160

    Testing should ensure that any numerical or Currency value is written correctly as perstandards followed in locale under test.

    Examples1. In United States, a period is used to represent decimal and a comma is used as

    thousands separator. E.g. 1,000,000.002. In Germany, it is other way around i.e. a comma is used to represent decimal anda period is used as thousands separator. E.g. 1.000.000,00

    Locale awareness:N

    umbers

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    53/160

    Locale awareness: Addresses, Postal Codes, Phone#

    Different Countries have different ways of formatting their Addresses

    Examples:Address format for United States-NameStreet NumberExtra Lines for apartment numbers, Suites, Buildings etc.City, State, Zip code

    Address format for Japan-Postal CodePrefectureTown

    Street NumberName

    Address format for Germany-Street AddressPostal code CityCountry/Region

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    54/160

    Addresses can be represented in different ways in the UI. Special consideration for Zip codes.

    Examples:US zip codes are either 5 to 9 digits long.Japanese postal codes are 7 digits long.China zip codes are 6 digits long.Taiwan zip codes are 3 digits long.

    Korea zip codes are up to 6 digits often with a city name included.

    Special consideration for Phone Numbers.Examples:

    US has a 3 digit area code.India has a 2 digit area code.

    In Chinese and Korean, there are no separate fields for First name and Last name.(and there is no space between First name and Last name).

    International addresses should be stored in database properly and be displayedproperly.

    Locale awareness: Addresses, Postal Codes and Phone No

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    55/160

    Locale awareness: Sorting Different Sorting rules exists for different countries

    Examples- In German, the letters and o are sorted next to each other.- In Sweden, the letter is sorted at the very end; a couple of letters after z

    Sometimes, there are different sort rules for the same language.

    Examples Spanish language has 4 additional characters ( as compared to English). During

    Sorting, there are separate sort rules (traditional and modern sort) that are used. German language also has multiple collation rules. Infact, there are 3 of them-

    DIN1, DIN2 (used in phone books) and Austrian.

    Sorting works the same way in French as it does in English. Japanese language sorting is always based on phonetics.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    56/160

    Examples of Locale Awareness specific bugs

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    57/160

    Date-Time formats

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    58/160

    Regional issues

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    59/160

    Locale Awareness demo- World Ready Application

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    60/160

    #4. Testing the Single Base Binaryimplementation

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    61/160

    Single Base Binary-The Basics Single base binary, or SBB, is a single set of functional core binaries for all language

    versions of operation systems, there are no conditional compiling for different languageversions, there are no need to maintain separate source codes for development teams andlife cycle maintenance.

    Single Base Binary- Key Aspects

    Single Language Neutral Binary Application should functionally behave the same across all the supported languages.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    62/160

    Questions to clarify before testing

    Single base binary Do the separate code paths specific to languages exist within the code ?

    Is the code same/consistent for all the languages ?

    Has all the UI text been externalized and placed in separate resource files ?

    Is there any text which is still (on purpose) hard-code ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    63/160

    Test ideas specific to Single Base Binary Test for Application having only Localized text in the UI- No hard coding.

    Test for Functionality in the different supported languages. Application functions shouldbehave the same way across the various supported languages.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    64/160

    Example of Single base binary specific bugs

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    65/160

    Example of Single base binary specific bugs

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    66/160

    #5. Testing the Localizability implementation

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    67/160

    Localizability- The Basics Localizability:

    In the application development phase, it is important to identify what needs to be localized and whatdoes not, and then put everything that needs to be localized into separate files, in this way the product islocalizable.

    Localizability testing verifies that you can easily translate the user interface of the program to any targetlanguage without re-engineering or modifying code. Localizability testing catches bugs normally foundduring product localization, so localization of the program is required to complete this test.

    Localizability- Key Aspects: GUI 30-percent Rule Localizable Image/Icons Mirroring

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    68/160

    What is Globalizationreally ?

    Microsoft Word

    Document

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    69/160

    Questions to clarify before testing

    Localizability Translatables- Have all translatable components been externalized from the source code ?

    Regional Settings- Have any regional settings been hard-coded, such as time/date formats ?

    Concetenations-Are there many concatenations that may cause problems for translators ?

    Over- externationalzing- Do the resource files containing translatable text have any non-translatable items ?

    Expansions- Do dialog boxes and forms allow for text expansion ?

    Bitmap text- Does the application contain many bitmaps or icons with translatable text ?

    Does the Application contain any graphics, colors , or other components that need to beadjusted for certain target locales ? Can these components be easily adapted to be moregeneric ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    70/160

    Test ideas specific to Localizability Pseudo Translation (will cover later in detail)

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    71/160

    Example of Localizability specific bugs

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    72/160

    Example of Localizability specific bugs

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    73/160

    Mirroring demo- World Ready Application

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    74/160

    #6. Testing the Multilingual User Interface

    implementation

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    75/160

    MUI- The Basics

    Citrix Confidential - Do Not Distribute

    Separate Localizable resources from Source code

    Dynamically load the appropriate language resources

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    76/160

    Multilingual Application

    =

    Citrix Confidential - Do Not Distribute

    Language neutral core binary (also SBB)

    +

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

    Set of language specific localized resource files

    +

    Logic to dynamically load language specific resources

    +Language Fallback Logic

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    77/160

    Ancient era: Code and resources live together

    Citrix Confidential - Do Not Distribute

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

    G11N Process Maturity Indicator

    Developing the Application

    Servicing the Application

    Adding New Languages

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    78/160

    Medieval era: Logically separating code and

    localizable resources

    Citrix Confidential - Do Not Distribute

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

    G11N Process Maturity Indicator

    Developing the Application

    Maintaining the Application

    Adding New languages

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    79/160

    An Example

    Citrix Confidential - Do Not Distribute

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    80/160

    Application containing multiple language resources

    Citrix Confidential - Do Not Distribute

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

    G11N Process Maturity Indicator

    Developing the Application

    Maintaining the Application

    Adding New languages

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    81/160

    Modern era: Physically separating code and resources

    Citrix Confidential - Do Not Distribute

    Source: http://msdn.microsoft.com/hi-in/goglobal/dd218459(en-us).aspx?ppud=4#FundamentalconceptsofMUI

    G11N Process Maturity Indicator

    Developing the Application

    Maintaining the Application

    Adding New languages

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    82/160

    Test Ideas specific to MUI

    Citrix Confidential - Do Not Distribute

    Testing for Language neutral core binary

    Testing for single MUI Installation

    Testing for switching language without Reinstallation

    Testing for the logic of dynamically loading resources Testing for language Fallback mechanism

    Testing for Single base binary

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    83/160

    Example of MUI specific bugs

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    84/160

    MUI demo- World Ready Application

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    85/160

    #7. Some more considerations

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    86/160

    Duplicate, Missing hotkeys

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    87/160

    Text in Graphics

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    88/160

    Look out for Acronyms- Are they represented properly ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    89/160

    Are there any Abbreviations ? Information written as Info Advertisement written as Ad

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    90/160

    The Problems with Concatenation The Code:strHello = ReadString("Welcome");strMsg = strHello + ", " + UserName;

    English: Welcome, Anuj

    Suitable for Japanese ?

    Other languages have: different word orders (Japanese) different genders for different nouns (French, German, Spanish)

    different punctuation marks (Spanish, German)

    different requirements for indicating respect of the user (French and Japanese)

    different requirements for plurality (all languages)

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    91/160

    The Problems with Concatenationcontd Indicating Plurals:

    Similarly adding "st", "nd" and "th" to numbers will cause the same sort of problems.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    92/160

    Excessive CapitalizationAs a Developer, you probably Write a Lot of Code, and you write Documentation for it, soyou're well able to write. This may be true, but you may not realise that because of yourJob, you've probably developed a peculiar writing Style that afflicts many Programmers,which while it is merely unsettling for Users, can cause serious Problems when your Softwareis Localised.

    Very often translators will make assumptions about words that are capitalised and it canresult in both over translation and under translation depending on the context.

    As a Developer, you probably Write a Lot ofCode, and you write Documentation for it, soyou're well able to write. This may be true, but you may not realise that because of yourJob, you've probably developed a peculiar writing Style that afflicts many Programmers,which while it is merely unsettling for Users, can cause serious Problems when your Softwareis Localised.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    93/160

    Over-TranslationProduct Names, Registry Keys

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    94/160

    Legal Aspects Different Countries Different Laws

    German unfair competition LawClaim of superior position My product is the fastest, best, first, #1, ... My company is the world leader in .

    Claims about product quality 100% bug free Totally Secure

    Should Copyright Symbol be Localized ?

    Is = ( c ) ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    95/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    96/160

    Some Disputed GesturesThe seemingly innocent thumbs-up gesture C is offensive in Australia.

    The thumbs-down gesture D is extremely rude to the locals of the Mexican islands.

    Putting your thumb to the side may get you beaten up in Nigeria.

    Showing your entire hand with the palm facing out I may mean stop to you but is considered a

    serious insult in Greece.Putting your fingers in a circle to indicate O.K. may confuse a variety of people.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    97/160

    Which feature of Internationalization deals with

    Supporting characters from different languages ?

    A. Multilingual userinterface

    B. LocalizabilityC. UnicodeD. None of the aboveC. Unicode

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    98/160

    Which I18N feature deals with use case ofenabling user to change the Language at a run-time ?

    A. Multilingual userinterface

    B. LocalizabilityC. UnicodeD. None of the above

    A. Multilingual userinterface

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    99/160

    Pseudo-Translation Technique can be used to tewhich I18N feature?

    A. Multilingual userinterface

    B. LocalizabilityC. UnicodeD. None of the above

    B. Localizability

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    100/160

    Having a consistent Locale model is a key aspectof which I18N feature ?

    A. Multilingual userinterface

    B. Locale AwarenessC. UnicodeD. None of the above

    B. Locale Awareness

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    101/160

    Using text in Graphics is

    A. Good PracticeB. Not a Good PracticeC. Does not matterD. Should not matter

    B. Not a Good Practice

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    102/160

    Input Method Editors (IME) are the preferred wayof inputting text in which languages ?

    A. Only EuropeanB. Mostly USC. Mostly AsianD. Only MexicoC. Mostly Asian

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    103/160

    I18N feature by means of which Applicationfunctionally behave the same across all thesupported languages.

    A. Locale awarenessB. LocalizabilityC. UnicodeD. Single base binaryD. Single base binary

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    104/160

    GUI 30 percent rule is applicable to which part

    of Globalization ?

    A. Locale awarenessB. LocalizabilityC. UnicodeD. None of the above

    B. Localizability

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    105/160

    Part-3: Globalization Test Planning- Finer points

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    106/160

    #1. Localized Test data planning- Finer points

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    107/160

    Why is Localized Test data planning challenging ? Complexity involving the test data across many languages.

    Each language in-turn may consist of literally many writing systems.

    Different Languages can literally consist of thousands of characters leading to problem ofchoice.

    Unicode can store data differently (UTF-8, UTF-16 etc.) which can add another layer ofcomplexity.

    Localized test data depending upon the encoding being used may end up in varying sizes.

    The Localized data can be inputted using different means.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    108/160

    Why is Euro Language test data different than Asian ?

    Citrix Confidential - Do Not Distribute

    # of Characters: Asian Languages like Japanese, Chinese and Korean literally havethousands of characters than their more English-like European languages.

    # of different Writing Systems: Asian Languages usually constitute of many Writing Systemsas against less complex European languages.

    Presence of Symbols: Asian Languages has the presence of more Symbols and they getsused along with other characters.

    Variety of Input modes: Asian languages makes use of Input method editors among othercommonly used methods.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    109/160

    Language specific Test data- An Approach

    Citrix Confidential - Do Not Distribute

    Generating the Classes of test data

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    110/160

    Example- Spanish Test data- Classes

    Citrix Confidential - Do Not Distribute

    Capitals:, , , ,,, (commas are only used as separators)

    Lower case:,,,,,,

    Punctuation:,,,, ,,:

    Special Spanish representations:HTML entity codes (HTML entity codes are the codes which allow browsers and screen readers to process data as the appropriatelanguage) e.g. for the character , the HTML entity code is

    English Lower case characters:a-z

    English Upper case characters:A-Z

    Numeric representations:

    1,2,3,4....Special characters (EN):~`!@#$%^&*()_+-={}[]|\:;"'.?/

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    111/160

    Other Important Considerations

    Citrix Confidential - Do Not Distribute

    Bytes vs Characters discussion

    A Short demo- String Decoder (Available at-http://www.testingmentor.com/tools/generaltools.htm)

    Learnings:

    Take into Account # of bytes your test data is using based on Encoding used. Very usefulconsideration in deciding Boundary value tests

    Also Account for different ways the data can be inputted- Character maps, Copy Paste,Localized Keyboards etc.

    Keep varying the Test data in every cycle of testing.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    112/160

    Creation of Input field sheet- A good practice

    Citrix Confidential - Do Not Distribute

    An Example

    Microsoft Excel

    Worksheet

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    113/160

    Accessing and using Character Map

    Citrix Confidential - Do Not Distribute

    An Example

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    114/160

    Japanese Language Fundamentals The Japanese writing system is totally different from English, because it does not use

    alphabets.

    The modern Japanese writing system uses three main scripts: Kanji, Hiragana andKatakana

    Kanji is nothing but the Ideographs from Chinese characters.

    Roughly speaking, Kanji represents blocks of meaning (nouns, stems of adjectives andverbs) and hiragana expresses the grammatical relationship between them (endings ofadjectives and verbs, particles). Katakana is used for foreign names, the names offoreign places and words of foreign origin.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    115/160

    Japanese Language Fundamentals Here is an example of a newspaper headline (from the Asahi Shimbun on 19 April 2004) that

    uses all the scripts: (kanji (red), hiragana (blue), katakana (green)

    1m

    The same headline, transliterated to the Latin alphabet:

    Radokurifu, Marason gorin daihy ni ichi-man mtoru shutsuj ni mo fukumi

    The same headline, translated to English:

    "Radcliffe to compete in Olympic marathon, also implied to appear in the 10,000 m"

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    116/160

    Input Japanese characters using IME IME- Input Method Editors

    When an operating system is prepared for use in East Asia, it always has one or more IME'sbuilt in, to make it practical for users to input their characters. However, applicationssometimes provide their own input methods as well, which may provide alternative inputstrategies or which may be better suited to that particular application.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    117/160

    Input Japanese characters using IME- Hiragana

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    118/160

    Input Japanese characters using IME- Katakana

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    119/160

    Input Japanese characters using IME- Kanji

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    120/160

    More exercises at- http://www.coscom.co.jp/learnjapanese801/howtotypejapanese.html

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    121/160

    Understanding some Problematic characters

    Citrix Confidential - Do Not Distribute

    ASCII Byte code Character set Characters Alt/IME type input

    \ 5C S-JIS hyou, nou, juu, baku, chou,shin, so

    ~ 7E S-JIS

    en, kashi, kyuu, kujira, kou,yoku, mi

    ^ 5E S-JIS un, kaeru, gi,seki@ 40 S-JIS hana[ 5B S-JIS hyou] 5D S-JIS hyou| 7C S-JIS fu

    { 7B S-JIS fu} 7D S-JIS fuunknown

    9870,936B,8367 S-JIS wan, to, to

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    122/160

    Some Conclusions around Localized Test data planning Categorize Language specific Test data based on characters as much as possible.

    Ensure to pay a special consideration to Byte and Character nuances.

    Ensure to utilize all possible ways of Inputting while testing an Application.

    Ensure to be aware of historical problematic test data across the languages. ButProblematic test data should be used keeping proper context in mind.

    Encorporate Test data Randomization to ensure that adequate mix of test data getstested.

    Imbibing variability in Localized test data is key to success in Globalization testing.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    123/160

    #2. When is the ideal time to start Globalization ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    124/160

    #3. What does a typical Globalization Process look like ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    125/160

    Globalization Process- A Birds Eye view

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    126/160

    Design

    G11n productassessment

    G11n rqmtsanalysis

    G11n workestimations

    Design I18n architecture

    Design intl specificfeatures

    Consult to product team

    Create g11n test plan

    Internationalized testautomation

    Intl lab procurement / setup

    Code i18n arch, intlfeatures

    Prepare build system

    Prepare localization kit

    International feature/functiontesting

    Localizability testing

    Internationalizationregression testing

    Localization testing

    IntegrateUI localization

    Fix i18n and l10n issues

    Create localizationplan

    Terminology glossary

    T9n automation prep

    UI / online help translation

    Fix linguistic UI issues

    Doc T9n andpublishing

    Translation vendor management

    Linguistic Q/A

    G11n

    Dev

    Loc

    G11nTest

    I18n

    Complete

    Offshore team management

    Loc

    Complete

    Sim-ship

    RTMIntl DocRTW

    Requirements Design Implementation

    FeatureComplete RTM

    Integration/ClosedownProductTeam

    Globalization Process- with a bit of detail

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    127/160

    #4. Globalization Assessment- The Why and How ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    128/160

    #4. Globalization Testing- How much is too much ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    129/160

    Re-use and customizeproduct teams test cases

    Use matrices based onlanguage and code page

    Globalization test optimization

    Citrix Confidential - Do Not Distribute

    Double byte language group Single byte language group

    JA SC TC KO DE FR ES RU

    Test Case A

    Test Case B

    Test Case C

    Test Case D

    Test Case E

    25% 60% 15%

    ~1/3 size of EN

    Core (English)

    Test Project Size

    Globalization

    Test Project Size

    Relative Test Project Sizes

    L10N (UI) Testing

    New Feature/Function I18N Testing

    I18N Regression Testing

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    130/160

    Kanji, Hiragana and Katakana are the writingsystems pertaining to which languages?

    A. Traditional ChineseB. KoreanC. Simplified ChineseD. JapaneseD. Japanese

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    131/160

    Character Maps and IME and the means to-

    A. Input test dataB. Used only for Euro

    languagesC. All of the above

    D. None of the above

    A. Input test data

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    132/160

    Part-4: Uncovering myths about Globalization Testing

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    133/160

    Myth- It is not possible to find the Localization

    bugs before actual translation takes place.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    134/160

    80%

    T t T ti

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    135/160

    Text Truncation

    C t l O l i

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    136/160

    Control Overlapping

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    137/160

    Pseudo translation - Example

    Source Text = Enable Session reliability

    Issues to look for :

    Pseudo translated text = [ nbl Sssn rlblty ]

    Hardcoding: Enable Session reliability

    Probable Truncation : [ nbl Sssn rlblty

    Character Corruption :[|| nbl Sssn rlblty |# ]

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    138/160

    Pseudo Translation In Action

    Pseudo Translate

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    139/160

    Quick demo

    World Ready Application Pseudo Translation example

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    140/160

    Myth -Security Testing is from Mars andGlobalization testing is from Venus

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    141/160

    Threats to International ApplicationsVisual ThreatsNon Visual threats

    Visual Threats

    Non-Visual ThreatsSecurity considerations based on Functional requirements

    Security considerations based on Non-Functional requirements

    Is http://www.pypal.com= http://www.paypal.comrn=m in Sanf Serif font

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    142/160

    Myth# 3- Globalization testing is only about testing

    the UI

    Unicode Clean

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    143/160

    Unicode Clean

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    144/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    145/160

    Myth- If a test case works fine in French language,it will work fine in German language as well

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    146/160

    Myth - A person who doesn't know French cannot

    test the French version of the Software

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    147/160

    Myth- If i don't know French at all, i can stilleffectively test a French application

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    148/160

    Myth - Testing International applications using"Microsoft's MUI (Multilingual User Interface) Pack"or "Localized OS installation" means one and the

    same thing

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    149/160

    Myth -The language verification of User Interfacecan be done by comparing the text on screen withtranslation outputs of any freely available Online

    translator.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    150/160

    Myth - The test scripts meant for English languageautomated tests cannot be reused for

    Internationalization testing

    Fi d th i ?

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    151/160

    Find the issue?

    O t t f A t t d T t

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    152/160

    Output from Automated Test

    Th hidd t l

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    153/160

    The hidden control

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    154/160

    Myth: If the Foreign text input in application textfields work fine by using the Soft keys, then it

    means the data input through respective Foreign

    language key board would also work fine.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    155/160

    Myth: Globalization testing doesn't require thesame test setup as is required to do the Base

    language testing. Globalization testing can be done

    with a minimum test setup.

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    156/160

    Myth 12: There is no use testing the Englishversion of a product on Localized Operating

    systems

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    157/160

    Testing the international applications usingMicrosoft MUI and Localized OS installationmeans one and the same thing ?

    A. YesB. NoC. All of the aboveD. None of the above

    B. No

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    158/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    159/160

  • 8/2/2019 STEPin- Chennai- Globalization Testing Demystified - V2

    160/160

    [email protected]

    http://anujmagazine.blogspot.com

    http://handwritinganalyst.blogspot.com