This article discusses the differences between the internationalization and localization of software products for the global market. It provides an overview of the three areas of localization testing including localization UI testing, localization functional testing, and translation testing. Understanding the different processes is useful for any company and tester involved in the globalization of software products.
In the last 15 years, the world has become a more collaborative place: Growing awareness and use of the Internet, developed countries embracing international students and workers, global expansion of several leading companies, have all contributed to this radical change. One of the many positive outcomes of this change is there is now a global market for products which once used to be confined to specific geographies.
For example:
- Most leading international car models are now available globally
- Software is now customized to cater to geographies across the world – e.g. Google, MSN, Yahoo!
- Phone handsets for consumption in the USA are manufactured in Taiwan, China
These strategic moves by companies have boosted the global economy and contributed to the development of several countries. The word that is being used to describe all of this is "Globalization." For the purpose of our discussion here, we will look at only “Software Globalization."
Software lobalization (G11N) is the process of planning and implementing a software release globally, encompassing various facets such as product and program management, sales and marketing, legal and engineering. Under the Globalization umbrella are two sub-processes, namely, Internationalization (I18N) and Localization (L10N) that play a vital role in the global launch of products and services.
Internationalization is the process of designing and implementing a product without any dependencies on a given language, culture and associated complexities such as character sets, date and currency formats. This lays the foundation for effective globalization at the very early stages of software development. An internationalized product can be released in the native language it has been implemented in, even before any localization happens. However for globalization to be complete, the process of localization has to follow internationalization.
Localization is the process of adapting an internationalized product across various locales and cultures. This is done by leveraging the product's existing source code to create a user- experience, and end-to-end product functionality, in various target locales. Let us here take a moment to look at what a “locale” means. A “language – market” combination is what constitutes a locale. For example, en-GB locale stands for English Great Britain, en-CA locale stands for English Canada. Given the market reach for a localized product, localization when done correctly brings in loyal customers from across the world. On the contrary, when done incorrectly, it impacts product acceptance and the software vendor’s market position significantly. Given the impact a localized product creates, the test community has a large share of responsibility in ensuring high-quality localized releases. Not everyone in the tester community can take on localization testing. It requires special training, deep understanding of how localization is done, nuances of various locales, etc. Most importantly they need to understand what Localization testing is all about and how it is different from regular functional testing. Below is what localization testing entails.
Localization testing encompasses three main areas:
- Localization UI testing–This is mainly to verify that the application's UI renders correctly without any truncation, overlap issues, garbled/missing text, all text has been translated and nothing shows up in English. UI verification is important since not every language belongs to the same character-set family. Some are SBCS (Single Byte Character set), some are Double Byte, some are Multi Byte, meaning the byte size they require for data storage varies. Unless these are handled corrected at the database schema and storage level, the UI will be impacted thereby affecting the end-user experience.
- Localization functional testing–This is to ensure the software under test (SUT) functions as expected in a given locale. Since the functionality is largely going to be the same as in English, it is recommended to reuse as many test cases as possible in the localization functional test pass. Typically, the Localization UI and functional testing can be handled by the same team that does the English testing, since one need not know the target language to take these up. In fact, since they have an understanding of the product’s functionality in English, their ramp-up to test for localization is much faster.
- Translation testing–When faced with compressed testing schedules, this is often an area that is ignored or not done correctly; however, this is a very important component of the localization test effort. This is the phase where content verification is taken up to ensure translation correctness as well as suitability of the translated content for the target locale. For example, a Spanish phrase might be appropriate to use in one market but not in another. While some companies attempt to use translation tools to perform this testing, this is a phase, where reliance on native language experts is invaluable. If you have them navigate through the site to check translations, you are in a way also attempting usability testing, with potentially some realistic end-user scenarios.
Localization testing fits in the software test life cycle, slightly later in the game, regardless of the development life cycle adopted. It is good to intentionally position this particular testing later in cycle (unlike the standard mantra of “test early to reduce the cost of bugs”) because the cost of localization testing is significantly lower when done after the English test pass and one round of globalization and pseudo-localization testing have been completed. Fixing defects found in these cycles, makes the localization test pass very productive and focused on finding true localization defects.
Localization testing is a niche area with ample room for optimization, reusability and effective execution. The global wave is inevitable, whether you are a product company, consumer or a service provider. Irrespective of the role you play, being cognizant of the globalization process will help you contribute to the product's quality in ways that ultimately impact its successful global acceptance.