What is Globalization Testing: A Guide to Its Types, Checklists 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:
- Globalization Testing
- 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 is globalized software.
Globalized software is the one that 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 our day-to-day life.
One of the best examples 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 the option to use 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 the 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 that 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 a competitive edge if your software product serves 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). If you have selected your country as India then while entering the pin code in your area, it should only accept the 6-digit code. But, if your country is Canada, then the Zip code includes 6 alphanumeric characters.
In the above case, your application should accept the Zipcode according to the Canadian Zip code format. Thus, it is very crucial to ensure that 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 will also help 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 is Internationalization Testing (aka 118N testing) and the second one is Localization Testing (aka L10N testing).
Please help 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 external files (called resource bundles) which will be loaded at run-time.
Also known as 118N Testing, Internationalization Testing checks whether the app works uniformly around various global regions and cultures.
The key target of Internationalization testing is to verify if the code can deal with all international support without 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 functional regression tests over different language environments and entering native language strings. This includes testing whether culture-specific info like currency, date, and 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 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 of 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 the 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 language verification testing which is done to ensure the quality of a product for a specific culture or locale setting. It mainly focuses on 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 link below 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 test cases and test data for globalization test requirements 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 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 from the outset. You should plan to fix and regress test these bugs from 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. The more numbers languages it supports, the more the need for testing.
You can use language translators and verify one by one if the application uses the 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, 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 that 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 Eastern Time (ET). This needs to be tested to see if the correct date and time is displayed in the application upon switching to different countries
#5) Currency Format & Conversion Rates Handling
If your application includes e-commerce then currency testing becomes crucial. The number formats for currencies vary from one country to another. Make sure to check 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 would be to ensure that 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 & Zipcode 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, Whereas, in English, the address order is name, city, state and postal code, etc
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. Currently, we also have an E.164 recommendation to format the numbers according to a general international notation.
Globalization Testing Checklist
Given below is the checklist for this Testing:
- Ensure the required installations are being done to set up the test environment.
- Ensure that 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 search functionality is working fine as per the client’s locale.
- Verify if the correct date and time format is displayed across the application.
- Verify if the currencies are displayed in the correct format.
- Verify if the phone number and pin code 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 inputs/outputs corresponding to each function are tested?
- Check if all functionalities based on 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 worldwide acceptance of your software product, it is imperative to validate its usability for each of the locales it is serving.
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 facts about Globalization Testing? We would be glad to hear from you !!