What is Globalization Testing: Guide to Its Types, Checklist and Testing Approach
Globalization testing aims at ensuring if the product is stable in terms of both its functionalities as well as representation of data in spite of varying cultures/locales.
With the rapidly developing interaction between people, cultures, and countries through the growth of international trade, the demand for globalized software products has increased tremendously in the market. And, at this point, Globalization testing comes into the picture.
As we progress in this tutorial, we will learn more about the basics of globalized software and globalization testing along with its need, importance, advantages, types and also get to know how this testing should be done.
What You Will Learn:
- What is a Globalized Software?
- What is Globalization Testing?
- Types of Globalization Testing
- Globalization Testing Approach
- What Needs to be Tested?
- Globalization Testing Checklist
- Recommended Reading
What is a Globalized Software?
Well before entering into the concept of globalization testing, it is too imperative to understand what actually is a globalized software.
A globalized software is the one in which runs independently of its topographical, cultural and national environment. I am sure that most of us must have seen and used many of such apps and software in your day to day life.
One of the best Example that would fit here is Facebook. This app has a language setting feature through which it can be used by several regional and national languages.
For Example, if you are in India, then you have an option to use the Facebook in English, Hindi, Marathi, Bangla, Punjabi, Gujarati or whichever language you are comfortable with.
A person from South Africa can use Facebook in Afrikaans, one from France can use it in Français and so on. So, based on your country and region across the globe, you can select the language of your choice and use the app accordingly.
However, the features of the app will remain the same. Only, the language in which the things get displayed to the user will change. Some other things also come into picture here, like, the date & time, currency, depending on your time zone and country.
We will discuss all this in detail as we delve into this tutorial.
What is Globalization Testing?
This is a technique which validates whether an application acknowledges all the language input texts and it can be used across the globe or not.
The sole aim of globalization testing is to uncover the potential problems that could hinder the globalization of the app in an application design.
In today's scenario, the world has become a Global village. You will be at the competitive edge if your software product serves to various countries, regions or markets across the globe.
In order to achieve this, it is highly important to see if a software product undergoes globalization testing through which we can ensure that the product will work fine in each of the cultures to which it is serving.
For Example, in India, the Zip codes are 6 numeric digits (no alphabets). So, if you have selected your country as India then while entering the pin code of your area, it should only accept the 6-digit code. But, if your country is Canada, then the Zip codes include 6 alphanumeric characters.
In the above case, your application should accept the Zip code according to the Canadian Zip code format. Thus, it is very crucial to ensure if the zip code functionality is working fine according to each locale. Similarly, many such issues can appear while varying the location and language.
So, the need for Globalization testing arises in which identifying & fixing the issues may appear due to the change of language & geographic region. It also helps you to make sure that there is no hard coding in your application.
Types of Globalization Testing
This testing can be divided into two parts. The first one the Internationalization Testing (aka 118N testing) and the second one is the Localization Testing (aka L10N testing).
Let us understand more about each of these testing types in detail.
#1) Internationalization Testing
Internationalization is the process in which the code of the software is tailored in such a way that it is totally independent of any culture and region-specific information.
For Example, One of the tasks involved in Internationalization Testing is modifying the logic for all the formatting functions (date & time formatting, numeric and currency formatting, etc.). The hardcoded values are pulled out and stored in the external files (called as resource bundles) which will be loaded at run-time.
Also known as 118N Testing, Internationalization Testing checks whether the app is working uniformly round various global regions and cultures.
The key target of Internationalization testing is to verify if the code can deal with all the international support with no breaking of functionality that may cause data loss or data integrity issues.
118N Testing mainly focuses on:
- Language Compatibility Testing: This involves verifying if the product can behave correctly in a particular language environment.
- Functionality Testing: This involves executing functionality regression tests over different language environments and entering native language strings. This includes testing whether the culture-specific info like currency, date, time is displayed correctly or not.
- UI Validation: This tries to identify any visual problems like graphical issues, text overlapping, text truncation, etc.
- Inter-Operability Testing: This involves testing the software over targeted cross platforms, operating systems, app versions, etc.
- Usability Testing: It tests the ease of the app usage.
- Installation Testing: This involves trying to install the app in different native languages and see if all the installation messages are displayed correctly across the language settings.
Click here for a very informative sample Internationalization test cases provided by Microsoft.
#2) Localization Testing
Localization is the process of modifying a software product according to each locale (language, territory, code page etc) that is to be supported.
This involves translation of the software and its presentation to the end user. The translation of the program considers icons, graphics, user manuals, help files, documentation, and other cultural specifications.
Also known as L10n Testing, Localizing testing is a language verification testing which is done to ensure the quality of a product for a specific culture or locale settings. It mainly focuses on the UI and content.
This testing is typically done by someone who understands that specific language.
By now, you must have understood the difference between Internationalization Testing and Localization Testing.
In a nutshell, Internationalization testing aims at ensuring whether the software product is adaptable to various languages and geographic regions without making any changes in it.
On the other hand, Localization testing aims at ensuring if the internationalized product gets adapted to a specific language or region by adding some locale-specific components and texts.
STH has also published a detailed & useful article on Internationalization and Localization testing.
Click on the below link to have a look at it:
Recommended Read=> The Simple Guide to Localization and Internationalization Testing
Globalization Testing Approach
We need to identify the globalization test areas in the test strategy and the planning phase of the software testing lifecycle. Then, create the test cases and test data for the globalization test requirement and set up a common server with multiple locales (clients) to have a proper test environment setup.
Globalization test (i18n plus l10n testing) should be kicked off on the day one, i.e the day on which the regular testing of the basic version (English) of the product is started.
Critical globalization bugs should be identified and fixed since the outset. You should plan to fix, and regress test these bugs since the outset of the testing.
Through this approach, you can have a flawless globalized product that can be simultaneously released to multiple markets.
You can also have a look at the very useful Globalization Testing Approach provided by Microsoft.
What Needs to be Tested?
There is a lot to be covered under this testing. However, the most important aspects are:
#1) Language Vocabulary
A globalized product supports many languages. As many number of languages it supports, the more is the need for testing.
You can use language translators and verify one by one if the application uses proper vocabulary for each language. You do not need to test thoroughly word by word. However, a quick & crisp look at the application by switching it to each different language is recommended.
#2) User Interface
As you know that each language script has a different writing style (few are written from left to right and few are from right to left direction) and the space required by the words might vary from one language to another.
So there is a need to test the UI layout in each language in order to ensure that the UI is clean and there are no issues like text overlapping, misalignment of text, navigation issues, etc.
#3) Date & Time Notation
The date & time display formats will vary from region to region.
For Example, The most common date format in the US is mm/dd/yyyy. Contrary to this, the most common date format in Europe is dd/mm/yyyy. On the other hand, Canada accepts both DD/MM/YYYY and MM/DD/YYYY.
Similarly, few countries use 24-hour notation while others use 12-hour notation. So, it is critical to ensure that the date & time is displayed in the appropriate format when you switch to different regions/countries.
#4) Date/Time Correctness
It is not only the format but also the actual date & time varies from region to region depending upon the time zone.
For Example, 11:53 AM Saturday, Indian Standard Time (IST) is 1:23 AM Saturday in Eastern Time (ET). So, it needs to be tested if the correct date and time is displayed in the application on switching to different countries
#5) Currency Format & Conversion Rates Handling
If your application includes e-commerce then currency testing becomes the crucial one. The number formats for currencies vary from one country to another. So, you should take care of the formatting. Another important thing is to display the correct symbol of currency along with the units.
For Example, if the price of an item is 100 rupees, but on the app, it is mentioned as just ‘100’ then it might confuse the customer as it is 100 rupees or 100 dollars. So, ‘? 100’ is more clear. The next significant test should be to ensure if the conversion rates are taken care of.
For Example, if your app has the option to select the currency, then when you switch from INR to USD, ‘? 100’ should be displayed as ‘USD 1.56’ (depending upon the exchange rate at that time). It is also recommended to display the exchange rate to the user to make it more usable & helpful.
#6) Phone number, Address & Zip code format
The order in which the address is displayed varies from one language to another.
For Example, in Japanese, the address order is a postal code, state, city, and Whereas, in English, the address order is name, city, state and postal code etc
So, you need to verify if the address order display is working fine as you switch between different languages supported by your app. Similarly, the phone number length and format also vary from one country to another. These days, we also have an E.164 recommendation to format the numbers according to a general international notation.
Globalization Testing Checklist
Given below are the checklist of this Testing:
- Ensure if the required installations are being done to set up test environment.
- Ensure if the database is Unicode compatible.
- Verify if there are no hard-coded strings in the code.
- Ensure if the required locale is installed on the client machine or not.
- Check the resource bundles for all the required language property files available in it.
- Verify if the UI of the application is displayed in the native language of the client’s locale.
- Verify if the default display language is English when no specific locale is selected or when the language properties file is not available in the resource bundle.
- Validate if the application can handle wide-ranging data including native language character set, ASCII characters, special characters, etc.
- Verify if the ordering of data on the UI is fine as per the client’s locale.
- Verify if the filtering and searching functionality is working fine as per the client’s locale.
- Verify if the correct date and time format are displayed across the application.
- Verify if the currencies are displayed in the correct format.
- Verify if the telephone numbers and pin codes are displayed in the correct format.
- Verify if the cursor is aligned to the correct side of the input fields based on the language script direction.
- Check if all the specified customer requirements are being tested?
- Check if all the input/output corresponding to each function is tested?
- Check if all the functionalities based on the native language inputs are being tested?
- Check if all the entire database requirements are being tested?
- Check if all the specified UIs are being tested?
- Verify that there are no characters overlapping on the screens.
- Verify that no junk characters are displayed on the screens.
- Verify that the graphics are appearing correctly in the UI.
- Verify if the user manuals/help files are displayed in the native language as per the client’s locale
Globalization testing needs to be performed in order to deliver a rich quality globalized product.
Your product should be acceptable to the generic user base which may belong to different geographic regions and those who speak different languages. In order to gain the worldwide acceptance of your software product, it is imperative to validate its usability for each of the locales it is serving to.
The best part of this testing is that when you are checking for the world-readiness, you are also checking for the general core functionalities of the product. However, globalization testing saves your overall time and effort for software testing.
Do you know any other informative fact about Globalization Testing? We would be glad to hear from you !!