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.
- 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