The Evolution of Localizability Testing & Pseudo Localization Models Bj Rollison, Test Training...
-
Upload
cale-bauer -
Category
Documents
-
view
220 -
download
0
Transcript of The Evolution of Localizability Testing & Pseudo Localization Models Bj Rollison, Test Training...
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