SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
Тестирование Локализации и
        Интернализации

Горбачик Лилия
Когда продукт, который вы разрабатываете  тестируете, выходит на мировой
рынок, рано или поздно встает вопрос о локализации. Тут начинается самое
интересное...

Для начала давайте определимся с терминами Глобализация, Интернализация
и Локализация.

Глобализация, в большей степени, отражает стратегию бизнеса в целом,
нацеленность на мировой рынок сбыта. Интернализация – это подход к
разработке, при котором создана база для последующей адаптации работы
приложения на различных языках (разделение кода и локально-зависимых
составляющих). Локализация – это и есть сам процесс перевода и
тестирования адаптации приложения на различные языки.




Я намеренно разделила понятия Интернализация и Локализация. Конечно,
при правильной разработке, интернализация включает в себя локализацию.
Но бывают иные случаи – приложение растет, развивается постепенно,
претерпевает изменения и в какой-то момент становится ясно – надо
локализовать продукт, хотя изначально об этом никто и не помышлял. В этом
случае происходит именно локализация, а интернализация – это изначально
известное стратегическое будущее проекта.
Если решение воплотить локализацию пришло «внезапно», то это несет в
себе дополнительные риски, и на тестирование такой локализации
необходимо выделить больше времени, т.к. в процессе обычно выявляется
незрелость продукта к таким изменениям, требуется доработка –
соответственно, дополнительное время. Так же не сразу выявляются
ненужные зависимости ресурсов, что приводит к дополнительному раунду
фиксов. Вывод: если локализация нагрянула неожиданно – накиньте
процентов 30% в план – пригодится.

В связи с открывшейся перспективой «говорить» приложению на нескольких
языках, появляется множество задач и вопросов:

  •   делать локализацию собственными силами или привлекать аутсорсинг
      или комбинировать собственные силы с аутсорсингом.


                                    2
•   определить список поддерживаемых языков (очень важно, будет ли
      среди поддерживаемых языков китайский, корейский, японский,
      арабский).
  •   использовать или нет псевдолокализацию как предварительный шаг
      локализации.
  •   осуществить перевод пользовательского интерфейса.
  •   адаптация к различным форматам данных.
  •   осуществить перевод системных сообщений и ошибок.
  •   осуществить адаптацию графики, звуков, анимации.
  •   осуществить перевод help и сопутствующей документации.
  •   проверка правильности перевода в контексте данного приложения.
  •   проверка локализованных приложений на разных языковых
      платформах.

Псевдолокализация

Решение о принятии этапа псевдолокализации может быть связано с
желанием стабилизировать теоретическую локализацию, если достаточно
много языков локализации.
Что же такое псевдолокализация?
Путем хитрых научных исследований выяснилось, что при локализации
длина строки увеличивается в среднем на 30%. Именно этот показатель
используется для псевдолокализации.
Утверждается спец символы начала и конца строки, например *** как начало
строки и +++ как конец строки. Таким образом, псевдолокализованная строка
может выглядеть так:
***Тестовая строка+++
Что это дает? Можно тестировать читабельность и проверять вся ли строка
(сообщение) будет помещаться и отображаться на контроле и будет ли
псевдолокализироваться в принципе, будет ли правильно масштабироваться
интерфейс при изменении размера шрифта, например.
Подобным образом может осуществляться псевдолокализация графики,
аудио, анимации. На первый взгляд забавно звучит: псевдолокализация
графики, аудио, анимации. Не так уж странно, если задуматься над этим
вопросом. Зачастую в качестве графики может использоваться картинки,
которые в большей степени понятны, очевидны именно для жителей
определенной страны. Например, герой из мультика «Ну, погоди!» известен
каждому в нашей стране, мы все помним эти замечательные серии. Если в
приложении будет иллюстрация из этого мультика, мы сразу поймем
контекст данного изображения. Но, если показать это же изображение,
например, американцу, не стоит ждать, что он проникнется нежными



                                    3
воспоминаниями о детстве. Для него это будет просто забавная картинка. Как
же будет выглядеть локализация такой графики?




Тоже касается аудио и других медиафайлов. Т.к. локализация – это адаптация
для жителей других стран  носителей других культур, то следует обратить
пристальное внимание на то, действительно ли графическое  медийное
сопровождение усиливает понимание продукта, а не вводит в заблуждение
пользователей.
Но на этапе псевдолокализации картинка может меняться так:




Обозначение Ru-ru на картинке указывает на то, что впоследствии картинка
изменится на русскую версию.
После завершения этого подготовительного этапа начинается, что
называется, проверка в полевых условиях. Время приступать к настоящему
сражению за локализацию или против локализации - это как пойдет.
Какие важные моменты стоит здесь учесть?
Системные настройки, которые являются маркерными при выборе
языка вашего приложения.

Работая с разными проектами, могу сказать, что спектр велик. Приступая к
работе с проектом, не лишним будет интерес: Почему именно так работает
локализация? Итак, список в студию:


  1. Browser (в случае вэб-приложения) Tools → Language preference.
     Выбранный в этой настройке язык и будет определять язык UI. Но
     коварство этих настроек проявляется тогда, когда в списке языков


                                    4
первым значится неподдерживаемый язык. Как корректно
     обрабатывать такой случай? Возможно, искать в списке первый
     поддерживаемый язык, а если такового нет, то считать выбранным
     языком базовый (в общем случае, английский).
  2. System locale, user's locale (Control Panel → Region and Language). Здесь
     возможны вариации. Настройки System locale, user's locale могут
     трактоваться приложением как независимые настройки, а может
     использоваться "жесткая сцепка".

      2.1. User's locale (Control Panel → Format tab → Region and Language).
     Важным поинтом является то, что после выбора страны становится
     доступной опция расширенного форматирования таких параметров как
     числа, валюта, дата, время. Неспособность корректно обработать такие
     настройки часто губит приложение. Так же нужно помнить о том, что
     данная настройка может быть выставлена для каждого пользователя.
     Исходя из этого, не вредно проверить работу системы под разными
     пользователями  разными user's locale.

     2.2. System locale (Administrative tab → Change system locale.) Эта
     настройка для всей системы в целом, т.е. в отличие от user's locale, она
     будет едина для всех пользователей.

      2.3. Жесткая сцепка User's locale & System locale. "Так не бывает! Это
      неправильно!" - скажите вы. "Бывает и так", - отвечу я со слезами на
      глазах.
Так же отдельным пунктом стоит рассмотреть клиент-серверные приложения
и требования к настройкам локали сервера и клиента. Возможные варианты
ограничиваются фантазией архитектора разработчика.

Оставляя локали (locales) позади, переходим к следующему этапу.
На что обратить внимание при тестировании локализации и интернализации
UI & functional?
   • Текст должен отображаться полностью. Строка (предложение) не
      должна быть составной, т.к. использование составных строк
      приспособлено к определенному языку и не может гарантировать
      корректность при переводе.




                                      5
• Списки и меню – если размер списка или меню жестко прописан и не
  появляется скролбара, например, некоторые пункты списка или меню
  могут просто безмолвно изчезнуть.
• Если в локализации присутствует Китайский язык, важно помнить, что
  направление текста может быть как слева направо, так и сверху вниз.
  При написании текста сверху вниз неприменимы правила переноса,
  привычные при письме слева-направо. (Это просто перелом мозга)




• Сортировка. Сложно, не владея, к примеру, Китайским языком,
  оценить правильность сортировки. Предлагаю применить хитрость,
  иначе говоря – костыль. Для сортировки, если это возможно, задать 3
  значения. Таким образом, при сортировке (ascending, descending) 1
  значение должно все время вторым в списке, а первое и третье
  значение должны меняться местами. Такой метод позволит выявить
  мертвую сортировку.
• Печать. Печать на листах разных форматов, с разными единицами
  измерения листа.
• Форматы и данные.
     o Дата
     o Время
     o Валюта
     o Числа (разделение целойдробной части, разделитель тысяч)
  Какие возможны варианты настройки и тестирования?
  Самое простое – когда эти форматы настраиваются внутри приложения
  и не требуют взаимодействия с операционной системой.
  Второй вариант, когда настройки берутся из Control Panel → Format tab
  → Region and Language как упоминалось выше, но при этом не
  допускается расширенная настройка.


                                 6
И последний, самый мучительный вариант, когда настройки берутся из
Control Panel → Format tab → Region and Language и при этом
разрешается расширенная настройка этих параметров.
Здесь самые коварные баги могут крыться в динамическом изменении
этих настроек. Приложение должно определять, можно ли динамически
во время работы тестируемого приложения менять эти настройки или
необходимо переоткрыть ПО после этого. Возможно, придется даже
перезапустить сервисы. Важно, чтобы эта информация не затерялась и
нашла отражение в Help или другом документе.
Очень важный момент в локализации при работе с финансовым ПО.
Некоторые данные – такие как валюта, в финансовой проводке, должны
быть сохранены как есть. Очень нехорошо получится, если на счет
поступят 10 000 рублей вместо 10 000€.
С другой стороны, возможно, при распределенной структуре обработка
временных данных производится путем перерасчета в GMT время и
перевод в формат 24H. На это тоже стоит обратить внимание и
перепроверить преобразование текущего времени приложения в GMT и
обратно – результаты операции со временем должны корректно
преобразовываться во время приложения.
Это, конечно же, не полный список тех тонкостей, которые могут
встретиться на Вашем пути. В заключении хотелось бы напомнить, что
при распределении ответственности, при наличии возможности, стоит
заложить основу для взаимодействия с командами тех. писателей,
локализаторов и время на это взаимодействие. Ведь в конечном итоге,
именно отдел тестирования отвечает за качество продукта.




                              7
Спасибо за внимание!


Если у Вас возникли вопросы
или Вы хотели бы со мной
связаться:


http://lilia-gorbachik.com
info@lilia-gorbachik.com




               8

Mais conteúdo relacionado

Mais procurados

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Ontico
 
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Alina Dolgikh
 
Джентельменский набор тест-лида
Джентельменский набор тест-лидаДжентельменский набор тест-лида
Джентельменский набор тест-лидаSQALab
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестированияAgile Ukraine
 
SECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложенийAlexander Khozya
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решенияВладимир Кожаев
 
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...ScrumTrek
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...SQALab
 
Behat bdd для php
Behat  bdd для phpBehat  bdd для php
Behat bdd для phpAleksei Popov
 
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.ScrumTrek
 
Maksym Antipov Hardware development as a hobby and a job
Maksym Antipov Hardware development as a hobby and a jobMaksym Antipov Hardware development as a hobby and a job
Maksym Antipov Hardware development as a hobby and a jobАліна Шепшелей
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кодаКирилл Борисов
 
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...Dakiry
 
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)Ontico
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU
 
Релизимся чаще, или тернистый путь к continuous delivery
Релизимся чаще, или тернистый путь к continuous deliveryРелизимся чаще, или тернистый путь к continuous delivery
Релизимся чаще, или тернистый путь к continuous deliverySQALab
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016Roman Ivliev
 

Mais procurados (20)

Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
Куда катится PHP, а также про Yii и другие фреймворки / Александр Макаров (St...
 
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
Кирилл Борисов. Code style_checking_v2. PyCon Belarus 2015
 
Джентельменский набор тест-лида
Джентельменский набор тест-лидаДжентельменский набор тест-лида
Джентельменский набор тест-лида
 
Опыт Автоматизации тестирования
Опыт Автоматизации тестированияОпыт Автоматизации тестирования
Опыт Автоматизации тестирования
 
SECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open SourceSECON'2016. Бартунов Олег, Карьера в Open Source
SECON'2016. Бартунов Олег, Карьера в Open Source
 
Тестирование мобильных приложений
Тестирование мобильных приложенийТестирование мобильных приложений
Тестирование мобильных приложений
 
игровая логика, проблемы и решения
игровая логика, проблемы и решенияигровая логика, проблемы и решения
игровая логика, проблемы и решения
 
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
Александр Сербул. Прикладное XP в «1С-Битрикс»: как развивать продукт более 1...
 
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
Monkey Talk - кросс-платформенное средство автоматизации тестирования мобильн...
 
Behat bdd для php
Behat  bdd для phpBehat  bdd для php
Behat bdd для php
 
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
Евгений Джамалов. Agile в условиях мульти-вендорности и распределённых команд.
 
Maksym Antipov Hardware development as a hobby and a job
Maksym Antipov Hardware development as a hobby and a jobMaksym Antipov Hardware development as a hobby and a job
Maksym Antipov Hardware development as a hobby and a job
 
Контроль за качеством кода
Контроль за качеством кодаКонтроль за качеством кода
Контроль за качеством кода
 
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
 
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)Двухкратный публичный code review, Евгения Фирсова (Яндекс)
Двухкратный публичный code review, Евгения Фирсова (Яндекс)
 
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестированияCodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
CodeFest 2014. Павлов И. — Как делать прототипы в автоматизации тестирования
 
Tech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест ДжоэлаTech Talks @NSU: Проходим тест Джоэла
Tech Talks @NSU: Проходим тест Джоэла
 
Релизимся чаще, или тернистый путь к continuous delivery
Релизимся чаще, или тернистый путь к continuous deliveryРелизимся чаще, или тернистый путь к continuous delivery
Релизимся чаще, или тернистый путь к continuous delivery
 
О фреймворках Backend conf 2016
О фреймворках Backend conf 2016О фреймворках Backend conf 2016
О фреймворках Backend conf 2016
 
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
Смолина Пользовательские интерфейсы систем лингвистической разметки текстовСмолина Пользовательские интерфейсы систем лингвистической разметки текстов
Смолина Пользовательские интерфейсы систем лингвистической разметки текстов
 

Destaque

Тестирование локализации
Тестирование локализацииТестирование локализации
Тестирование локализацииSQALab
 
SPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия Горбачик
SPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия ГорбачикSPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия Горбачик
SPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия ГорбачикLilia Gorbachik
 
Secr2013 разработчики vs поддержка - Лилия Горбачик
Secr2013 разработчики vs поддержка - Лилия ГорбачикSecr2013 разработчики vs поддержка - Лилия Горбачик
Secr2013 разработчики vs поддержка - Лилия ГорбачикLilia Gorbachik
 
Правила оформления текста в интерфейсе приложений
Правила оформления текста в интерфейсе приложенийПравила оформления текста в интерфейсе приложений
Правила оформления текста в интерфейсе приложенийNatalia Savastiuk
 
SPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубы
SPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубыSPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубы
SPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубыLilia Gorbachik
 
Risk-based testing management. От теории к современной практике
Risk-based testing management. От теории к современной практикеRisk-based testing management. От теории к современной практике
Risk-based testing management. От теории к современной практикеSQALab
 
Тестирование требований и документации
Тестирование требований и документацииТестирование требований и документации
Тестирование требований и документацииUladzimir Kryvenka
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийSQALab
 
Поиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложениеПоиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложениеSQALab
 
Лучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователиЛучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователиSQALab
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesSQALab
 
Mobile testing. Tips and tricks
Mobile testing. Tips and tricksMobile testing. Tips and tricks
Mobile testing. Tips and tricksSQALab
 
Чек-лист по юзабилити сайта
Чек-лист по юзабилити сайтаЧек-лист по юзабилити сайта
Чек-лист по юзабилити сайтаPromodo
 

Destaque (14)

Тестирование локализации
Тестирование локализацииТестирование локализации
Тестирование локализации
 
SPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия Горбачик
SPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия ГорбачикSPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия Горбачик
SPM-Conf-1 Как сохранить команду в эпоху перемен - Лилия Горбачик
 
Secr2013 разработчики vs поддержка - Лилия Горбачик
Secr2013 разработчики vs поддержка - Лилия ГорбачикSecr2013 разработчики vs поддержка - Лилия Горбачик
Secr2013 разработчики vs поддержка - Лилия Горбачик
 
Правила оформления текста в интерфейсе приложений
Правила оформления текста в интерфейсе приложенийПравила оформления текста в интерфейсе приложений
Правила оформления текста в интерфейсе приложений
 
SPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубы
SPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубыSPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубы
SPM Meetup #35 Построение работы с дизайнерами подводные течения и медные трубы
 
Risk-based testing management. От теории к современной практике
Risk-based testing management. От теории к современной практикеRisk-based testing management. От теории к современной практике
Risk-based testing management. От теории к современной практике
 
Тестирование требований и документации
Тестирование требований и документацииТестирование требований и документации
Тестирование требований и документации
 
Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
 
Поиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложениеПоиск багов при тестировании переходов с веба в мобильное приложение
Поиск багов при тестировании переходов с веба в мобильное приложение
 
Лучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователиЛучшие тестировщики - наши пользователи
Лучшие тестировщики - наши пользователи
 
Тестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The ScenesТестирование мобильных API: Behind The Scenes
Тестирование мобильных API: Behind The Scenes
 
Mobile testing. Tips and tricks
Mobile testing. Tips and tricksMobile testing. Tips and tricks
Mobile testing. Tips and tricks
 
кома перед як
кома перед яккома перед як
кома перед як
 
Чек-лист по юзабилити сайта
Чек-лист по юзабилити сайтаЧек-лист по юзабилити сайта
Чек-лист по юзабилити сайта
 

Semelhante a Тестирование Локализации и Интернализации

Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...
Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...
Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...Procontent.Ru Magazine
 
Multilanguage Drupal
Multilanguage DrupalMultilanguage Drupal
Multilanguage DrupalInna Tuyeva
 
Programmers' Mistakes for Dummies
Programmers' Mistakes for DummiesProgrammers' Mistakes for Dummies
Programmers' Mistakes for DummiesCOTOHA
 
Budgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.comBudgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.comBrain Storm Analytics
 
IT talk SPb "Локализация приложения на 15+ языков и его тестирование"
IT talk SPb "Локализация приложения на 15+ языков и его тестирование" IT talk SPb "Локализация приложения на 15+ языков и его тестирование"
IT talk SPb "Локализация приложения на 15+ языков и его тестирование" DataArt
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаTatyanazaxarova
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HRIT-HR Club
 
Аналитик в Agile (статья)
Аналитик в Agile (статья)Аналитик в Agile (статья)
Аналитик в Agile (статья)Andrey Bibichev
 
Консалтинг высоконагруженных web систем
Консалтинг высоконагруженных web системКонсалтинг высоконагруженных web систем
Консалтинг высоконагруженных web системMedia Gorod
 
19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...
19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...
19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...Vladislav Morgun
 
Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Alconost
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проектisdeforum
 
Adaptive Design wud2012
Adaptive Design wud2012Adaptive Design wud2012
Adaptive Design wud2012Ivo Dimitrov
 
Оноприенко Алла: "Один дизайн для всего"
Оноприенко Алла: "Один дизайн для всего"Оноприенко Алла: "Один дизайн для всего"
Оноприенко Алла: "Один дизайн для всего"MobiDev
 
Как спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноКак спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноBubon Makabra
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonPyNSK
 

Semelhante a Тестирование Локализации и Интернализации (20)

Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...
Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...
Типовые ошибки в iOS приложениях. Классификация ошибок в iOS приложении. - Дм...
 
Multilanguage Drupal
Multilanguage DrupalMultilanguage Drupal
Multilanguage Drupal
 
Programmers' Mistakes for Dummies
Programmers' Mistakes for DummiesProgrammers' Mistakes for Dummies
Programmers' Mistakes for Dummies
 
Budgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.comBudgeting Software //BSAnalytics.com
Budgeting Software //BSAnalytics.com
 
IT talk SPb "Локализация приложения на 15+ языков и его тестирование"
IT talk SPb "Локализация приложения на 15+ языков и его тестирование" IT talk SPb "Локализация приложения на 15+ языков и его тестирование"
IT talk SPb "Локализация приложения на 15+ языков и его тестирование"
 
Построение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кодаПостроение систем автоматического протоколирования Си/Си++ кода
Построение систем автоматического протоколирования Си/Си++ кода
 
Pedalim vacancy IT HR
Pedalim vacancy IT HRPedalim vacancy IT HR
Pedalim vacancy IT HR
 
Аналитик в Agile (статья)
Аналитик в Agile (статья)Аналитик в Agile (статья)
Аналитик в Agile (статья)
 
Консалтинг высоконагруженных web систем
Консалтинг высоконагруженных web системКонсалтинг высоконагруженных web систем
Консалтинг высоконагруженных web систем
 
19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...
19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...
19.06.19 - MAD SEO Conf v.2.0 by Govitall - SEO-адаптация продуктов для выход...
 
Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?Локализация - как делать глобальный проект?
Локализация - как делать глобальный проект?
 
Как делать глобальный проект
Как делать глобальный проектКак делать глобальный проект
Как делать глобальный проект
 
Adaptive Design wud2012
Adaptive Design wud2012Adaptive Design wud2012
Adaptive Design wud2012
 
лек11 7
лек11 7лек11 7
лек11 7
 
лек11 7
лек11 7лек11 7
лек11 7
 
Оноприенко Алла: "Один дизайн для всего"
Оноприенко Алла: "Один дизайн для всего"Оноприенко Алла: "Один дизайн для всего"
Оноприенко Алла: "Один дизайн для всего"
 
User Story Canvas
User Story CanvasUser Story Canvas
User Story Canvas
 
Adaptive Design
Adaptive DesignAdaptive Design
Adaptive Design
 
Как спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важноКак спроектировать хороший API и почему это так важно
Как спроектировать хороший API и почему это так важно
 
Как и зачем можно создать DSL на Python
Как и зачем можно создать DSL на PythonКак и зачем можно создать DSL на Python
Как и зачем можно создать DSL на Python
 

Тестирование Локализации и Интернализации

  • 1. Тестирование Локализации и Интернализации Горбачик Лилия
  • 2. Когда продукт, который вы разрабатываете тестируете, выходит на мировой рынок, рано или поздно встает вопрос о локализации. Тут начинается самое интересное... Для начала давайте определимся с терминами Глобализация, Интернализация и Локализация. Глобализация, в большей степени, отражает стратегию бизнеса в целом, нацеленность на мировой рынок сбыта. Интернализация – это подход к разработке, при котором создана база для последующей адаптации работы приложения на различных языках (разделение кода и локально-зависимых составляющих). Локализация – это и есть сам процесс перевода и тестирования адаптации приложения на различные языки. Я намеренно разделила понятия Интернализация и Локализация. Конечно, при правильной разработке, интернализация включает в себя локализацию. Но бывают иные случаи – приложение растет, развивается постепенно, претерпевает изменения и в какой-то момент становится ясно – надо локализовать продукт, хотя изначально об этом никто и не помышлял. В этом случае происходит именно локализация, а интернализация – это изначально известное стратегическое будущее проекта. Если решение воплотить локализацию пришло «внезапно», то это несет в себе дополнительные риски, и на тестирование такой локализации необходимо выделить больше времени, т.к. в процессе обычно выявляется незрелость продукта к таким изменениям, требуется доработка – соответственно, дополнительное время. Так же не сразу выявляются ненужные зависимости ресурсов, что приводит к дополнительному раунду фиксов. Вывод: если локализация нагрянула неожиданно – накиньте процентов 30% в план – пригодится. В связи с открывшейся перспективой «говорить» приложению на нескольких языках, появляется множество задач и вопросов: • делать локализацию собственными силами или привлекать аутсорсинг или комбинировать собственные силы с аутсорсингом. 2
  • 3. определить список поддерживаемых языков (очень важно, будет ли среди поддерживаемых языков китайский, корейский, японский, арабский). • использовать или нет псевдолокализацию как предварительный шаг локализации. • осуществить перевод пользовательского интерфейса. • адаптация к различным форматам данных. • осуществить перевод системных сообщений и ошибок. • осуществить адаптацию графики, звуков, анимации. • осуществить перевод help и сопутствующей документации. • проверка правильности перевода в контексте данного приложения. • проверка локализованных приложений на разных языковых платформах. Псевдолокализация Решение о принятии этапа псевдолокализации может быть связано с желанием стабилизировать теоретическую локализацию, если достаточно много языков локализации. Что же такое псевдолокализация? Путем хитрых научных исследований выяснилось, что при локализации длина строки увеличивается в среднем на 30%. Именно этот показатель используется для псевдолокализации. Утверждается спец символы начала и конца строки, например *** как начало строки и +++ как конец строки. Таким образом, псевдолокализованная строка может выглядеть так: ***Тестовая строка+++ Что это дает? Можно тестировать читабельность и проверять вся ли строка (сообщение) будет помещаться и отображаться на контроле и будет ли псевдолокализироваться в принципе, будет ли правильно масштабироваться интерфейс при изменении размера шрифта, например. Подобным образом может осуществляться псевдолокализация графики, аудио, анимации. На первый взгляд забавно звучит: псевдолокализация графики, аудио, анимации. Не так уж странно, если задуматься над этим вопросом. Зачастую в качестве графики может использоваться картинки, которые в большей степени понятны, очевидны именно для жителей определенной страны. Например, герой из мультика «Ну, погоди!» известен каждому в нашей стране, мы все помним эти замечательные серии. Если в приложении будет иллюстрация из этого мультика, мы сразу поймем контекст данного изображения. Но, если показать это же изображение, например, американцу, не стоит ждать, что он проникнется нежными 3
  • 4. воспоминаниями о детстве. Для него это будет просто забавная картинка. Как же будет выглядеть локализация такой графики? Тоже касается аудио и других медиафайлов. Т.к. локализация – это адаптация для жителей других стран носителей других культур, то следует обратить пристальное внимание на то, действительно ли графическое медийное сопровождение усиливает понимание продукта, а не вводит в заблуждение пользователей. Но на этапе псевдолокализации картинка может меняться так: Обозначение Ru-ru на картинке указывает на то, что впоследствии картинка изменится на русскую версию. После завершения этого подготовительного этапа начинается, что называется, проверка в полевых условиях. Время приступать к настоящему сражению за локализацию или против локализации - это как пойдет. Какие важные моменты стоит здесь учесть? Системные настройки, которые являются маркерными при выборе языка вашего приложения. Работая с разными проектами, могу сказать, что спектр велик. Приступая к работе с проектом, не лишним будет интерес: Почему именно так работает локализация? Итак, список в студию: 1. Browser (в случае вэб-приложения) Tools → Language preference. Выбранный в этой настройке язык и будет определять язык UI. Но коварство этих настроек проявляется тогда, когда в списке языков 4
  • 5. первым значится неподдерживаемый язык. Как корректно обрабатывать такой случай? Возможно, искать в списке первый поддерживаемый язык, а если такового нет, то считать выбранным языком базовый (в общем случае, английский). 2. System locale, user's locale (Control Panel → Region and Language). Здесь возможны вариации. Настройки System locale, user's locale могут трактоваться приложением как независимые настройки, а может использоваться "жесткая сцепка". 2.1. User's locale (Control Panel → Format tab → Region and Language). Важным поинтом является то, что после выбора страны становится доступной опция расширенного форматирования таких параметров как числа, валюта, дата, время. Неспособность корректно обработать такие настройки часто губит приложение. Так же нужно помнить о том, что данная настройка может быть выставлена для каждого пользователя. Исходя из этого, не вредно проверить работу системы под разными пользователями разными user's locale. 2.2. System locale (Administrative tab → Change system locale.) Эта настройка для всей системы в целом, т.е. в отличие от user's locale, она будет едина для всех пользователей. 2.3. Жесткая сцепка User's locale & System locale. "Так не бывает! Это неправильно!" - скажите вы. "Бывает и так", - отвечу я со слезами на глазах. Так же отдельным пунктом стоит рассмотреть клиент-серверные приложения и требования к настройкам локали сервера и клиента. Возможные варианты ограничиваются фантазией архитектора разработчика. Оставляя локали (locales) позади, переходим к следующему этапу. На что обратить внимание при тестировании локализации и интернализации UI & functional? • Текст должен отображаться полностью. Строка (предложение) не должна быть составной, т.к. использование составных строк приспособлено к определенному языку и не может гарантировать корректность при переводе. 5
  • 6. • Списки и меню – если размер списка или меню жестко прописан и не появляется скролбара, например, некоторые пункты списка или меню могут просто безмолвно изчезнуть. • Если в локализации присутствует Китайский язык, важно помнить, что направление текста может быть как слева направо, так и сверху вниз. При написании текста сверху вниз неприменимы правила переноса, привычные при письме слева-направо. (Это просто перелом мозга) • Сортировка. Сложно, не владея, к примеру, Китайским языком, оценить правильность сортировки. Предлагаю применить хитрость, иначе говоря – костыль. Для сортировки, если это возможно, задать 3 значения. Таким образом, при сортировке (ascending, descending) 1 значение должно все время вторым в списке, а первое и третье значение должны меняться местами. Такой метод позволит выявить мертвую сортировку. • Печать. Печать на листах разных форматов, с разными единицами измерения листа. • Форматы и данные. o Дата o Время o Валюта o Числа (разделение целойдробной части, разделитель тысяч) Какие возможны варианты настройки и тестирования? Самое простое – когда эти форматы настраиваются внутри приложения и не требуют взаимодействия с операционной системой. Второй вариант, когда настройки берутся из Control Panel → Format tab → Region and Language как упоминалось выше, но при этом не допускается расширенная настройка. 6
  • 7. И последний, самый мучительный вариант, когда настройки берутся из Control Panel → Format tab → Region and Language и при этом разрешается расширенная настройка этих параметров. Здесь самые коварные баги могут крыться в динамическом изменении этих настроек. Приложение должно определять, можно ли динамически во время работы тестируемого приложения менять эти настройки или необходимо переоткрыть ПО после этого. Возможно, придется даже перезапустить сервисы. Важно, чтобы эта информация не затерялась и нашла отражение в Help или другом документе. Очень важный момент в локализации при работе с финансовым ПО. Некоторые данные – такие как валюта, в финансовой проводке, должны быть сохранены как есть. Очень нехорошо получится, если на счет поступят 10 000 рублей вместо 10 000€. С другой стороны, возможно, при распределенной структуре обработка временных данных производится путем перерасчета в GMT время и перевод в формат 24H. На это тоже стоит обратить внимание и перепроверить преобразование текущего времени приложения в GMT и обратно – результаты операции со временем должны корректно преобразовываться во время приложения. Это, конечно же, не полный список тех тонкостей, которые могут встретиться на Вашем пути. В заключении хотелось бы напомнить, что при распределении ответственности, при наличии возможности, стоит заложить основу для взаимодействия с командами тех. писателей, локализаторов и время на это взаимодействие. Ведь в конечном итоге, именно отдел тестирования отвечает за качество продукта. 7
  • 8. Спасибо за внимание! Если у Вас возникли вопросы или Вы хотели бы со мной связаться: http://lilia-gorbachik.com info@lilia-gorbachik.com 8