Globalization is the process of international integration arising from the interchange of world views, products, ideas, and other aspects of culture. The idea of globalization has influenced the software industry too. In the midst of the global marketplace, it is becoming increasingly essential to deliver software products which are sensitive to the languages and culture of people belonging to different geographical areas.
Software industry knows no boundaries unless you are building software for a specific audience. When you develop a web site, an application or a software product it can be distributed all over the internet; people in all parts of the globe have access to the internet, and to your website, application or software product. In such scenarios, you are targeting the global audience and this is where globalization of software takes place.
Need for Globalization Testing
Software that is available in the user’s own language and runs on a localized operating system provides great convenience to the user and represents a huge competitive advantage. Hence, it makes perfect sense to address the market needs by developing a globalized product.
When you don’t use a globalized approach while developing an application, the users might face several issues. It might happen that certain functionalities do not work when you select a different language. For example, a certain functionality was sending input parameter to an API but due to change in language the API did not recognize the input string. Similarly, time zones and date formats are different in different parts of the world. Your application should be capable to display the native time zone and date format. Globalization testing also helps you to identify that there are no hard-coded strings in the code.
Globalized software has a generic user base. Globalization testing is used to detect potential problems that might inhibit the globalization of the product. A product is said to be globalized if it can be run independently of its geographical and cultural environment. The structure of a globalized product is designed in such a way that code is separated from the messages or information. This gives an application the capability to work with multiple languages, without the need for redesigning entire software. A truly globalized product means it works properly according to the design specifications, independent of the application and environment settings.
What needs to be tested in Globalization Testing?
Till now, we have grasped the concept of globalization and understood why globalization testing is important. Now, you must be thinking that what needs to be specifically tested in globalization testing.
Well, here we are! Let’s have a look at the key elements which are commonly present in all web and desktop application. Your globalization test scenarios must address the following key elements:
‘Language’ is the most important part and challenging part for a globalized product. The more languages you offer in your product, the more testing needs to be performed. You might want to hire translators to ensure the application uses appropriate vocabulary for each language. There are several language translator plugins available that can translate your content into another selected language. These translators are widely accepted and do not need thorough verification of each and every word; however, switching to all languages one by one and taking a brief look at the application is recommended.
The layout of User Interface
When language is switched, it might disturb the layout of the user interface. This is particularly important if you are offering languages in which scripts are written in both directions, from left to right and from right to left. For example, the user may switch to the Arabic language which reads from right to left. In these cases, you may either want to change the complete layout of the user interface or use the same layout and change only the language of content. This is decided in the project requirements.
As a part of globalization testing, you need to verify that the user interface is still clean and good to use when different languages are selected. Another important point is to make sure that navigation still makes sense to the user and is completely aligned with the flow of content.
Although date remains the same all across the globe, date formats vary greatly in different parts of the globe. A date has three essential elements – day, month, year. Each region has a different order of writing these three elements in a date. For example, the date format for the US is mm/dd/yyyy, whereas in the UK the date format is dd/mm/yyyy.
It is easy to use words while writing a date and it avoids all confusion. For example, 1st February 2017. However, if you use only numbers in date formats, you have the following options:
The goal of testing date format for a globalized product is to make sure that the date format is automatically changed on the basis of the user’s geographical location. It might be linked to the ‘Select Country’ option i.e. when a user selects US country; date and time of US region are displayed. It might also be linked with language settings.
If you don’t have a ‘Select Country’ option, you might also need to test how correctly the application detects the user’s geographical location and changes date format accordingly. Usually, it is synchronized with the user machine’s date settings and picks up the format from there too.
Time of Region
Unlike date, there are only two-time formats i.e. 12-hour format and 24-hour format. Usually, there is no issue in the time format; but, displaying the correct time can be challenging in a globalized product.
We know that different regions occur at different time zones. People living in different time zones should see the corresponding time in the application. A person using your application in Nigeria should see the local time of Nigeria, a person living in Bangladesh should see the local time of Bangladesh and so on.
Time may not be displayed right away in the user interface of your application, but there can be other areas of the application where you might be using ‘time’. For example, your application gives the user the ability to see the history of transactions he made, along with details of date and time. In such scenarios, the user would comprehend history more easily if the time of transactions is his local time.
Just like date, time can also be synchronized with the selection of the country. If your application has the option to let the user ‘Select Country’, you can set the timezone as soon as the user selects a particular country. However, if your application does not give a country selection option, then you can synchronize the date and time with the user system’s date and time. While performing testing, you need to make sure that date and time changes as you change the system’s date and time settings.
Currency handling is particularly important if you are making any application that involves e-commerce. The number of formats for currency is also different for different countries. For example, the number format for one thousand two hundred and thirty-four point five in England is: 1,234.5
But the number format for the same amount in Germany is: 1.234,5
If you are developing a website for online shopping, you can give the user the option to ‘Select Currency’. If you are not giving a currency selection option, make sure that you are displaying the currency name along with the price. If you display numeric price only, the user will get confused. For example, if you display the price of an item as ‘10’. The Indian user wonders if the price for the particular item is 10 Indian Rupee or 10 USD. Hence, you need to test that when the application displays the price of the item, its price should be displayed with currency, say, 10 USD. This ‘10 USD’ tells the user that the price is 10 US Dollars and not 10 INR.
The situation becomes difficult when you give ‘Select Currency’ option. Now, consider a scenario where an item was displayed with 10 USD price and the user selects the currency ‘PKR’. What would be the expected behavior to test? Shall the application display price as 10 PKR for the same item? NO! That can be a trap.
Make sure that the conversion rates are also handled when you are handling currency. For the above example, when the user selects PKR as currency; the price should be displayed as 1000 PKR (assuming that the exchange rate is 1 USD= 100 PKR). Notice the major difference in price and you can well imagine the amount of trouble the user might have if the price displayed would be 10 PKR.
From the usability point of view, it will be helpful for the user if you display the exchange rates that your application is using. As the exchange rates are dynamic, so make sure that you have a way of accommodating its dynamic nature.
International Input Types
As the name implies, input types also need to be internationalized for your application. Globalization testing checks the proper functioning of the product, using every type of international input possible. It ensures that code can handle and interpret all input types without affecting the functionality of the product. You might have experienced while downloading particular software, the company wants you to sign up by quickly filling up a form. When it comes to entering a mobile number, you get confused about the format. How should I enter the number? There can be several options like:
- + 92 300 3224675
- 0300 3224675
- 0300 32 246 75
It is best that you display required format and example for input fields in a balloon pop up so that the user knows the correct input format.
International input types testing become vital if your application or website has forms that need user input. You need to put special testing emphasis on the address, telephone number, and zip code fields.
The concept of ‘Localization Testing’ is equally important to understand because it is a part of globalization testing. You can move to globalization testing, once your application has passed localization tests successfully.
As the name implies, localization testing is performed to check the functionality of the software product for people of a specific location, language and culture i.e. your immediate or local client. The output is a ‘Localized Product’.
For a localized product, you cannot say how the product will be accepted by people of a different geographical region.