It’s a bit counter-intuitive that me as a testing manager is promoting the idea of preventing bugs, but there are reasons. The reasons are not new by any means, but they are more urgent perhaps.
Daring concept – cool product - looks like great fun! Went from design straight into release with painful results.Check your assumptions – do some testing first!
It is difficult to get hard numbers to demonstrate the ROI of testing and QA, but here are some examples from our own experience where we have some numbers:Anybody want to guess of what this number represents (let audience guess)? This was the total cost of missed ticket sales for a major motion picture due to bad subtitles. The titles were so badly translated that certain governments wouldn’t approve the movie for release in their markets.
This was the cost for a 2-month delay of the world-wide release of a major software due to localization functional bugs. Each missed day cost 1 Million dollars! Not only was a cash flow impacted, but valuable resources were re-directed from developing other projects. Late-nights for everyone, career-ending impact for some.
UI problems and compatibility issues with a mobile device delayed release of a medical application into several European countries.EU regulatory requirements prevented a quick release into several important international markets. The company lost about a year’s worth of sales and may even have lost the EU market for good.
With the proliferation of global information and software platforms, testing has never been more important or complicated. With many different markets to manage under budget and intense schedule pressures it’s not an easy beast to manage. Let’s dive into only a few examples of issues you will see in testing and then discuss how we can prevent many of these bugs.
Where do you see an issue? I know two of them.You need to know Russian to see one of them, I’m afraid.
The icon issue can be fixed, of course (but only spotted during runtime testing)The plurality issue is quite difficult to fix and it is complicated. You probably need to change the English. Maybe to “Years: nnn” and “Months: nnn”. For 2 год would be right.The thumbs-up is probably not an issue, but be careful with symbols – some may be very offensive in some cultures.
The message of this short presentation is about the value of QA and bug prevention. This does not mean that you should cut out run-time testing altogetherThe idea is to reduce the impact localization testing has on the schedule and the budget. The idea is to avoid as many surprises as possible.There still will be surprises – even with the best QA
Fairly clear-cut bug and a common problem.
This kind of issue (strings left in English)is quite common and may be preventable.If the “Today” string was not sent to translation it may have been hard coded and pseudo-localization would spot that. This is a common issue.If the translator forgot to translate the “Today” string a QA of the translation table would spot thatIf this is a functional issue – only run-time testing will spot that.
This is a pretty obvious case for run-time testing. Encoding and compatibility problems often show up only in the actual software.
This can prevented only by code reviews and by internationalization testing … run-time
Below, in red you, can see how many Chinese characters are actually missing. I still don’t know how that happened, but the example is real.Without run-time testing with a Chinese testers, it is unlikely anybody would have noticed that there was a bigproblem until it was too late.
This is a particularly rich screen for bugs. All are unfortunately very common and tricky to remedy.
Software bugs found late in the game – just before software release are dangerousBugs we find late in the game will impact localization and development teams often unexpectedly – these teams may have already moved on! Much better to put QA ahead of the testing phase when the teams can still do something about it.
Such a table can easily be created by SDL or yourself – you can prevent many bugs with this simple tool before you build the software and send it into testing.
Clipping is often a big issue in translated software and with not too much effort you can create a table like this ahead of time, before you create localized software builds. A heat map like this can be really useful for shortening strings and showing other problems. The string ID’s also can tell us where to look especially carefully for potential problems later. It’s not bullet-proof, there are still concatenation issues that skew things, but the information is very useful. Overall text expansion ranges from about 20% to 40%, but for short strings it can be much higher.
It’s a great tool, but anybody with good Excel skills can pseudo-localize
SDL Proprietary and Confidential
SDL Customer Success
Testing Products for Global Readiness
Herb Bauer, Testing Manager, September 19, 2013
• Testing is important, but bug
prevention is even better!
• Do runtime testing, but
minimize its impact!
• Two simple QA methods
before testing, reduce costs
and speed up the process
Testing and QA
Insufficient QA means painful testing! Thank you YouTube!
This one would be hard to spot, admittedly …
Looks like mighty fine Chinese to me …
不在任位, 距離, 效能及性絕對是勝關. VR
打造, 最佳化外形設計, 桿及可式桿科技, 輕
致勝關鍵。 VR STR8-FIT 球道木桿以專為頂級
Here’s how it should have looked (missing characters in red;
Again, you will need to test to see this …
Bad hyphenation, abbreviations, line breaks
Strings are shared between narrow and wide version of a product
and stored in TM after fixes are applied
Test the software using various display sizes or screen resolutions
Provide maximum string length and maximum line number specs to
translators. Don’t store every fix in the TM.
Planning Development Localization Testing
Time to software release
The testing tail is wagging the development dog
Of all 667 bugs analyzed, how many could
have been probably prevented?
Time for bug logging, fixing, creating new
builds for these bugs (at a minimum)?
Time to prevent these bugs through pseudo-
localization and string table review?
Cost savings of preventing these 506 bugs
(at a minimum)?
Time savings not having to fix so many bugs
and missing market release deadlines?
ROI of bug prevention – recent analysis
Multi-lingual translation table – Multi-genius
Quickly find and highlight:
• Completely missing translations (blank cells)
• Un-translated text (still in English)
• Text that is much longer than English likely to cause clipping
• Inconsistent translations within a single language
• Inconsistent translations across languages
• Completely misaligned translations compared to the English
• Font display problems, corrupted characters
Too much expansion, but Cyrillic is OK!
• Potential text expansion problem –
perhaps redesign graphics?
• Cyrillic font checks OK.
• The cost of not testing your
software can be very high
• There is no good substitute
yet for “live” run-time testing
• The key to make testing
manageable is early QA
• Pseudo-localization is one
effective QA method
• Scheduling the review of a
multi-lingual translation table
is one of the quickest and
cheapest way to avoid bugs
Take away …
If the number is 1, or the number ends in the word 'один'
(example: 1, 21, 61) (but not 11), then you should use the
case (singular) that is suitable for the position in the sentence.
The number „one‟ declines like an adjective. Here are some
• 1, 21, 61 год, (1, 21, 61 year)
• 1, 21, 61 месяц (1, 21, 61 month)
• 1, 21, 61 неделя (1, 21, 61 week)
• 1, 21, 61 день (1, 21, 61 day)
• 11 лет (11 years)
• 11 месяцев (11 months)
• 11 недель (11 weeks)
• 11 дней (11 days)
Numbers ending in: 1
If the number, or the last digit of the number is 2, 3 or 4, (example:
22, 42, 103, 4) (but not 12, 13 & 14), then you should use the
genitive singular case.. Here are some examples.
• 2, 3, 4, 22, 42, 103, года - 2, 3, 4, 22, 42, 103, year
• 2, 3, 4, 22, 42, 103, месяца - 2, 3, 4, 22, 42, 103, months
• 2, 3, 4, 22, 42, 103, недели - 2, 3, 4, 22, 42, 103, weeks
• 2, 3, 4, 22, 42, 103, дня - 2, 3, 4, 22, 42, 103, days
• 12, 13, 14,15,16,17,18,19,20 лет – 12, 13, 14,15,16,17,18,19,20 years.
• 12, 13, 14,15,16,17,18,19,20 месяцев – 12, 13, 14,15,16,17,18,19,20 months
• 12, 13, 14,15,16,17,18,19,20 недель – 12, 13, 14,15,16,17,18,19,20 weeks
• 12, 13, 14,15,16,17,18,19,20 дней – 12, 13, 14,15,16,17,18,19,20 days
Numbers ending in: 2, 3, 4
If the number ends in any other digit you should use the
genitive plural. All the 'teens' (-надцать) fit in to this catagory
(11, 12, 13, 14, etc)
• And that is by no means all that can be said to that subject!
Numbers ending in: 5,6,7,8,9,0, -надцать