Globalization Testing – Testing Across The Boundary
Nowadays, most software is designed for thousands of users around the world. 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.
What is Globalized Software?
Software that was developed for multiple languages called “globalized software”. Globalized software can run independently of its topographical, cultural and national environment. Many IT companies now recognize the benefits of creating globalized software, users all around the world with their own language, culture can use their product without any difficulty, and that can make the product become more competitive to others.
In today’s scenario, the world has become a Global village, more and more globalized product have been created to serve the need of the market. And, this is where Globalization testing comes into the picture.
What is Globalization Testing?
Globalization testing is performed to ensure whether the product/service deployed is properly functioning for any selected culture/locale. This is a technique which validates whether an application acknowledges all the language input text and still worked as designed when the user changed the language. The sole aim of globalization testing is to uncover the potential problem that could hinder the globalization of the app in an application design that may increase the costs of localization and future product support later on.
As performed Globalization testing, you will see there are two parts of this testing: Internationalization testing (I18N testing) and Localization testing (L10N testing)
Internationalization testing aims to ensure whether the application is adaptable to various languages and geographic regions without the need for internal redesign. The key target of I18N testing is to detect issues and loopholes in the software that could affect the quality of the product, 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.
I18N testing mainly focuses on:
- Language Compatibility Testing: Verifying if the product can behave correctly in a particular language environment.
- Functionality Testing: Regression test over different language environments and entering native language strings. Also, the tester needs to check whether the culture-specific info like currency, date, time format, time zone, weight and measure, right-to-left languages are displayed correctly or not.
- UI Validation: Identify any visual problem like graphical issues, text overlapping, test truncation, etc.
- Inter-Operability Testing: This involves testing the software over targeted cross platforms, operating systems, app versions, etc.
- Usability Testing: How easy can user from others country can use the product.
- Installation Testing: Trying to install the app in different native languages and see if all the installation messages are displayed correctly across the language settings.
Localization testing is actually a language verification testing which is done to ensure the quality of the product for a specific culture or locale settings. This type of testing mainly focuses on the UI and content and typically done by someone who understands that specific language. To performed L10N testing, the tester will have to perform these test:
- Currency format testing
- Date/time format testing
- Phone number, Address, Zip code testing
- Pin-Code testing
- Image format testing: in a given culture, what may be viewed as sensitive or can be misinterpreted.
- Keyboard usage
- Diverse legal requirements
- Avoid cultural and geographical challenges: Any type of slang or political controversies should be avoided under all circumstances
The main aim of this testing is to make the product look and feel like it’s specially created for the target audience, therefore, make sure there are no defects and gaps in the software which can impact the proper functioning odd the UI. Additionally, it is performed to examine the standard of the product for a particular locale or culture.
Combining both, I18N testing and L10N testing referred to as globalization testing. Globalization is at a broader level, Internationalization is making the application such that it supports multiple language/locales. Localization is making an application support a particular locale and language.
In Globalization testing, some most important aspects to test when performed are:
- Language vocabulary
- User interface: Some language scripts have a different writing style (few are written from left to right and few are from right to left direction), also, some languages that do not use the Latin characters might require more space than languages that are written by Latin. Tester has to check if there are any issues appeared when changing to other languages such as text overlapping, misalignment of text, navigation issues, etc.
- Date and time notation: The date and time format will vary from region to region. Some might use the DD/MM/YYYY format, and some might use the YY/MM/DD format… This is the most common issues can find in the globalized product.
- Date time correctness: Not just checking the format but also have to make sure the actual date and time varies from region to region depending upon the time zone.
- Currency format and conversion rates handling: With different country, there will be different currency format.
- Phone number, address and zip code format: make sure the address, phone number or zip code is displayed varies from one language to another.
Also, some function might not work correctly as expected without English settings, one simple example: the issue caused by the API. When they designed the API, they forgot to make the agreement for data format, one is using the English language and one is using local format.
Why do we need Globalization testing?
Besides the fact that more and more products are getting globalized make globalization testing become popular. Why we really need this testing?
When an enterprise launched software without performing globalization testing, they need to support the product continuously and get the issues identified by a global audience, this may lead to the prestige of that enterprise is being damaged. What happens if your competitor released the same product but with higher global ranged? By applied Globalization testing to your testing process bring more benefits to your business, make it easier for the business to decide if the application is ready for a global audience. Your enterprise can further manage the software smoothly over a longer period of time. More detailed, these are the advantages that Globalization Testing can bring to you:
- Increase in Client Value
- Minimum support from Multilingual experts if you decide to automate your globalization testing
- Leads to innovation
- Faster time-to-market, Globalization test usually started the same time as normal testing.
- Less effort on rework and maintenance
How to approach Globalization Testing?
This approach is provided by Microsoft to help testers get acquainted with Globalization testing
- At the test planning phase, identify the Globalization test area. It’s important to prioritize the component, some components are more likely to have globalization issues than others, top priority goes to:
- Code designed to be used on legacy platforms. Particularly platforms or components that handle text data in non-Unicode encodings. Some of them can be identified as those calling non-Unicode functions of the Microsoft Win32 application programming interface (API). Network components or components with console output are assumed to be in this area. Components using standard C run-time (CRT) libraries to handle text input/output (I/O) belong to this group, too.
- Components that extensively handle test data.
- Applications using files for data storage and data exchange.
- Components that have had man globalization problems in the past.
- Choosing a test platform after determining which components are more likely to have serious globalization errors. Choose a viable test platform with your particular circumstances. Then creating test data for your test cases
- Creating the test environment: Prepare all needed components (for example language package,…) to start your testing
- Globalizing your test data: as said, a different language will have a different writing style. Edit the test data you have created before to fit in the language you’re going to test. You might need to pay attention to the sorting procedure, or converts the case of letters.
- Identify the problems:
- The most serious globalization problem is functionality loss.
- Some functionality problems manifest themselves in the form of display problems. The following are some common ones that you might see:
- The question mark (????) appearing instead of the displayed text indicates problems in Unicode-to-code-page conversion.
- Random characters (¼, «, †, ‰, ‡, ¶, and so on) appearing instead of the readable text indicates that the code page-based code is using the wrong code page.
- The selected font cannot display some of the characters.
- Also, remember those language settings cannot all locale-specific functionality. For example, you cannot see the current sort order there. Therefore, it’s important to create a test plan that covering all aspects of functionality related to locale before you start your test.
That is an approach for the tester who wants to know how to perform Globalization testing. But for a real project, following below checklist can help us improve the test results
- Ensure if the required installations are being done to set up the 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.
As a final note regarding globalized testing, when planning and running testing always remember that globalization is wider in scope than just supporting one particular language. The test you use to verify that code has been globalized might not seem to duplicate a realistic usage scenario; that is, the settings of a particular globalized test may look a bit unnatural.
Challenges of Globalization testing
Any type of testing has its own challenges, including Globalization testing. In Globalization testing, these are some commons challenges you’ll have to deal with:
- The major challenge is the translation. It’s difficult for tester without knowing the language they need to test.
- Styling indents, line spaces, alignment (vertical and horizontal) issues.
- Underlining characters in mantras/ slogans
- Bullet and numbering format
- Browser compatibility
Applying Globalization testing to test your Globalized product to ensure the quality of your product before release to the global audience. If you want your product to be accepted by users from many countries, then you should not skip this testing in your testing process. With this test, you not only checking for the world-readiness but also checking for general core functionalities. A Globalized product that has been tested for its globalization capability will help your company stand out from others competitive, reduces overall testing and support costs later on.