Localization,Internationalization Testing
Learn what is Localization Testing and How to perform
it:
It is very
common to find websites that are now available in multiple languages. Global
brands have now recognized that the only way to connect and create value is by
introducing their business to locals in the language that is truly local.
This process
of adapting a product to different language, region and locale is called
localization. A localized product creates more business opportunities and
caters for growth and expansion.
However, many organizations make
the mistake of adapting localization towards the end of the development process
or just before the product launch.
In order to localize a product it is very
important to find out if it is internationalized. Confused? An
internationalized Product/application design is the one that can accommodate
localized content such as characters in non-western letters, double byte
languages, ability for text to expand as in European languages and contract as
in Asian languages, display Unicode characters and have database that supports
Unicode characters etc.
What is Localization
Testing?
Localization is defined
as making a product, application or document content adaptable to meet the
cultural, lingual and other requirements of a specific region or a locale.
Localization is abbreviated as l10n, where 10 is the number of
letters between l and n. When thought of localization, what comes to mind is
that the user interface and documentation of an application is in a specific
language or locale. But localization is more than just that.
When localizing an application, the following important areas
are to be customized:
- Date and time formats (including numeric formats)
- Currency used
- Keyboard usage
- Sorting, aligning and collating data
- Colors schemes, symbols and icons
- Text and graphics which, in a given culture, may be
viewed as sensitive or can be misinterpreted.
- Diverse legal requirements
The main aim of localization is to make the product look and
feel such that, to the target audience, it looks like it is specially created
to meet their needs.
Localization and internationalization are together referred to
as globalization. Globalization is at a broader level. Internationalization is
making the application such that it supports multiple languages/locales.
Localization is making an application support a particular locale and language.
The following figure will help you understand how localization
and internationalization together make a globalized a software application.
What is Internationalization?
Internationalization is
the process of designing and developing a product, application or document
content such that it enables localization for any given culture, region, or
language.
Internationalization typically entails:
- Designing and developing the application such that it
simplifies the deployment of localization and internationalization of the
application. This includes taking care of proper rendering of characters
in various languages, string concatenation etc. which can be done by using
Unicode during development
- Taking care of the big picture while developing the
application in order to support bidirectional text or for identifying
languages we need to add markup in out DTD. Also, we use CSS, to support
vertical text or other non-Latin typographic features.
- Code should be able to support local and regional
language and also other cultural preferences. This involves using
predefined localization data and features from existing libraries. Date
time formats, local calendar holidays, numeric formats, data presentation,
sorting, data alignment, name and address displaying format etc.
- Making localizable elements separate from the source
code so that code is independent. And then as per user’s requirement,
localized content can be loaded based on their preferences.
Internationalization basically consists of design and
development of an application to make it ready for localization. It is not
necessary that language, culture and region related translation takes place. It
is to make an application ready for migration in a later stage if, localization
is to take place.
The following diagram will help explain the difference
between nationalization and internationalization.
(Click on the image for enlarged view)
Scope of Testing
Major focal points to be considered for localization and internationalization
testing are as follows:
1)
Language
- Unicode text to cater to character encoding
- Number systems
- Writing directions
- Spelling variants
- Capitalization and sorting rules
- Keyboard shortcuts and layouts
2) Culture and region
- Names and titles
- Government numbers (Social Security number is USA) and
passports
- Colors and images
- Telephone numbers, zip codes, Address formats
- Paper sizes
- Weights and measures
- Currency symbol and currency market position
3) Dates and important Events
- Date and time formats
- Calendar types (Gregorian, Lunar etc.)
- Number formats (decimal separators, grouping of digits
etc.)
Testing Best Practices for
testing Internationalization
Various areas are
impacted when an application is internationalized. In order to ensure complete testing coverage,
we need to concentrate our testing on following important aspects.
#1)
Content localization
Localized content includes
graphics as well as text. Static and dynamic content displayed in the
interface. Static contents like Tabs, buttons, labels and nomenclatures of web
elements, Welcome message, help text, tool tip etc.
Dynamic contents like the message
displayed when a form is filled, validation message in case of errors or
mandatory field not populate other user specific messages etc. This kind of
language testing is done by either language experts or is verified against
language specific properties file sent by the client which contains English to
another language word meaning mappings.
#2)
Feature based
Depending on the region some
features are available and some are not. Testers need to ensure the feature is
hidden for the region to whom it is not applicable and should be displayed and
functional for the regional users to whom it is applicable.
#3)
Locale/ Culture awareness
Locale/ Cultural awareness
includes understanding the difference between Dates and number formatting used
in various regions. This includes Calendar differences, holidays and festivals,
Date formatting, time formatting, Currency, Number formatting, address,
telephone numbers, zip codes or no zip codes, units of measurements etc.
Since we are dealing with
different locale data conversion from one encoding format to other must happen.
Very good understanding of encoding formats and converting to and from a format
is crucial as it can also result in data loss.
#4)
User Interface
User interface should be tested for adaptability to
all language content. It should change accordingly to accommodate text with
larger lengths without distorting the alignment.
Some language specific text
takes more space than others, so interface should be able to adapt to this
change without getting distorted. For Example, German text takes more space to
convey the same information in comparison to English. Hence, interface should
be adaptable.
We need to test user interface
of an application to ensure it contains no defects like truncated strings,
overlapping or misaligned controls, duplicate hotkeys, etc. Also, everything
needs to be translated in the respective language.
This includes the following:
- Menus in menu bar
- Prompt, alert and warning message
- Dialog boxes (titles, buttons and help messages)
- Images
- Toolbars (tool tip for tools in Tool bar)
- Status info in Status bar
#5)
Rendering
It is important to check
whether all the supported scripts are correctly displayed according to the
language specific characters associated with them. When viewing a page in a
specific language the scripts should get properly executed i.e. no script error
should be displayed as well all the characters should be displayed in the
specific language.
Various characteristics of
character rendering include bi-direction, shaping as per context, reordering
and combining characters. Others include word break, line break, formatting
like a justification or left/right alignment etc.
#6)
File transfer
If the application includes a
file transfer operation, we need to test whether a file transfer interface is
localized according to the language selected. File is getting transferred
successfully or not and transferred file is not corrupted.
It is important to specify the
encoding format while reading a file that contains Unicode characters. Default
encoding is UTF-8, when nothing is specified. Text files which are saved in
encoding format UTF-16 when read using UTF -8 will display unintelligible text.
Hence encoding plays a very important role in file transfers.
#7)
Database
Database testing for internationalized application will
consist of support of Unicode characters in the database. Special data types
are available for this purpose. Data types like nchar, nvarchar and ntext are
defined by SQL server that helps store Unicode characters.
The n prefix stands for
National Unicode data types. These n prefixed data types are used in the same
way as the original char, varchar and text data types. The only difference is n
prefix data type also support the following:
- More disk space is needed
- More characters are supported
- Maximum size of nchar and nvarchar is 4000 but for char
and varchar is 8000
Working with N-prefix data
types is same as regular ones. Care must be taken during database migration.
Proper data types should be mapped during migration or data will get lost.
Benefits of
Internationalization Testing
- International visibility to the product
- Increase in product quality, if built to support
internationalization
- Reach to larger audience around the globe
- Product released globally with comparatively lesser
expense
Is automation possible?
Testing an internationalized
application is always a challenge for the organization. Each language that the
application supports, could multiply the number of test cases required for
testing. If the organization uses automation extensively, could automation
scripts be built and maintained for product with such large scope and type?
What is really needed to
address this issue is to build, test scripts that could be extended easily to
support multiple languages.
As discussed above, if the
application is built using the practices of I18N and L10N to create a
non-language sensitive core version, in which properties file, is used to
address language requirements. Application reads from the respective properties
file at run-time to render it in the selected language. In this way, the basic
version of an application is only one, which has the ability to change the
language of the user interface when required.
This made it possible to
automate internationalized application, as test scripts are written only for
the base version and easily executed for all languages.
Before starting with
automation, we need to confirm that the names or IDs assigned to all the
elements in the windows do not change with the change in the language. All the
objects on the webpage like text fields, radio buttons, dropdowns, check boxes,
hyper links, pop-ups, list boxes etc. should have a unique id (like name or ID)
should be independent of language.
If we are certain that all the
web elements are not language specific, then we can create extremely efficient
automation script for internationalized application.
Basic document for learning about Localization
ReplyDelete