With an impressive growth in globalization and internationalization trends, localization and software testing are recognized as crucial components in modern software development. Companies that operate in international markets will want to ensure that their products and services are appropriate and appealing to users of specific cultures and regions. That can be achieved by implementing a solid localization process. On the other hand, companies will also want their products and services to work as seamlessly as possible, with all functionalities behaving as expected. This is done through best-in-class software quality assurance strategies.
If you’d like to know more about what software testing in localization entails, read on!
What is Software Testing?
IBM provides a comprehensive overview of the software testing process as it is carried out at a best-in-class tech company. They define software testing as “The process of evaluating and verifying that a software product or application does what it is supposed to do.”
The image below roughly outlines the overall stages in the so-called Testing Cycle.
Schema of the testing cycle, by Kien Tran.
When you build a first version of your software, you send it to a first Quality Assurance (QA) control step that will schedule tests. These tests will allow you to identify bugs, if there are any, and to have pass/fail results of test cases. Then, the software is sent back to the engineering team so they can implement fixes and work on improvements. This cycle of building, testing and fixing goes on at least three times, until bugs are verified and fixed and test cases are passed.. The result is a new version of your software that enters its last stage known as Golden Master (GM): the final development stage when it’s ready to be delivered to the customer.
Types of Software Testing in Localization
There are many facets within software testing, and for the purpose of this article, we will only touch base on the types of testing that are relevant to localization.
As the name suggests, this is a type of testing to verify whether the functionalities of a particular software or system are behaving as expected. For example, in a messaging app, when you tap the “send” button, the content you type is sent to the recipients as you would expect it to be. Functional testing is typically done early in the development cycle to ensure the software application is as bug-free as possible. For a typical user-focused application, where minor feature updates can be expected on a monthly basis, a round of functional testing would usually be done after code submission to ensure the application is always working as intended.
In localization, functional testing plays an important role in determining if the application is working according to the users’ need for a particular locale. This could be, for example, checking if the user input can be done by different input methods, i.e. character sets and alphabets other than English. Also, functional testing makes sure that there is no truncated text or text that is inappropriately translated for its functional context.
In this competitive age, organizations often opt for an agile software development approach, which allows for continuous planning and execution of a software product as new features are regularly created to meet user needs. A good example of this would be the app WeChat, which is hugely popular in China. Originally created by Tencent as a messaging platform, the app has grown and evolved to be a comprehensive ecosystem where users can do pretty much everything, from contacting friends and family to transferring money, paying bills, making purchases, getting a ride after a night out, and more! Some even call the app a mini operating system, working within your cell phone’s operating system. Such apps evolve very quickly as new functionalities are constantly added and updated. Continuous testing, or Changes Testing, aims to track the differences in the updated version of a software, to compare with its previous version, and to verify that those changes did not cause serious bugs or unexpected software behavior.
Continuous testing occurs very frequently in localization due to the nature of revisions or updates of source strings, which result in target strings requiring revision too. Within projects that have multiple cycles of source updates, it can be a challenge for localization to keep up with the pace if planning is not well thought out. The simple reason is that localization is not just about pure translation accuracy, but also the cultural appropriateness of the content, various formatting requirements, hard-coded strings, encoding errors, and more factors need to be considered.
Usability testing is a type of testing that is perhaps the most crucial, yet overlooked component of the testing process. This software testing method aims to determine how user-friendly an application is, for example, if anyone can pick up a phone or sit in front of a computer and be able to use such an app right away. Usability testing involves actual or potential users of the technology being tested. Testing scenarios often mimic real-life situations, where the testing steps might involve multiple applications: taking a photo with a camera app, editing it with an image processing app, uploading it on a hosting server, and notifying the result to designated platforms or contacts, for example.
The reason why this is (frequently) an overlooked type of testing is because it is typically done at the end of the development cycle and is considered the final chance to catch bugs before it is released to the actual end-users. However, there is often not a lot of allocated time to sufficiently “sweep” the software by usability testing. Organizations that do not follow this step can encounter devastating consequences. So there are many good reasons to conduct early user testing.
In localization, this round of testing often reveals contextual mistakes in content that is ambiguous during the translation stage. For instance, within a food ordering app, the “Menu” of the app’s content structure isn’t the same as a “Menu” displayed on a restaurant’s page.
This article has presented a snapshot of software testing, and of how interrelated it can be with the localization process. The organizations that take these components seriously within their development cycle are the ones that will reap the most benefits in the long run.
If you are interested in learning more, there are great resources out there to take advantage of. TCLoc’s Master’s Degree offered by Strasbourg University.