Тестирование мультиязычного веб-сервиса a la Russe

36
Тестирование мультиязычного web-сервиса a la Russe Писчасова Татьяна 2gis.ru

Transcript of Тестирование мультиязычного веб-сервиса a la Russe

Page 1: Тестирование мультиязычного веб-сервиса a la Russe

Тестированиемультиязычного web-сервисаa la RusseПисчасова Татьяна

2gis.ru

Page 2: Тестирование мультиязычного веб-сервиса a la Russe
Page 3: Тестирование мультиязычного веб-сервиса a la Russe

Обо мне

• Ведущий тестировщик web-продуктов

• 4 года в 2ГИС

• 8 лет в тестировании

• Сообщество тестировщиков Сибири

3

Page 4: Тестирование мультиязычного веб-сервиса a la Russe
Page 5: Тестирование мультиязычного веб-сервиса a la Russe

Присказка:

О чем я расскажу

• Проблемы

• Решения

• Примеры

Page 6: Тестирование мультиязычного веб-сервиса a la Russe

Определения

• Интернационализация (i18n) — адаптация продукта к переводу

• Локализация (l10n) — перевод продукта на конкретный язык

• Интерфейс,

• Функционал,

• Контент, ...

6

Page 7: Тестирование мультиязычного веб-сервиса a la Russe

Определения

• Интернационализация (i18n) — адаптация продукта к переводу

• Локализация (l10n) — перевод продукта на конкретный язык

• Локаль — пакет переводов для конкретного языка

• Словарь — файл переводов текстов

7

Page 8: Тестирование мультиязычного веб-сервиса a la Russe

Сказ первый:

Перевод с нуля

Page 9: Тестирование мультиязычного веб-сервиса a la Russe

Перевести и протестировать!

9

Page 10: Тестирование мультиязычного веб-сервиса a la Russe

1. Когда подключать тестирование?

• На этапе выбора инструмента

10

Page 11: Тестирование мультиязычного веб-сервиса a la Russe

Удобно тестировать

Требования от QA к разработке:

• Простое добавление / удаление новой локали

• Человеко-понятный словарь

• Возможность редактировать словарь

11

Page 12: Тестирование мультиязычного веб-сервиса a la Russe

Пример

C учетом требований от QA:

• gettext

• .po (Portable Object) + утилиты

• 1 пакет, 1 строка в config, 1 команда

12

Page 13: Тестирование мультиязычного веб-сервиса a la Russe

2. Где взять данные?

• Используем то, что есть

• Псевдолокализация (имитация переводов)

13

Page 14: Тестирование мультиязычного веб-сервиса a la Russe

Пример

Русская локаль —>

• Текст + три символа

• Картинки на 180°

• Ссылки .ru —> .it

—> Албанский

14

Page 15: Тестирование мультиязычного веб-сервиса a la Russe

3. Как проверить грамотность UI?

• Делегируем носителям языка

15

Page 16: Тестирование мультиязычного веб-сервиса a la Russe

Пример

Кому делегируем?

• Заказчик

• Команда переводчиков

16

Page 17: Тестирование мультиязычного веб-сервиса a la Russe

Переводя с нуля...

• Тестировать должно быть удобно

• Используйте псевдолокализацию

• Делегируйте проверку грамотности

17

Page 18: Тестирование мультиязычного веб-сервиса a la Russe

Сказ второй:

Переводим

автотесты

Page 19: Тестирование мультиязычного веб-сервиса a la Russe

1. В каком объеме можемпереиспользовать тесты?

• Определяем различия

19

Page 20: Тестирование мультиязычного веб-сервиса a la Russe

Сравниваем тесты и различия

• Тесты на общий функционал отлаживаем

• Оставшиеся — для исходной локали

• Пишем новые

20

Page 21: Тестирование мультиязычного веб-сервиса a la Russe

Пример

21

Page 22: Тестирование мультиязычного веб-сервиса a la Russe
Page 23: Тестирование мультиязычного веб-сервиса a la Russe

2. Как делить входные / выходныеданные?

• Собираем чтобы разделить

23

Page 24: Тестирование мультиязычного веб-сервиса a la Russe

Собираем чтобы разделить

• Параметризуем

• Собираем в отдельный класс

• Каждой локали — свой класс

24

Page 25: Тестирование мультиязычного веб-сервиса a la Russe

Пример. Параметризуем вход/выход

public function testSearch()

{

this->searchForm (array(

'what' => 'Музей',

'where' => 'Новосибирск')

);

}

01.

02.

03.

04.

05.

06.

07.

25

Page 26: Тестирование мультиязычного веб-сервиса a la Russe

Пример. Параметризуем вход/выход

public function testSearch()

{

this->searchForm (array(

'what' => $this->locale->getData('what_request'),

'where' => $this->locale->getData('where_request'))

);

}

01.

02.

03.

04.

05.

06.

07.

26

Page 27: Тестирование мультиязычного веб-сервиса a la Russe

Пример. Параметризуем вход/выход

public function testSearch()

{

this->searchForm (array(

'what' => $this->locale->getData('what_request'),

'where' => $this->locale->getData('where_request'))

);

}

01.

02.

03.

04.

05.

06.

07.

27

Page 28: Тестирование мультиязычного веб-сервиса a la Russe

Пример. Создаем словарь

<?php

$msg = array();

$msg['what_request'] = 'Музей';

$msg['where_request'] = 'Новосибирск';

$msg['search_buttom'] = 'Найти';

return $msg;

?>

01.

02.

03.

04.

05.

06.

07.

28

Page 29: Тестирование мультиязычного веб-сервиса a la Russe

Переводя автотесты...

• Переиспользуйте тесты

• Параметризуйте входные и

выходные данные

29

Page 30: Тестирование мультиязычного веб-сервиса a la Russe

Сказ третий:

Поддержка

Page 31: Тестирование мультиязычного веб-сервиса a la Russe

1. Как успеть протестировать, еслипереводов нет?

• Встраиваем переводы в процесс

31

Page 32: Тестирование мультиязычного веб-сервиса a la Russe

Встраиваем переводы в процесс

• Договариваемся о сроках и ответственностях

• План Б

32

Page 33: Тестирование мультиязычного веб-сервиса a la Russe

Пример. Процесс

33

Page 34: Тестирование мультиязычного веб-сервиса a la Russe

Пример. План Б

• Сами переводим на английский

• Откладываем функционал

34

Page 35: Тестирование мультиязычного веб-сервиса a la Russe

И жили они...

• Перевод с нуля

• Перевод АТ

• Поддержка

Page 36: Тестирование мультиязычного веб-сервиса a la Russe

Вопросы?

• Писчасова Татьяна

[email protected]

• @stricky_