What You Need to Know About Functional Testing [Cliff Notes]

Functional TestingIf you are new to localization, or if you consider yourself a non-technical localization professional, then this blog series is for you.

First, testing in localization is meant to catch any problem that will impact the adoption or effectiveness of your product in market. It’s one of the fundamental steps of localizing websites or software products, and it’s especially important in the age of PCs, mobile phones and tablet devices.

Although functional, localization and linguistic testing sometimes overlap, they are distinct testing services that require different resources. An accurate and precise understanding of what each entails is important. I’ll write about localization and linguistic testing later, but for now, let’s focus on functional testing.

First, what is functional testing?

Functional testing verifies that the product works as expected, regardless of whether it has been internationalized or localized already. The process helps to find defects early in the overall product development process. Functional testing can be performed on any language version of the product, but it is most typically completed on the source language version.

In functional testing, the tester systematically examines the source application or website using all sorts of approaches: from structured test cases and unit tests to end-to-end use cases simulating real-life scenarios, to ad-hoc testing to generate error or status messages on screen.

What will a tester find?

When clicking around in an application or website, a tester typically finds things like:

  • Major functional errors like crashes and hangs, system errors
  • Specific functionality not working or not behaving according to specs
  • Input/output errors and interoperability defects between tested application and other systems, including the OS
  • Internationalization/globalization errors preventing the app to be localized in the future
  • System functions that do not work the same across different platforms, OSs or languages
  • Links that are not working and functions failing
  • Images not showing or content not loading properly
  • Access rights issues
  • Browser-related errors: different looks and behavior under different browsers
  • Any other defects related to functionality, usability and even application’s ergonomics

What type of specialist does this work?

Functionality testing is done by engineering resources experienced in software and web testing; often they also have development background. These resources:

  • Possess technical skills and product knowledge
  • Understand the business needs and acceptance criteria the tested product is trying to fill
  • Have a strong understanding of the development process and related testing, including creating test documentation and sometimes automation scripts

What comes after functional testing?

Having tested functionality only on your source product (application or website), as described above, you then test for functionality, usability, and rendering of the builds of your localized product. Then, if you have any doubts about the language quality you proceed to do a linguistic test, which entails that a linguist actually reads the text in context to spot language errors.

Why is functional testing important in localization?

If a source product is full of bugs – problems in functionality – then those bugs are replicated in each localized version, costing you additional time and money. A solid functional testing pass and subsequent fixes can eliminate all those problems ahead of time.

Look for the next part in this blog series that will explore localization testing.

Have you ever discovered functional errors after the fact? What impact did that have on your localization program?

 

Kudos to my Solutions Architect colleague and testing expert Jiri Machala for reviewing and contributing to this blog post.