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:
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.
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.
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) .
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.
Click here for a very informative sample Internationalization test cases provided by Microsoft.
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.
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
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 .
There is a lot to be covered under this testing. However, the most important aspects are:
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.
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.
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.
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
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.
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 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.