With globalization, our applications need to be available in multiple cultures and languages, so they should also be tested accordingly 🌎 This is called localization testing. Let’s try to understand it a bit better in this article.
Localization vs Internationalization
These are two related terms. Both of them relate to adapting software to different languages and regions:
✔ Internationalization: Known as i18n (18 being the number of letters between the first and the last letter of the word) focuses on making an application easy to adapt to multiple languages and regions without engineering changes. Internationalization is an enabler for localization. If done right, it should only be done once.
✔ Localization: Known as L10n for short, focuses on making the software compatible with various locales and cultures. It usually comes after internationalization, and it’s a reiterative process, which will most probably take place at every new release.
Benefits of Localization Testing
✔ Saves testing costs: While localization testing may incur additional expenses and time for repairs, it helps you avoid larger issues and revisions down the road, resulting in lower overhead costs.
✔ Reduces support costs: Software localization testing reduces the number of difficulties your regional clients have with your product, cutting the cost of fixing defects once they’ve been released into production.
✔ Enables compliance: Testing your app’s localization guarantees that it complies with local market rules.
✔ Provides greater reach: Expanding your user base is easier when you enter new markets with a good localized product.
What to Focus on when Performing Localization Testing
First of all, you need to make sure that the content is localized in multilingual websites. Depending on the way the software is built, the language may be automatically set, based on the machine’s IP, or the user might need to manually select a language from a list 📃
Then, you need to make sure that the content is correct in the current language. This means that everything, including labels, hints, error messages, etc., is translated into the current language. Also, any special characters that are valid in that language should display properly.
Also, if it’s the case in your app, pay attention to that the culture and region-specific information is correctly displayed. I’m reffering to:
✔ Number formats: Some languages use a comma for decimal points, others a dot. Also, for the thousand separators, some languages will use a comma, others space, and others don’t have a separator at all. A lot of confusion can come from using a number format that’s not localized in the target language.
✔ Phone numbers: There are slight differences in the way cultures write their phone numbers. Even if it can be easily understood in another culture’s format, it’s still nice to have it adjusted to the current culture.
✔ Address formats: Similar to the phone numbers.
✔ Clothing and shoe sizing: There is also a big difference in how different countries write their sizes. In the UK, 4 might be a regular size for women’s shoes, but in the rest of Europe, that’s not even a child’s size. So, especially if you have an online shop, make sure that the sizes displayed make sense to the audience.
✔ Currencies: When the users can actually buy something, it’s nice if they can make the purchases in the local currency, so also check that. In addition, test that the conversions are correct.
✔ Measurements: Some countries use the metric system, others the imperial. Now I’m not saying one is better than the other, but it’s usually very hard for users to mentally convert the values from one system into the other. So it’s a good idea to use the local units of measure and check that the conversion is done correctly.
For all the above, also make sure that the entire app is consistent. Another important factor to take into account is that traditional functional tests can’t catch linguistic issues. Therefore you should use proofreaders and reviewers with excellent professional skills and localization experience throughout the localization process ✅
The other main area of focus should be the user interface. Some important things to consider are:
✔ The layout is consistent throughout the available languages.
✔ Images are also localized (especially when they contain some sort of text).
✔ The text appears in the correct place in the UI. Also check that the labels do not exceed the button sizes, for example, or that the headers fit entirely. If the initial design was made for English, the same text in a different language might take up more (or less) space. So as testers, we need to check that there are no strange overlaps, hidden text, or text that exceeds the size of the app or browser window.
✔ The UI is also consistent with the language alignment. When using a right-to-left language (RTL – such as Hebrew), most of the UI content should be flipped, the forms should also be RTL, and the icons might need to be displayed differently than they are in left-to-right languages.
Last but not least, functionality testing is crucial in localization. The reasons are obvious but I’ll write them down anyway: A well-translated application is no use in the target language if it doesn’t work properly 💡 This is what you should cover in your tests:
✔ The application can be localized. Meaning the user can select the language or region from a menu, or the app is localized based on the computer’s locale.
✔ All hyperlinks lead to the correct targets (and the targets are also in the localized versions).
✔ Hotkeys and shortcuts are functional.
✔ The product remains compatible with the supported operating systems, peripheral systems, and international support systems.
✔ All functionality works as expected regardless of the selected languages.
✔ Local payment methods work.
📌 Automating Localization Tests
Most linguistic aspects of the testing (such as the UI and content mentioned above) will be tested manually. However, you should automate the scenarios, otherwise the team would have to run them over and over again. This usually includes the functional tests.
What do we need before we start automating localization testing? First, we need to make sure that our locators stay the same- if we are relying on the visible text or the link text, these might vary between languages. However, if the IDs stay the same, then we can rely on them regardless of the selected language.
From here, it can be a good idea to use data-driven testing, and run the same tests with different sets of data, to ensure that the functionality works for the different language settings.
If your company’s apps are meant for a worldwide target audience, it’s a good idea to incorporate internationalization and localization into the development and testing processes. This article covers the most important aspects you should consider when performing localization testing 💻