|
The computing world is changing rapidly, and the change may be most obvious in the area of software testing. Internet commerce has created complexities for testing that weren't imagined five years ago.
This article compares testing of traditional localized software with multilingual Web testing.
Testing Traditional
Software
Testing localized software has always been a bit of challenge, since it takes place at the end of the project and may be seen as holding up shipment. Trying to decide who should do what can be confusing. How much testing is the localization vendor responsible for? How much can you do yourself? Under what circumstances should you consider outsourcing functional testing to external test vendors?
Despite the challenges, the software industry has managed to work out some effective processes.
Types of Testing
The basic testing categories are described below. You may know them by different names.
Internationalization testing checks for problems with character set support, time/date/currency formats and externalization of resources.
Linguistic review checks for language problems.
User interface validation checks for visual problems such as text truncation or overlap, graphics issues or other visual problems.
Functional testing ensures that no functionality was broken during the localization process and that the localized product works the same way as the source language product.
Interoperability testing ensures that the software interacts properly with targeted platforms, operating systems, applications (and versions), equipment and so on.
Usability testing evaluates how easy a system is to use. (Note: This article focuses on performance testing rather than usability.)
Key Testing Issues
I spoke with a software test vendor project manager for a large Fortune 500 company who manages localization testing efforts and acts as the liaison between internal software quality leads and localization test vendors.
He described some of the critical issues for managing the functional testing of localized products. First of all, the localization vendor must have clear instructions for what strings need to be localized and how to successfully build and unit test the software. Good instructions help reduce problems during the testing phase, when change is expensive and can lead to schedule delays.
Secondly, the localization vendor must deliver complete glossaries to the test team. This reduces disagreements about how something was supposed to be translated.
The test team must create test case procedures and expected results for accessing all graphical user interface screens and error message dialogs. This ensures complete test coverage in order to validate quality.
The last critical issue is that there needs to be open and continuous communication between the localization vendor and the test team throughout the corrective action process. Without good communication, it is more likely that you will have schedule slips or will end up shipping products which contain bugs.
Testing Web-based
Software
Web testing is very similar to client-server testing, but with more complexity and a wide range of load variability. Finding problems is much more complicated because the potential interactions between technologies can be so varied. In addition, managing change is a significant challenge.
Gerard Roche, the lead SQA engineer at SimulTrans, LLC, compares traditional software testing to Web testing and notes that one of the biggest challenges relates to the rate of change. "Web sites are updated regularly, so the testing cycle becomes an ongoing task. This constant change can lead to version control issues, which can cause huge problems during testing."
Steve Nemzer, vice president of the Lionbridge VeriTest Business Unit, agrees: "When testing a Web-deployed application, the fundamental challenge to the QA manager is developing a process to cope with the ‘continuous change' environment."
When developing a testing approach for your Web site, you should keep this concept in mind.
Testing Scenarios
In addition to dealing with the rapid rate of change for Web sites, you need to consider a variety of issues in order to structure a testing level which makes the most sense. You can start by asking yourself the following questions.
How critical is the site? Mission critical sites should obviously have a high degree of emphasis on testing.
Is the site live or still under development? This impacts how testing can be conducted.
Is the site used internally within an organization (and will probably, therefore, have a fast connection speed and be accessed by similar browsers) or Internet-wide (with a wide variety of connection speeds and browser types)?
Is the site new or has it been up and running for a while? New sites are a higher risk.
What components work together? Are there server-based functions, database access requirements or legacy system tie-ins? The higher level of complexity, the more opportunities there are for things to go wrong.
What character sets need to be supported? Are all of the languages Latin-based, or are you working with Asian or bidirectional character sets?
How important is the marketing message to the site? If it is critical, you should probably conduct some testing which focuses on regional acceptance and usability.
How will the targeted regional audiences access the site? From PCs, mobile phones or kiosks?
Preparing for
Testing
After you have answered the questions listed above, you should create a configuration plan to support the system you outlined. This plan can be in the form of a chart, which lists all of the language versions of browsers, operating systems, IMEs and applications that you plan to support for your site.
The chart will act as the underlying structure for planning and coordinating the testing.
Types of Testing
Web sites require the same types of testing described for traditional software, but they may be applied differently. Multilingual sites also have a number of additional testing requirements. Some specifics for Web testing are described below.
Static HTML testing. When sites are localized, testing needs to ensure that links weren't broken, that images still work and that critical content is intact. Static HTML testing involves tests which do not execute software. These tests perform inspections of documents, identification of HTML syntax errors, link checks and content checks.
Link checking tools find all of the linked objects on a page and then try to download them. Tools should check for links both within the site and outside of it. Most authoring tools like Microsoft FrontPage offer link checking as part of their standard package.
Functional testing. As with traditional software, functionality is the core of what an application is supposed to do. Functionality on your site may differ between regions. For example, an e-commerce site may have steps for processing special offers based on regional holidays or other events. If this is the case for your site, then test plans and cases must reflect the functional differences. Automation under these circumstances can be a challenge.
Functional testing can be broken down into functions performed by the browser and functions which run on the server.
Browser testing. Browser tests check the objects that execute within the browser, but don't deal with server-based components.
Browsers can introduce problems in user interactions. For example, what happens if a user presses the back, forward or refresh button in the middle of a transaction? Will transactions be repeated?
Handling of cookies is another issue which must be tested. Will transactions take place accurately if a user disables cookies on his/her machine or if they are removed? Your test suite should include cases for these types of instances.
Server testing. Server tests check objects which execute on the server, but which are initiated by forms-based user interactions on a browser. Tests of server functions may be for CGI components, Java, JavaScript, VB and so on. Some examples of these transactions are catalog searches, order placement and payment processing.
Potential internationalization problems at this level could relate to sorting and indexing routines for non-Latin character sets, international payment issues, delivery methods and instructions and so on.
End-to-end transaction testing. This type of testing looks at the entire communication chain, from the process of a user filling out an on-line form to the form getting processed and a response being generated and sent back to the user. While other types of testing focus on individual tasks, transaction testing takes a look at the overall process. It focuses on the interfaces between components.
Potential internationalization problems that can occur during this testing would be that data can't be transferred well between components due to character set problems. Interactions with legacy system components may be an area of particular concern. Another issue to look at related to the overall transaction is to see what happens if there is a loss of connection to the server. Are disrupted transactions handled gracefully?
Is translation between encoding methods working correctly? This would apply if you store data using one encoding method, but deliver it in others to meet regional user preferences. Each translation between encodings must be tested.
Herb Bauer, testing services manager for Sykes Enterprises, Incorporated, suggests, "If at all possible, test your site from Web clients that are installed in-country; use native ISPs and various Internet connections." This is because many errors show up after a Web site is launched in the real world, outside of a controlled test environment. Bauer also says, "It pays to test using the least compatible combinations. Your site may shine on Windows 98 with IE 5.0, using a monitor set to 800x600 resolution. But how will it work under less favorable conditions?"
|