Добавить в корзинуПозвонить
Найти в Дзене
Куакушонок QA

Как одна буква сломала бронирование жилья

Реальная история, которая произошла сегодня при тестировании сервиса бронирования. Как я локализовал критический баг за пару минут благодаря счетчикам символов. Сегодня тестировал сервис бронирования жилья. Всё шло штатно. Оплата прошла. Бэкенд прислал ответ. На фронте должен был появиться экран "Бронирование успешно". Но фронт упал с ошибкой. Начинаю разбираться. Структура JSON-ответа выглядит привычно. Поле "status" есть. Значение - "Ticketed". Всё как в документации. В чём проблема? Сначала проверил статус ответа HTTP. 200 OK. Потом посмотрел структуру JSON. Валидная. Потом сравнил значение "status" с эталоном из документации. Визуально - то же самое. Но фронт упорно падал. Тогда я скопировал "status": "Tickеtеd" и вставил в свой сервис который реализовал специально для подобных проверок. И всё стало понятно... Счетчики показали: Всего: 20 Кириллица: 2 Латиница: 12 Пробелы: 1 Буквы 'е' в "Tickеtеd" оказались русскими. Поставщик данных прислал "Tickеtеd" с кириллической 'е'. Фронт жд
Оглавление

Реальная история, которая произошла сегодня при тестировании сервиса бронирования. Как я локализовал критический баг за пару минут благодаря счетчикам символов.

Вступление

Сегодня тестировал сервис бронирования жилья.

Всё шло штатно. Оплата прошла. Бэкенд прислал ответ. На фронте должен был появиться экран "Бронирование успешно".

Но фронт упал с ошибкой.

Начинаю разбираться.

Структура JSON-ответа выглядит привычно. Поле "status" есть. Значение - "Ticketed". Всё как в документации.

В чём проблема?

Как я искал баг

Сначала проверил статус ответа HTTP. 200 OK.

Потом посмотрел структуру JSON. Валидная.

Потом сравнил значение "status" с эталоном из документации. Визуально - то же самое.

Но фронт упорно падал.

Тогда я скопировал "status": "Tickеtеd" и вставил в свой сервис который реализовал специально для подобных проверок.

И всё стало понятно...

Проверка гипотезы что имеется ошибка в слове через сервис orfogramm.ru
Проверка гипотезы что имеется ошибка в слове через сервис orfogramm.ru

Счетчики показали: Всего: 20 Кириллица: 2 Латиница: 12 Пробелы: 1

Буквы 'е' в "Tickеtеd" оказались русскими.

Поставщик данных прислал "Tickеtеd" с кириллической 'е'. Фронт ждал строго латинскую 'e'.

Почему это критический баг

Представьте цепочку.

Пользователь бронирует жилье. Платит деньги. Сервис говорит "всё хорошо, бронь подтверждена".

Но на самом деле - ошибка. Фронт не отобразил подтверждение. Пользователь не получил гарантий. Может быть, бронь не ушла к поставщику. Может быть, деньги списались, а жилья не будет.

В нашем случае поставщик оперативно всё поправил. Но осадочек остался.

Сколько времени я потратил на локализацию

Минут пять.

Из них:

4 минуты на проверку HTTP-статуса и структуры JSON (уже на память помню, но на всякий случай сравнил с документацией)

1 минуты на проверку через orfogramm.ru

Без счетчиков символов я бы:

Завел баг на наших разработчиков (10-15 мин.)

Разработчик бы взял задачу и начал вникать минут 30 - 40, пытаясь воспроизвести

Итого - час как минимум на локализацию. А тут 5 минут.

Как это работает в моей работе

Я использую orfogramm.ru не только для русских текстов.

Любой JSON-ответ, где есть строковые значения на английском, можно быстро проверить. Вставил - посмотрел на счетчик кириллицы. Если больше нуля - значит, где-то затесалась русская буква.

Особенно полезно, когда:

Поставщик данных находится в другой стране и не всегда следит за раскладкой

В ответе много полей, и визуально не проверить каждую букву

Баг воспроизводится нестабильно, и надо быстро найти причину

Что я вынес из этого кейса

Первое. Глазам нельзя доверять. Даже когда смотришь на английское слово.

Второе. Счетчики символов - это не только для кириллицы. Латиницу тоже надо проверять.

Третье. Инструмент, который показывает невидимое, экономит часы в месяц.

Ссылка на инструмент

orfogramm.ru

Бесплатно. Без регистрации. Просто вставил текст - увидел цифры.

Пользуйтесь. И проверяйте JSON-ответы. Даже когда кажется, что всё идеально.