Testing Multilingual Software – Lessons Learned
As a specialized software testing company, sometimes our international clients ask us to test software that is not in English. In this case, the application must be tested based on your client’s language which you cannot recognize or understand, and possibly all documents from the client are also written in their native language. Is testing multilingual software possible when your native language (and possibly only language) is English?
We often work with customers to test their software where we don’t know the language of the software. One example is a client of ours in the Netherlands where Dutch is their official language. Our client sells to the domestic market, so not only the UI of the application but also all documentation is in Dutch. Some of our lessons learned in testing multilingual software include:
We divide the testing into 3 phases:
Testing artifact input: Get the specifications and other related documents from the client and start learning the application.
Testing execution: Create and execute test cases and report defects.
Testing result: Analyze defects.
In testing input phase, the quality of the documentation is the most important key factor that decides your effectiveness and efficiency down the line. The kinds of specifications that are most helpful for testing software in a foreign language include:
- Limited pure text descriptions: Since the language is unknown by the testing team, a translation tool must be used. Wordy descriptions may cause the inaccuracy of the translation and increase the difficulty of understanding the application.
- More tables: Instead of descriptions of the functions, it is better to apply tables in the specification. When using tables, it is easy for testers to understand functions based on the meaning of the rows and columns.
- More figures and diagrams: The cliché; a picture is worth a thousand words, definitely applies here.
- Highlight the key points: Documents should be highlighted by the client so that testers can focus on the key points especially in the beginning as they learn the application.
- Include a glossary to explain terminologies in the application.
Lessons learned regarding the other two phases include:
- When writing test cases and defects, do not translate the terminology and UI elements into English. Keeping those words in their original non-translated form actually will help testers execute and track the test cases.
- Create an ‘English->Unknown’ language glossary to be used internally by the testing team. The glossary should include the most common terminology and include as many words as possible.
- When testing the application, try to understand, document and remember the important fields and business rules. This reduces time when doing regression testing later and improves ad-hoc and exploratory testing.
In addition to the testing specific lessons learned, here are a few more tips:
- Client communication: Clients also understands the difficulty for the testing team caused by the language so they usually have more patience to answer your questions. Take this chance and ask questions. Don’t be afraid to ask ‘stupid questions’.
- When the application is ready for testing, create a document that includes all possible screens with translation of each button, menu, etc.
- Try different translation tools and select the most accurate one or use the one most suited for the situation.
- If the project is long term, consider hiring a part-time foreign consultant whose mother language is the same as the language as your application. This can help your team understand application more deeply from the beginning.
- Be patient: Imagine getting a 300-page specification where you don’t understand one word. You will be very slow in the beginning, but after a while you will find it is not so difficult especially if you implement some of the tips above.
Compared to testing English-based software applications, testing multilingual software is definitely more challenging. However, with good preparation and communication, you can still be effective in helping your client test their software and provide an invaluable service in helping them to increase their software quality.