Разделы портала

Онлайн-тренинги

.
Эмоджи: критический путь тестирования
20.10.2021 00:00

Автор: Эдуардо Фишер (Eduardo Fischer)
Оригинал статьи
Перевод: Ольга Алифанова

Эмоджи! Кому-то они кажутся глупыми, а кто-то использует их при любой возможности. Какими бы ни были привычки ваших пользователей, стоит рассмотреть тестирование ввода эмоджи, если вы еще этим не заняты.

Если у вас есть хоть какой-то опыт тестирования, вы, возможно, хотя бы раз разговаривали с разработчиками о поле, принимающем невалидные даты, или об обязательном поле, разрешающем пустой ввод. Но сообщали ли вы коллеге-разработчику, что поле имени принимает смайлы или иероглифы, хотя не должно? Возможно, вам казалось, что это несущественная проверка, кто будет так делать? Опыт научил меня никогда не забывать про ввод эмоджи в моих тест-кейсах.

Сообщение об ошибке "неизвестного происхождения"

Когда-то я работал в логистическом стартапе. Я был первым тестировщиком в компании: я начал как инженер бэкэнда, а затем попросил перевести меня в тестирование. Так как у меня был опыт разработки, то одной из первых моих задач стала помощь коллеге Брайану с дебагом непонятной проблемы. Брайан пытался перенести пользовательскую базу данных на новую версию проекта, но база не мигрировала. Я попросил показать мне сообщение об ошибке с платформы базы данных: оно любезно сообщало что-то вроде "Неизвестная ошибка".

Поиск иголки в стоге сена

Для начала я поискал это сообщение в сети, но ничего не нашел. Мы много чего перепробовали, но ничто нам не помогло.

На следующий день я решил просто посмотреть на данные в базе, на тысячи строк – вдруг это прольет какой-то свет на проблему? После примерно трех тысяч строк я заметил что-то интересное: маленькое эмоджи-сердечко в имени пользователя буквально смеялось нам в лицо. Я показал его Брайану, и с первого взгляда он не понял, почему это может быть проблемой. А затем он вспомнил.

Первопричина: кодировка базы данных

Брайан посмотрел на кодировку баз данных. Старая версия проекта использовала UTF-8, а новая – Latin-1. Эмоджи, иероглифы, знак евро, и другие мало распространенные в США символы недоступны в Latin-1, но допустимы в UTF-8. Поэтому при миграции на Latin-1-закодированную базу миграция падала. Мы потеряли двое суток из-за эмоджи, потому что выбранная кодировка не учитывала все возможные сценарии использования.

Кодировка новой базы данных была изменена на UTF-8, и миграция успешно состоялась. После этого пользовательский ввод всегда валидировался на эмоджи как со стороны фронтэнда, так и со стороны бэка. С тех пор я рассказываю эту историю каждый раз, когда разработчик спрашивает меня, зачем мы проверяем ввод эмоджи.

Еще одна поучительная сказка, как эмоджи все сломали

Позднее, уже после этого первого столкновения с эмоджи и кодировками, я валидировал недопустимость эмоджи на бэкэнде, используя Postman в качестве инструментария. Бэкэнд не запрещал эмоджи в имени пользователя. Я написал баг-репорт, объяснил ситуацию и посчитал вопрос решенным.

На следующий день я кое-что прочитал, и это заставило меня занервничать. Технический директор объявил, что собирается показать заказчикам внутреннюю версию нашей платформы. он предупредил нас, что в пользовательском интерфейсе не должно быть никакого шуточного или непрофессионального содержания. Я понял, что мне надо убедиться, что никакие эмоджи не просочатся в эту демонстрацию. Я взял тест-кейс с эмоджи из тест-набора, перепрошел тесты и решил, что все в порядке.

Это было не так: тест-инструмент без моего ведома прогонял старую версию тест-набора. Когда я проводил последние проверки незадолго до презентации, все имена пользователей заменились на смайлики!

До презентации оставались считанные минуты. Я поискал проблему в тест-наборе, нашел первопричину, перепрогнал тесты. К моему облегчению, имена пользователей снова приняли алфавитно-цифровой вид, и единственными улыбающимися лицами вокруг были лица коллег.

Позднее я объяснил техническому директору, почему так важно проверять эмоджи. Мой рассказ его вроде бы удовлетворил, и презентация прошла хорошо. Однако несколько часов я серьезно боялся увольнения. Эмоджи всегда приносили мне проблемы, и если ваша команда не тестирует ввод эмоджи, то они могут создать проблемы и вам!

Обсудить в форуме