Из этой статьи вы узнаете, что такое тестирование локализации и тестирование интернационализации:
Очень часто можно встретить веб-сайты, которые доступны посетителям на нескольких языках. Мировые бренды осознали, что единственный способ установить связь с клиентами и повысить ценность продукта – это представить свой бизнес пользователям на их родном языке.
Процесс адаптации продукта к другому языку, региону и местности называется локализацией. Локализованный продукт создает больше возможностей для бизнеса и способствует его росту и расширению.
Однако многие организации совершают ошибку, проводя локализацию продукта ближе к концу процесса разработки или непосредственно перед его запуском.
Чтобы локализовать продукт, очень важно выяснить, интернационализирован ли он.
Проясним возникшую путаницу. Интернационализированный дизайн продукта/приложения – это дизайн, который может содержать локализованный контент, такой как символы незападных букв, двухбайтовые языки, возможность расширения текста, как в европейских языках, и сжимания, как в азиатских, отображать символы Unicode и иметь базу данных, поддерживающую этот вид символов.
В этом руководстве мы подробно обсудим как локализацию, так и интернационализацию.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Содержание:
- Что такое тестирование локализации?
- Что такое интернационализация?
- План тестирования
- Лучшие практики тестирования интернационализации
- Плюсы тестирования интернационализации
- Возможна ли автоматизация?
- Заключение
Что такое тестирование локализации?
Локализация – это адаптация продукта, приложения или содержимого документа к культурным, языковым и другим особенностям конкретного региона или местности.
Локализация сокращенно обозначается как l10n, где 10 – количество букв между l и n. Когда возникает мысль о локализации, на ум приходит то, что пользовательский интерфейс и документация приложения должны быть написаны на определенном языке или локали. Но в действительности это нечто большее.
При локализации приложения необходимо настроить следующие важные компоненты:
- Форматы даты и времени (включая числовые форматы).
- Используемая валюта.
- Использование клавиатуры.
- Сортировка, выравнивание и сопоставление данных.
- Цветовые схемы, символы и значки.
- Текст и графика, которые в данной культуре могут рассматриваться иначе или могут быть неправильно истолкованы..
- Различные правовые требования.
Основная цель локализации – придать продукту такой вид, чтобы для целевой аудитории он выглядел как созданный специально для удовлетворения именно её потребностей.
Локализация и интернационализация вместе называются глобализацией. Глобализация имеет более широкий уровень. Интернационализация – это создание приложения, поддерживающего несколько языков/локалей. Локализация – это создание приложения, поддерживающего одну определенную локаль и язык.
Следующий рисунок поможет вам понять, как локализация и интернационализация вместе делают программное приложение глобализированным.
Что такое интернационализация?
Интернационализация – это процесс проектирования и разработки продукта или приложения таким образом, чтобы оно поддерживало возможность локализации для любой культуры, региона или языка.
Она также обозначается как i18n, где 18 – это количество букв от i до n в слове интернационализация.
Интернационализация обычно включает в себя:
- Проектирование и разработку приложения таким образом, чтобы упростить развертывание локализации и интернационализации приложения. Это включает в себя возможность правильного отображения символов на различных языках, конкатенации строк и т.д., что может быть сделано с помощью Unicode во время разработки.
- Разработка приложения с поддержкой двунаправленного текста или различных языков, используя добавление разметки в DTD (DTD schema language). Также мы используем CSS, чтобы поддерживать вертикальный текст или другие нелатинские типографические особенности.
- Код должен поддерживать местные и региональные языки, а также другие культурные предпочтения. Это предполагает использование предопределенных данных и функций локализации из существующих библиотек. Форматы времени, дат, местные календарные праздники, числовые форматы, представление данных, сортировка, выравнивание данных, формат отображения имен и адресов и т.д.
- Создание локализуемых элементов отдельно от исходного кода, чтобы код был независимым. После чего, в соответствии с требованиями пользователя, локализованный контент должен быть загружен на основе его предпочтений.
Интернационализация в основном подразумевает проектирование и разработку приложения таким образом, чтобы сделать его готовым к локализации. Не обязательно, чтобы перевод осуществлялся сразу же с учетом языка, культуры и региона. Это делается для того, чтобы сделать приложение готовым к миграции на более поздней стадии, если локализация все же будет необходима.
Следующая диаграмма поможет понять разницу между национализацией и интернационализацией.
Давайте подытожим разницу между локализацией и интернационализацией в таблице ниже:
Тестирование локализации | Тестирование интернационализации |
1. Локализация - это адаптация продукта, приложения или документа к культурным, языковым и другим особенностям конкретного региона или местности. | 1. Интернационализация - это процесс проектирования и разработки продукта, приложения или документа таким образом, чтобы обеспечить возможность его локализации. |
2. Локализация обозначается как l10n. | 2. Интернационализация обозначается как i18n. |
3. Локализация фокусируется на контексте графического интерфейса, диалоговых окнах, сообщениях об ошибках, "readme", руководствах пользователя, примечаниях к выпуску, руководстве по установке и т.д. | 3. Интернационализация фокусируется на тестировании совместимости, функциональности, удобства использования, тестировании установки, валидации пользовательского интерфейса. |
4. Локализация подразумевает настройку приложения для любого конкретного региона или языка. | 4. Код приложения не зависит от языка. |
5. Локализация настроена на уровне пользовательского интерфейса. | 5. Интернационализация настроена на уровне проектирования. |
План тестирования
При тестировании локализации и интернационализации необходимо учитывать следующие основные моменты:
1. Язык
- Кодировки Unicode для различных символов.
- Системы исчисления.
- Написание указаний.
- Варианты написания.
- Правила написания заглавных букв и правила сортировки.
- Сочетания клавиш и раскладки клавиатуры.
2. Особенности культуры и региона
- Имена и титулы.
- Государственные номера (номер социального страхования в США) и паспорта.
- Цвета и изображения.
- Телефонные номера, почтовые индексы, форматы адресов.
- Размеры бумаги.
- Единицы измерения.
- Символы валют и их положение на валютном рынке.
3. Даты и важные события
- Форматы даты и времени.
- Типы календарей (григорианский, лунный и т.д.).
- Форматы чисел (десятичные разделители, группировка цифр и т.д.).
Лучшие практики тестирования интернационализации
Интернационализация приложения затрагивает различные области. Чтобы обеспечить полный охват тестирования, необходимо сконцентрировать процесс тестирования на следующих важных аспектах.
1. Локализация контента
Локализованный контент включает в себя как графику, так и текст. Статический и динамический контент, отображаемый в интерфейсе. Статический контент – это вкладки, кнопки, метки веб-элементов, приветственное сообщение, текст справки, всплывающие подсказки и т.д.
Динамическое содержимое, например, это сообщение, отображаемое при заполнении формы, сообщение о валидации в случае ошибок или не заполнении обязательного поля, другие сообщения, специфичные для пользователя и т.д. Такое тестирование проводится либо экспертами по языкам, либо QA инженер сверяется с файлом свойств языка, отправленным клиентом, который содержит сопоставления значений слов с английского на другой язык.
2. На основе функциональностей
В зависимости от региона некоторые функциональности ПО могут быть доступны, а некоторые нет. Тестировщики должны убедиться, что функция скрыта для региона, в котором она неприменима, и должна отображаться без дефектов для пользователей регионов, для которых она применима.
3. Знание специфики региона/культуры
Культурная осведомленность включает в себя понимание разницы между датами и форматированием чисел, используемых в различных регионах. Сюда входят календарные различия, праздники и фестивали, форматирование дат, времени, валюты, чисел, адреса, номера телефонов, почтовые индексы или их отсутствие, единицы измерения и т.д.
Поскольку мы имеем дело с различными локалями, необходимо учитывать преобразование данных из одного формата кодировки в другой. Глубокое понимание форматов кодирования и преобразования в формат и из обратно из него имеет решающее значение, поскольку это также может привести к потере данных.
4. Пользовательский интерфейс
Пользовательский интерфейс должен быть протестирован на адаптируемость ко всему языковому контенту. Он должен изменяться соответствующим образом, чтобы размещать текст большей длины без искажения выравнивания.
Одинаковый текст на одних языках занимает больше места, чем на других, поэтому интерфейс должен быть способен адаптироваться к этим изменениям без искажений. Например, немецкий текст занимает больше места для передачи одной и той же информации по сравнению с английским. Следовательно, интерфейс должен корректно изменяться.
Необходимо протестировать пользовательский интерфейс приложения, чтобы убедиться, что он не содержит таких дефектов, как усеченные строки, перекрывающиеся или неправильно расположенные элементы управления, дублирующиеся горячие клавиши и т. д. Кроме того, все должно быть переведено на соответствующий язык.
Сюда входит следующее:
- Пункты меню.
- Подсказки, оповещения и предупреждающие сообщения.
- Диалоговые окна (заголовки, кнопки и справочные сообщения).
- Изображения.
- Панели инструментов (всплывающие подсказки на них).
5. Рендеринг
Важно проверить, правильно ли отображаются все поддерживаемые скрипты в соответствии с языковыми символами, связанными с ними. При просмотре страницы на определенном языке скрипты должны выполняться правильно, т.е. не должно возникать каких-либо ошибок, а также все символы должны отображаться на определенном, выбранном пользователем языке.
Различные характеристики отображения символов включают двунаправленность, формирование в соответствии с контекстом, переупорядочивание и комбинирование символов. Другие характеристики включают разрыв слова, разрыв строки, форматирование, например, выравнивание по левому/правому краю и т.д.
6. Передача файлов
Если приложение поддерживает передачу файлов, важно проверить, локализован ли интерфейс этой функции в соответствии с выбранным языком. Необходимо протестировать, успешно ли осуществляется передача файла, и не происходит ли его повреждение.
Важно указать формат кодировки при чтении файла, содержащего символы Unicode. Если ничего не указано, по умолчанию используется кодировка UTF-8. Текстовые файлы, сохраненные в формате кодировки UTF-16, при чтении с использованием UTF -8 будут отображаться некорректно. Таким образом, кодировка играет очень важную роль при передаче файлов.
7. База данных
Тестирование базы данных для интернационализированного приложения будет включать в себя поддержку символов Unicode в базе данных. Для этого существуют специальные типы данных. Такие из них, как nchar, nvarchar и ntext определены SQL-сервером, которые помогают хранить символы Unicode.
Префикс обозначает типы данных National Unicode. Эти n-префиксные типы данных используются так же, как и стандартные типы данных char, varchar и text. Единственное отличие заключается в том, что n-префиксные типы данных также имеют свою специфику:
- Требуют больше дискового пространства.
- Поддерживают больше символов.
- Максимальный размер nchar и nvarchar составляет 4000, а char и varchar – 8000.
Работа с N-префиксными типами данных ничем не отличается от обычных. При миграции БД необходимо соблюдать осторожность, при этом необходимо сопоставить соответствующие типы данных, иначе сами данные будут потеряны.
Плюсы тестирования интернационализации
- Международная известность продукта.
- Повышение качества продукта, если он создан для поддержки интернационализации.
- Охват большей аудитории по всему миру.
- Выпуск продукта на мировой рынок со сравнительно небольшими затратами.
Возможна ли автоматизация?
Тестирование интернационализированного приложения всегда является проблемой для организации. Каждый язык, который поддерживает приложение, может многократно увеличить количество тестовых примеров, необходимых для проведения тестирования. Если организация активно использует автоматизацию, можно ли создать и поддерживать сценарии автоматизации для продукта с интернационализацией?
Для решения этой проблемы создаются тест-кейсы и сценарии, которые можно легко расширять для поддержки нескольких языков.
Как говорилось выше, если приложение создано с использованием практик I18N и L10N для создания нечувствительной к языку основной версии, то для него используется специальный файл для настройки под языковые требования. Приложение считывает этот файл во время выполнения, чтобы отобразить его на выбранном языке. Таким образом, существует только одна базовая версия приложения, которая имеет возможность при необходимости менять язык пользовательского интерфейса.
Это позволяет автоматизировать интернационализированное приложение, поскольку тестовые скрипты пишутся только для базовой версии и легко выполняются для всех языков.
Прежде чем приступить к автоматизации, необходимо убедиться, что имена или идентификаторы, присвоенные всем элементам в окнах, не меняются при смене языка. Все объекты на веб-странице, такие как текстовые поля, радиобаттоны, выпадающие окна, флажки, гиперссылки, всплывающие окна, окна со списком и т.д., должны иметь уникальный идентификатор (например, имя или ID), который не зависит от языка.
Если мы уверены, что все веб-элементы не зависят от языка, то мы можем создать чрезвычайно эффективный фреймворк автоматизации для интернационализированного приложения.
Инструменты для тестирования локализации:
Существует несколько инструментов, которые могут очень хорошо автоматизировать некоторые задачи. Вот их перечень:
- автоматизация локализации пользовательского интерфейса с помощью IBM Rational Functional Tester;
- eggPlant;
- инструмент локализации приложений .NET http://www.redpin.eu;
- Applitools.
Заключение
Тестирование локализации и интернационализации является сложной задачей, и для эффективного тестирования важно хорошо понимать концепцию разработки таких продуктов.
Написание и поддержка скриптов автоматизированного тестирования для интернационализированного ПО не представляет сложности, поскольку скрипт, написанный для автоматизации тестирования базовой версии приложения, может быть использован для тестирования любого другого поддерживаемого языка.
Перевод статьи «What is Localization Testing and Internationalization Testing (Simple Guide)».
Пингбэк: Тестирование карт и ГИС