the evolution of localizability testing & pseudo localization models bj rollison, test training...

Post on 14-Dec-2015

222 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

The Evolution of Localizability Testing & Pseudo Localization Models

Bj Rollison, Test Training ManagerMicrosoft, Inc.

The importance of localization

Higher growth in international marketsGovernmental requirements“Localization is a right, not a privilege.”

Success in software industry today depends on international scope

In the beginning…

Hard coded strings in source codeSource code recompiled per language

main (void){ printf (“Hello World!”); return 0;}

Recompile localization

ENU.rc

src

DEU.rc

JPN.rc

Others.rc

Ifdefsrc

Ifdefsrc

Time & Cost

Ifdefsrc

Present day…

Single worldwide binaryResources isolated No compile localization

LoadString (hinst, IDS_HELLO, szFormat, cchMaxSz);while{ char szString[cbMaxSz]; int nPercent = PercentComplete(); _tnsprintf(szString, szFormat, nPercent); DrawString (szString); //more code stuff here}

Hello

Bonjour

こんにちわ

No compile localization

“GLOBAL”src

ENU.rc

DEU.rc

JPN.rc

Other.rc

Reduced Time & Cost

Globalization LocalizationL10N

InternationalizationModelI18N

Typical localization process

“GLOBAL”src

ENU.rc

Pilot Langs..rc

Tier 1.rc

Tier 2.rc

TIME + COST

Tier 3.rc

Ifdefsrc

Localization lunacy

Oh yeah…now localize it!Engineering costs > 40% of software localization

Too many code defects found during localization processesOften no way of knowing where defects exist until localization beginsNo standardized development or localization processes

So what is localizability anyway?

An engineering paradigm that allows modifications to the resources used by a software program

Without introducing functional defects requiring modification of the source code

Without requiring retesting of common functional areas

Inventing the wheel

Identify common defects

Isolate causes

Craft model

Define new heuristics

Localizability EntomologyMissing files, setup failures

Build scripts

Untranslated textHard-coded stringsStrings from external sources

Functionality problemsString dependenciesOver translation

Localizability EntomologyAccessibility key issues

Non-ASCII key mnemonics

Sentence compositionConcatenated/dynamic strings

Truncated text/buffer overflow

Hard-coded string buffer sizeButton text in string tableUser drawn menus/controlsHard-coded style layout in CSS

Localizability Entomology

Character corruptionHard-coded font Not Unicode enabledIncorrect meta charset tag

User interface issueDynamic controlsAbsolute coordinatesOverlapping controls (string truncation)Registry keys used to display text

Taming the beast

Set localization rulesAppend characters to all localizable stringsGrow all string lengthsBracket all stringsReplace accessibility key mnemonics

Pseudo localization models

Pseudo localization models

Hammer out the processUpdate BASE resourcesGenerate pseudo loc dBVerify heuristicsGenerate pseudo build

ALL ANSI charsetsUnicode ONLY language

Test!

InternationalSufficiency

Testing

GlobalFunctionality

Testing

LocalizedFunctionality

Testing

User InterfaceTesting

Globalization Localization

L10N

InternationalizationModelI18N

LocalizabilityTesting

Attacking localizability

Pseudo localization model is not panacea for globalization testing

Don’t retest everythingDon’t use pseudo localized build to test general functionality Reuse automated tests

Focus on localizability class bugs

Pseudo localization as THE pilot

Pseudo Localized Pilot

Loc.Vers.

M1 Eng Lang Project MxM0 RC

Spec. Loc.Vers.

Pseudo localized build is the pilot language!Localization is not a release bottleneck!

Rebuilding the Tower of Babel

Common linguistic databasesDevelopment toolsStandardized processesAuto-resizing dialogsWYSIWYG localization toolsNatural language processing

Summary

English is Just Another Language (EJAL)Reengineering still drives localizationSingle worldwide binary & no-compile localization development strategyPseudo localizability models qualify localizability & improve qualityLocalization = translation/simple modification

Questions

top related